DE60213867T2 - Vorrichtung zur verwaltung von datenreplikation - Google Patents

Vorrichtung zur verwaltung von datenreplikation Download PDF

Info

Publication number
DE60213867T2
DE60213867T2 DE60213867T DE60213867T DE60213867T2 DE 60213867 T2 DE60213867 T2 DE 60213867T2 DE 60213867 T DE60213867 T DE 60213867T DE 60213867 T DE60213867 T DE 60213867T DE 60213867 T2 DE60213867 T2 DE 60213867T2
Authority
DE
Germany
Prior art keywords
data management
data
journal
management device
mim
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE60213867T
Other languages
English (en)
Other versions
DE60213867D1 (de
Inventor
R. Marcia Erie MARTIN
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Storage Technology Corp
Original Assignee
Storage Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Storage Technology Corp filed Critical Storage Technology Corp
Publication of DE60213867D1 publication Critical patent/DE60213867D1/de
Application granted granted Critical
Publication of DE60213867T2 publication Critical patent/DE60213867T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Description

  • 1. Bereich der Erfindung
  • Die vorliegende Erfindung betrifft im Allgemeinen Datenspeicherungs- und -sicherungssysteme. Die vorliegende Erfindung betrifft spezieller ein Sicherungssystem, das auf ein Primärspeichergerät geschriebene Daten unmittelbar auf mehrere „virtuelle Spiegel" sichert, die den Änderungszustand des Primärspeichergerätes im Laufe der Zeit reflektieren.
  • 2. Hintergrund der Erfindung
  • Die Menschheit hatte schon immer das Bedürfnis, Informationen aufzuzeichnen. Historiker berichten, dass im alten Mesopotamien das Schreiben zunächst als ein Mittel zum Führen von Aufzeichnungen über Vieh auftrat. Mit fortschreitender Zivilisierung wuchs das Bedürfnis, größere Informationsmengen über längere Zeit sicher aufzubewahren. Während im Altertum für die meisten Speicherbedürfnisse Tonplatten ausreichten, werden moderne computergestützte Speichersysteme in anscheinend astronomischen Begriffen wie Gigabytes und Terabytes gemessen. Ein Beispiel für diese Informationsspeicherexplosion ist der Computergebrauch des US Internal Revenue Service zum Speichern von Informationen über steuerpflichtige Schenkungen im Laufe der Lebensdauer einer Person. Für die meisten in den Vereinigten Staaten lebenden Personen werden Schenkungssteuern erst im Todesfall berechnet oder bezahlt, so dass Informationen in Bezug auf steuerpflichtige Schenkungen über die Lebensdauer einer Person geführt werden müssen.
  • Eine computergestützte Speicherung ist zwar haltbarer als brüchige Tonplatten, aber das Problem des Führens eines zuverlässigen Speichers über lange Zeitperioden bleibt. Aus diesem Grund sichern viele, wenn nicht gar die meisten großen Recheneinrichtungen gespeicherte Daten in regelmäßigen Abständen auf ein redundantes Speichermedium wie z.B. auf Bänder. Es gibt zwei Sicherungstypen, die heute im Allgemeinen in Computersystemen ausgeführt werden. Eine volle Sicherung bedeutet die Herstellung einer redundanten Kopie eines Speichersystems in seiner Ganzheit. Eine inkrementale Sicherung dagegen bedeutet die Herstellung einer redundanten Kopie nur derjenigen Teile eines Speichersystems, die sich seit der letzten Sicherung geändert haben. Viele Recheneinrichtungen nutzen sowohl volle als auch inkrementale Sicherung.
  • Mit diesen Sicherungsmethoden ist jedoch eine Reihe von Problemen behaftet. Zunächst muss gewöhnlich ein „Sicherungszeitfenster" vorhanden sein, wenn Computeranwendungen beendet werden, so dass ein einheitliches Bild des Speichersystems hergestellt werden kann (d.h. damit das, was kopiert wird, nicht durch eine Anwendung überschrieben wird, während die Kopie angefertigt wird). Zweitens kann selbst dann, wenn kein Sicherungsfenster notwendig ist, der Sicherungsvorgang, wenn er als Batch-Vorgang läuft, CPU-Zyklen von anderen auf dem Computersystem laufenden Prozessen stehlen. Drittens, so genannte Primärspeichergeräte wie Platten sind heutzutage sehr groß, so dass das Sichern von Daten sequentiell auf ein Sekundärspeichermedium wie z.B. ein Band und das Zurückspeichern von Daten von dem Band relativ langwierige Vorgänge sind. Viertens, da die meisten heutigen Sicherungssysteme auf Dateisystemebene arbeiten, müssen Sicherungssysteme mit komplexen Verzeichnisstruktur- und Sicherheitsbelangen fertig werden. Fünftens, da Sicherungen nur periodisch durchgeführt werden, besteht ein hohes Datenverlustrisiko, weil zwischen Sicherungen geschriebene Daten von einer Sicherung zur anderen verloren gehen können. Sechstens neigen existierende Replikationslösungen dazu, kostspielig zu sein. Siebtens sind die Kosten in Verbindung mit Medien- und Geräteinkompatibilitäten hoch.
  • Im Bereich Datenbankdesign erfolgt eine Recovery ohne Sicherungsfenster häufig durch die Anwendung von Write-ahead-Logging. Datenbanktransaktionen, die Datenbankinhalt ändern können, werden in einem Protokoll aufgezeichnet, bevor sie in der Hauptdatenbank vollendet werden. Eine andere Bezeichnung für ein Protokoll ist „Journal". Wenn die Datenbank verfälscht wird, können Transaktionen „rückgängig" gemacht oder „wiederholt" werden, um die Datenbank in einen früheren unverfälschten Zustand zurückzubringen.
  • Eine weitere im Datenbankbereich zur Anwendung kommende Recovery-Technik ist das „Shadow-Paging". Bei Shadow-Paging wird der Datenbankinhalt in eine Reihe von Seiten unterteilt. Mit Hilfe eines Verzeichnisses werden logische Adressen für Seiten in physische Adressen auf einem Speichergerät abgebildet. Wenn Änderungen an der Datenbank vorgenommen werden, dann werden die Seiten nicht überschrieben, sondern es werden neue Seiten erzeugt, die die Änderungen beinhalten, und es wird ein neues Verzeichnis erzeugt, das stattdessen auf die neuen Seiten verweist. Recovery erfolgt durch Zurückkehren zu einem Verzeichnis von einem vorherigen, unverfälschten Zustand in der Datenbank.
  • Das US-Patent Nr. 5,086,502 von Malcolm erweitert das Write-ahead-Logging-Konzept auf primitive Platten-E/A. Malcolm beschreibt ein System, bei dem Schreibbefehle auf ein Speichergerät in einem Computersystem des IBM PC Typs auf BIOS-(Basic Input/Output System)-Ebene erfasst und in einem Journal aufgezeichnet werden. In dem Journal aufgezeichnete Schreibbefehle werden dann zum Zurückstellen des Speichergeräts in einen früheren, unverfälschten Zustand verwendet.
  • Das US-Patent Nr. 6,158,019 von Squibb beschreibt ein Verfahren und eine Vorrichtung zum Zurückstellen eines aktualisierten Computerspeichersystems von einem Schreib-Event-Journal. Squibb beschreibt einen Prozess, bei dem Events in einem Event-Journal zum Erzeugen einer Event-Map und „Delta"-Datenstruktur verwendet werden, die mit einer ursprünglichen Datei zusammengeführt werden können, die auf einem Streamer-Medium gespeichert ist, um eine vorherige Version einer Datei zu erzeugen.
  • Beide diese Datenreplikationstrategien beinhalten jedoch aufwändige Schritte der Datenrekonstruktion und brauchen unverhältnismäßig viel Speicherplatz im Laufe der Zeit. Somit sind sie aufwändig und kostspielig im Hinblick auf Wartung und Gebrauch. Darüber hinaus legen die Systeme von Squibb und Malcolm dem Primär- (Host-) Computersystem auch eine starke Rechenbürde auf. Es besteht Bedarf an einem Datenreplikationsystem, das das Sicherungsfenster eliminiert, schnell ist und Speicherplatz effizienter nutzt, ohne den Primär- oder Host-Computer rechnerisch zu stark zu belasten.
  • Die US-Patentanmeldung Nr. US 2001/0044807 von Kleiman et al. offenbart ein Verfahren und ein System zum Duplizieren eines Dateisystems auf einem Dateiserver, in dem der Dateiserver einen Satz von Speicherblöcken führt, die ein einheitliches Dateisystem bilden. Diese Speicherblöcke können für ein inkrementales Sichern oder Kopieren manipuliert werden. Kleiman bürdet dem Host-Dateiserver jedoch auch eine erhebliche Rechenlast auf.
  • Gemäß der vorliegenden Erfindung wird eine Datenmanagementvorrichtung zum Replizieren von auf ein Primärspeichersystem geschriebenen Daten bereitgestellt, wobei die Datenmanagementvorrichtung Folgendes umfasst:
    eine Direktzugriffsspeichereinheit zum Speichern eines Spiegels-in-der-Mitte, der eine Kopie von Inhalt des Primärspeichergerätes zu einem festen Zeitpunkt enthält und wenigstens einen Schnappschuss speichert, der Änderungen enthält, die, wenn sie am Inhalt des Spiegels-in-der-Mitte vorgenommen wurden, in einer früheren Version des Inhalts des Primärspeichergeräts resultieren würden; und
    eine Steuerschaltung zum Empfangen von Befehlen von einem Computersystem, wobei die Steuerschaltung als Reaktion darauf, dass sie einen Schreibbefehl von dem Computersystem erhält, die Direktzugriffsspeichereinheit aktualisiert, so dass sie Informationen in Verbindung mit dem Schreibbefehl beinhaltet, und wobei die Steuerschaltung als Reaktion auf einen eine logische Adresse beinhaltenden Lesebefehl aus der Direktzugriffsspeichereinheit Daten abruft, die Inhalt der logischen Adresse zu einem vorbestimmten Zeitpunkt repräsentieren.
  • Die vorliegende Erfindung betrifft eine Datenmanagementvorrichtung und ergänzende Technologien zum Replizieren von auf ein Primärspeichersystem geschriebenen Daten. Die Datenmanagementvorrichtung ist ein Direktzugriffsspeichersystem, das auf der logischen Blockebene den Inhalt eines Primärspeichersystems im Laufe der Zeit repliziert. Mit Hilfe eines in der Datenmanagementvorrichtung enthaltenen Spiegels-in-der-Mitte (MIM) wird eine exakte Kopie des Primärspeichersystems zu irgendeinem festen Zeitpunkt aufgezeichnet.
  • Atomare Schreib-Events werden in einem „Vorwärtsjournal" sofort von der Vorrichtung aufgezeichnet, so dass Anwendungen nicht unterbrochen werden. Atomar ist ein(e) Event oder Transaktion dann, wenn es/sie nicht weiter unterteilt werden kann; ein(e) atomare(s) Event oder Transkation wird entweder in seiner/ihrer Gesamtheit oder gar nicht durchgeführt. Zu bestimmten Zeitpunkten werden Vorwärtsjournaleinträge zum Erzeugen von Schnappschüssen verwendet, die die Änderung im Primärspeichersystem im Laufe der Zeit reflektieren. Diese Schnappschüsse werden in einem „Rückwärtsjournal" aufgezeichnet und repräsentieren eine grobere Ebene der Sicherungsgranularität, ähnlich wie bei einer inkrementalen Sicherung. Während der Produktion von Schnappschüssen können die Vorwärtsjournaleinträge auf den MIM angewendet werden, um dessen Inhalt zu aktualisieren, und können schließlich verworfen werden, um Platz zu sparen.
  • Mit Hilfe eines virtuellen Recovery-Mapping-Objekts (VRMO) werden logische Adressen zu einem bestimmten Zeitpunkt auf ihre physischen Positionen in der Datenmanagementvorrichtung abgebildet. Somit wirken die VRMOs als ein Index, der eine schnelle Direktzugriffsrückspeicherung von Daten zulässt. In einer Ausgestaltung besteht ein VRMO aus einem Mehrwege-Baum, der eine logische Adressumsetzung in logarithmischer Zeit zulässt.
  • Da die Datenmanagementvorrichtung eine Untersuchung des Inhalts eines Speichersystems über eine Zeitperiode zulässt, kann die Datenmanagementvorrichtung für die Erkennung und/oder polizeiliche Untersuchung von Daten-Events wie z.B. eine Datenverfälschung oder eine Virusinfektion angewendet werden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die neuartigen Merkmale, die als für die Erfindung charakteristisch angesehen werden, sind in den beiliegenden Ansprüchen dargelegt. Die Erfindung an sich, sowie die bevorzugte Art ihrer Umsetzung, weitere Ziele und Merkmale davon, werden jedoch am besten mit Bezug auf die nachfolgende ausführliche Beschreibung einer illustrativen Ausgestaltung in Zusammenhang mit den Begleitzeichnungen verständlich. Dabei zeigt:
  • 1 eine Gesamtansicht des Betriebs einer Datenmanagementvorrichtung gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung;
  • 2 eine Gesamtansicht des Betriebs einer alternativen Ausgestaltung der vorliegenden Erfindung, bei der Befehle mit einer Replikationssteuerung repliziert werden;
  • 3 ein Schema, das eine Konzeptansicht der replizierten Speicherung zeigt, die mit einer Datenmanagementvorrichtung gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung ermöglicht wird;
  • 4 einen Vorgang des Replizierens von Daten in einer Datenmanagementvorrichtung gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung;
  • 5 den Grundbetrieb eines virtuellen Recovery-Mapping-Objekts (VRMO) gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung;
  • 6 ein Schema, das zwei VRMO-Typen veranschaulicht, die in einer bevorzugten Ausgestaltung der vorliegenden Erfindung benutzt werden können;
  • 7 ein Schema eines Vorwärtsjournals gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung;
  • 8 ein Schema eines Spiegels-in-der-Mitte (MIM) gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung;
  • 9 ein Schema, das eine Gesamtansicht eines Prozesses zum Aktualisieren eines MIM und zum Erzeugen von Schnappschüssen gemäß der bevorzugten Ausgestaltung der vorliegenden Erfindung veranschaulicht;
  • 10 ein Fließschema eines Prozesses zum Erzeugen eines neuen Schnappschusses und zum Synchronisieren eines MIM mit einem Primärspeicher gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung;
  • 11 ein Schema, das ein Verfahren zum Erzeugen einer VBMM gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung veranschaulicht;
  • 12 einen Prozess zum Erzeugen einer Rückwärtsbewegungsliste von einer PEL (Physical Extent List = physische Bereichsliste) gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung;
  • 13 ein Schema, das die Integration einer Rückwärtsbewegungsliste in ein Rückwärtsjournal gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung veranschaulicht;
  • 14 ein Schema, das das Einfügen von Bewegungen von einer Rückwärtsbewegungsliste in eine neue VBMM gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung demonstriert;
  • 15 ein Fließschema eines Prozesses zum Erzeugen eines Schnappschusses, einschließlich einer VBMM und von Rückwärtsjournaleinträgen, gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung;
  • 16 ein Schema, das einen Vorgang zum Aktualisieren einer älteren VBMM mit einer Rückwärtsbewegungsliste gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung veranschaulicht;
  • 17 ein Schema, das ein Beispiel für einen Prozess zum Aktualisieren einer VBMJ gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung gibt;
  • 18 ein Fließschema eines Prozesses zum Aktualisieren einer VBMJ und zum Erzeugen von Rückwärtsjournaleinträgen gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung;
  • 19 eine beispielhafte Mehrwege-VBMJ-Baumdatenstruktur zum Darstellen einer Abbildung von logischen Speichergeräteadressen auf physische Journal/Schnappschuss-Adressen gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung;
  • 20 ein Fließschema eines Prozesses zum Erzeugen von Speicherreplicas gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung;
  • 21 ein Schema, das einen Vorgang zum Überwachen einer Datenbank auf Verletzung der Einheitlichkeitsanforderungen gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung veranschaulicht;
  • 22 ein System zur Virusüberwachung gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung;
  • 23 ein Fließschema eines Prozesses zum Überwachen auf problematische Veränderungen in Daten, die von einer Datenmanagementvorrichtung gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung gesichert wurden;
  • 24 ein Schema, das zeigt, wie eine einzelne Datenmanagementvorrichtung mit einem Speichernetz verbunden ist, wobei mehrere Server mit Primärspeichergeräten verbunden sind, die mit einem Speichernetz verbunden sind, gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung;
  • 25 ein Schema, das eine einzelne Computersystem-Konsole veranschaulicht, die ein einzelnes Primärspeichergerät steuert, das von mehreren Datenmanagementvorrichtungen gesichert wird, die im Tandembetrieb durch ein Speicherbereichsnetz arbeiten, gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung; und
  • 26 ein Schema, das ein Datenverarbeitungssystem zeigt, bei dem die Datenmanagementvorrichtungen gemeinsame gepoolte Speicherung nutzen, gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSGESTALTUNG
  • 1 ist ein Schema, das eine Gesamtansicht des Betriebs einer bevorzugten Ausgestaltung der vorliegenden Erfindung zeigt. Eine Primärspeicheranwendung 100, die sich auf einem Host-Computersystem befindet, sendet einen Befehl zu einem Replikationstreiber/Volumenmanager 102 zum Speichern von Daten auf einem Primärspeicher 108. Der Replikationstreiber/Volumenmanager 102 leitet die Anforderung sowohl zum Plattentreiber 104 als auch zum Netzwerktreiber 110 weiter. Der Plattentreiber 104 ist ein Gerätetreibercode, der das Plattensteuergerät 106 betreibt, das wiederum die Primärspeicherung 108 steuert, in diesem Fall ein Plattenlaufwerk, obwohl auch viele andere alternative Direktzugriffsspeichervorrichtungen anstelle eines Primärspeichers 108 verwendet werden können.
  • Der Netzwerktreiber 110 ist ein Gerätetreibercode, der den Zugriff auf ein Computernetzwerk steuert. Der Netzwerktreiber 110 leitet den zugeführten Speicherbefehl zur Datenmanagementvorrichtung 112 weiter, die sich auf einem Netzwerk in Verbindung mit dem Host-Computersystem befindet. Die Datenmanagementvorrichtung 112 ist ein intelligentes Peripheriegerät, das für das Netzwerk wie eine oder mehrere Plattenarray(s) oder wie ein anderes Direktzugriffsspeichermedium aussieht. Die Datenmanagementvorrichtung 112 hat eine Steuerschaltung und beinhaltet auch ihren eigenen Direktzugriffsspeicher 114. Die Steuerschaltung kann beispielsweise ein Computer mit eingebettetem gespeichertem Programm wie z.B. ein Mikroprozessor und ein Memory oder eine Mikrosteuerung sein. Das gespeicherte Programm kann in Firmware gespeichert oder von einem Speichermedium wie z.B. einer Diskette geladen werden. Die Datenmanagementvorrichtung 112 verwendet, über ihre Steuerschaltung, den Direktzugriffsspeicher 114 zum Replizieren der auf dem Primärspeicher 108 gespeicherten Informationen. Wie ersichtlich ist, erzeugt die Datenmanagementvorrichtung 112 nicht nur ein Replica des aktuellen Inhalts des Primärspeichers 108, sondern beinhaltet auch Informationen, die zum Rekonstruieren von Replicas von früherem Inhalt des Primärspeichers 108 zu verschiedenen Zeitpunkten verwendet werden können.
  • 2 ist ein Schema einer alternativen Ausgestaltung der vorliegenden Erfindung, in der der Replikationstreiber durch Replikationshardware ersetzt ist. Die Primärspeicheranwendung 200 gibt einen Schreibbefehl an den Plattentreiber 202 aus, bei dem es sich um einen Gerätetreibercode handelt. Der Plattentreiber 202 steuert die Replikationssteuerung 204, bei der es sich um ein Hardware-Plattensteuergerät handelt, das den Primärspeicher 206 steuert, das aber das zusätzliche Merkmal hat, dass es Speicherbefehle auf dem Primärspeicher 206 repliziert und die replizierten Befehle zur Datenmanagementvorrichtung 208 sendet, die die Daten auf dem Primärspeicher 206 auf dem Direktzugriffsspeicher 210 repliziert.
  • 3 ist ein Schema, das eine Konzeptansicht des replizierten Speichers gibt, der von der Datenmanagementvorrichtung 112 (oder 208) bereitgestellt wird. Die Datenmanagementvorrichtung 112 ist so programmiert, dass sie sich so verhält, als würde sie eine Reihe von Kopieduplikaten (Replicas) des Primärspeichergerätes 108 speichern, wie sie zu bestimmten Zeitpunkten vorlagen (Replicas 300, 302). Die Datenmanagementvorrichtung 112 kann ein Nahezeit- (d.h. in der Nähe des aktuellen Zeitpunkts) Replica (300) des Primärspeichergeräts 108 oder eine beliebige aus einer Reihe von virtuellen Ansichten oder Spiegeln früherer Versionen der auf dem Primärspeichergerät 108 gespeicherten Daten erzeugen. Auf jeden dieser virtuellen Spiegel wird mittels einer Reihe von virtuellen Recovery-Mapping-Objekten (VRMOs) 304 zugegriffen, die jeweils einen anderen Zeitpunkt repräsentieren.
  • Daten können von der Datenmanagementvorrichtung 112 entweder dadurch gelesen werden, dass vorgegeben wird, dass sich die Datenmanagementvorrichtung 112 (für Lesezwecke) als eine Kopie des Primärspeichergeräts 108 zu einem vorbestimmten Zeitpunkt (d.h. während des Mounting) verhält, oder indem Lesebefehle vorgegeben werden, die ein zusätzliches Zeitfeld enthalten. Zum Beispiel, um den Inhalt von Block 5 zu einem Zeitpunkt „t" zurückzuspeichern, könnte entweder die Datenmanagementvorrichtung 112 angewiesen werden, sich so zu verhalten, als wäre sie vom Zeitpunkt „t", und in diesem Fall würde ein Lesebefehl zu einem beliebigen Block die Daten ergeben, die zum Zeitpunkt „t" vorhanden waren, oder es könnte stattdessen ein Lesebefehl ausgegeben werden, der einfach „Block 5 von Zeitpunkt ,t' zurückspeichern" besagt.
  • 4 zeigt einen Vorgang des Replizierens von Daten in einer Datenmanagementvorrichtung gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung. Der Replikationsvorgang konzentriert sich um den „Spiegel-in-der-Mitte" (MIM) 400, der zunächst eine identische Kopie der auf dem Primärspeichergerät (108 in 1) gespeicherten Daten speichert. Der MIM 400 ist ein reservierter Teil des Direktzugriffsspeichers 114, der im Hinblick auf Kapazität und Adressraum mit dem Primärspeicher 108 identisch ist. Nach der Herstellung einer identischen Kopie des Primärspeichers 108 auf dem MIM 400 werden nachfolgende Schreibbefehle, die zum Ändern des Dateninhalts des Primärspeichergerätes 108 ausgegeben werden, sequentiell im Vorwärtsjournal 402 archiviert, ohne die im MIM 400 gespeicherten Daten zu verändern. Somit enthält das Vorwärtsjournal 402 die gesamte Folge der ausgegebenen Schreibbefehle, da MIM 400 mit dem Primärspeichergerät 108 identisch war. Vorwärtsjournal 402 und MIM 400 werden beide im Direktzugriffsspeicher 114 gespeichert.
  • Nach Ablauf einer bestimmten Zeitperiode, entweder nach einem vorbestimmten Zeitintervall oder wenn der Teil des Direktzugriffsspeichers 114, der für das Vorwärtsjournal 402 abgestellt wurde, voll ist, wird ein Teil der archivierten Befehle im Vorwärtsjournal 402, der aus dem ältesten Befehl im Journal und einer Reihe von Befehlen nach dem ältesten Befehl in der Sequenz besteht, bis zu einem Zeitpunkt, der durch die Archivierungsrichtlinie bestimmt wird, kombiniert, um zu bewirken, dass eine Nettoveränderung während der Zeitperiode stattfindet. Wenn beispielsweise auf die Speicheradressen 1–5 die Folge „ABCDE" geschrieben und dann „ZXC" auf die Adressen 2–4 geschrieben wird, dann besteht die Nettoveränderung der Daten darin, „AZXCE" auf die Adressen 1–5 zu schreiben. Wie in 13 gezeigt, können diese Änderungen als „Rückwärtsbewegungsliste-Bewegung" einschließlich einer logischen Adresse im logischen Adressraum des Primärspeichers 108, wo die Änderung auftritt, einer Länge der Änderung und einer Adresse einer Position im Vorwärtsjournal, an der die neu geschriebenen Daten gespeichert sind, ausgedrückt werden.
  • Als Nächstes werden die Startadressen und die die Nettoveränderung repräsentierenden Längen zum Zurückspeichern von Daten vom MIM 400 zum Ableiten einer Umkehr der Nettoveränderung verwendet. Zum Beispiel, wenn Adressen 1–5 ursprünglich „12345" enthielten und die Nettoveränderung darin besteht, „AZXCE" auf die Adressen 1–5 zu schreiben, dann besteht die Umkehr der Nettoveränderung darin, die ursprünglichen „12345" auf die Adressen 1–5 zu schreiben, so dass die vorgenommene Nettoveränderung umgekehrt wird. Diese Umkehrnettoänderung wird dann als „Schnappschuss" im Rückwärtsjournal 404 aufgezeichnet und der MIM 400 wird so aktualisiert, dass er die ermittelte Nettoveränderung reflektiert.
  • So können kürzliche Kopien des Primärspeichergerätes 104 durch Anwenden nachfolgender Änderungen vom Journal 402 auf die im MIM 400 gespeicherten Daten zurückgespeichert werden, während weiter zurückliegende Kopien durch Anwenden der Umkehrveränderungen (Schnappschüsse) auf MIM 400 zurückgespeichert werden können. Da das Primärspeichergerät 108 mit einer feineren Granularität für weniger weit zurückliegende Transaktionen journalisiert wird als für weiter zurückliegende Transaktionen, wird ein Kompromiss zwischen der Fähigkeit, Daten zu einem genauen Zeitpunkt zurückzuspeichern, und der Fähigkeit gefunden, Platz durch Speichern einer weit verstreuten Anzahl von Schnappschüssen der Daten zu sparen.
  • Das in 4 beschriebene System kann weiter dadurch verbessert werden, dass eine Archivierung vergangener Daten auf entfernbare Medien wie ein Bildband 406 und ein Differenzband 408 zugelassen wird. Ein Bildband, wie z.B. das Bildband 406, das eine komplette Kopie des Primärspeichergerätes 104 zu einem bestimmten Zeitpunkt enthält, kann von MIM 400 und Schnappschüssen 404 zusammengesetzt werden. Ein Differenzband, wie z.B. das Differenzband 408, das die Nettodifferenzen zwischen einem Bildband und aufeinander folgenden Schnappschüssen archiviert, kann ebenfalls erzeugt werden. Da sie auf entfernbaren Medien gespeichert sind, können das Bildband 406 und das Differenzband 408 für eine spätere Verwendung weggespeichert werden (z.B. in einem Bandsilo oder einer Bibliothekeinheit), ohne Systemressourcen dafür zu benutzen, wie z.B. Band- oder Plattenlaufwerke.
  • 5 zeigt den Grundbetrieb eines virtuellen Recovery-Mapping-Objekts (VRMO) gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung. Wie in 4 gezeigt wurde, können Teile von replizierten vergangenen Daten im Journal oder in Schnappschüssen gespeichert werden. Somit besteht ein „virtuelles Replica" des Primärspeichergeräts im Allgemeinen aus verschiedenen Fragmenten, die über Schnappschüsse gespeichert sind. Zum Zugreifen auf den virtuellen Spiegel muss identifiziert werden, wo jedes Datenelement in den verschiedenen Schnappschüssen im Rückwärtsjournal, im Vorwärtsjournal oder auf dem MIM gespeichert ist.
  • Wie 5 zeigt, ist das VRMO 502, das mit einem bestimmten Zeitpunkt „t" assoziiert ist, eine Datenstruktur, die eine logische Adresse (500), die die Position auf dem Primärspeichergerät 108 der Daten repräsentiert, auf die zugegriffen werden soll, auf eine physische Adresse (504) abbildet, die die Position der Daten innerhalb eines Schnappschusses oder Journals repräsentiert. Das VRMO 502 stellt vorzugsweise einen Index zum raschen Nachschlagen der physischen Adresse 504 angesichts der logischen Adresse 500 dar. Das VRMO 502 wird vorzugsweise in dem Speicher gespeichert, der in der Steuerschaltung der Datenmanagementvorrichtung 112 enthalten ist.
  • 6 ist ein Diagramm, das zwei VRMO-Typen veranschaulicht, die in einer bevorzugten Ausgestaltung der vorliegenden Erfindung verwendet werden können, VBMM (Virtual Block Map-MIM) 600 und VBMJ (Virtual Block Map-Journal) 602. VBMM 600 und VBMJ 602 sind hier als binäre Suchbäume dargestellt, obwohl eine Mehrwege-Baumstruktur wie z.B. die in 19 gezeigte ebenfalls zur Anwendung kommen könnte. Suchbäume, und insbesondere binäre Suchbäume, sind eine übliche Datenstruktur zum Indexieren von Daten mit einer Ordnungscharakteristik und sind in der Computerprogrammiertechnik gut bekannt. VBMM 600 und VBMJ 602 sind beide mit Zeitstempeln (604 und 606) markiert, die die Zeitpunkte bezeichnen, die durch VBMM 600 und VBMJ 602 repräsentiert werden.
  • Die VBMM 600 ist „MIM-zentrisch". Das bedeutet, dass die VBMM 600 in Bezug auf auf dem MIM 400 enthaltene Datenblöcke indexiert wird. Baumknoten 608 von VBMM 600 repräsentieren zusammenhängende Regionen des logischen Adressraums, die auf dem MIM 400 enthalten sind. Blattknoten 609 zeigen auf physische Bereichslisten (PELs) 610, die Teile des logischen Adressraums repräsentieren, neben den Blattknoten-Adressen, die in Journaleinträgen gespeichert sind (Schnappschüsse vom Rückwärtsjournal oder Segmente vom Vorwärtsjournal).
  • In der VBMM 600 werden logische Adressen in physische Adressen aufgelöst, indem zunächst Baumknoten 608 in dem Versuch durchquert werden, die auf dem MIM 400 enthaltene logische Adresse zu finden. Wenn die gesuchte logische Adresse in einem mit einem Baumknoten assoziierten Adressbereich enthalten ist, dann wird die logische Adresse einfach in eine identische physische Adresse auf MIM 400 aufgelöst, da sich die gesuchten Daten auf dem MIM 400 befinden. Wenn andererseits die gesuchte Adresse nicht in einem Baumknoten enthalten ist, dann wird die richtige physische Bereichsliste neben dem zuletzt durchsuchten Baumknoten nach der physischen Adresse im Journal durchsucht, die der gesuchten logischen Adresse entspricht. Es ist zu bemerken, dass auf physische Bereichslisten 610 durch Baumknoten 609 als linke und rechte Nachfolger gezeigt wird, genauso, als wenn die physischen Bereichslisten als Baumknoten in die Baumstruktur eingefügt worden wären. So wird beispielsweise eine physische Bereichsliste, die Adressen enthält, die kleiner sind als die ihres Stammbaumknotens, der linke Nachfolger dieses Stammbaumknotens sein.
  • Die VBMJ (Virtual Block Map-Journal) 602 ist dagegen Journal-zentrisch. Baumknoten 612 repräsentieren Bereiche von logischen Adressen, die in Journaleinträgen enthalten sind. Baumknoten 612 sind in einer Eins-zu-Eins-Entsprechung mit physischen Bereichslisten 614 abgebildet, die, wie die von VBMM 600, logische Adressen in physische Adressen abbilden, die sich in Journaleinträgen befinden.
  • Das Auflösen einer logischen Adresse in eine physische Adresse mit VBMJ 602 ist eine einfache Sache. Wenn sich die fragliche Adresse in dem Journal befindet, dann werden beim Durchqueren des Baums von VBMJ 602 ein Baumknoten und eine entsprechende physische Bereichsliste gefunden, die die logische Adresse in ihre physische Position im Journal abbildet. Wenn sich die Adresse stattdessen auf dem MIM befindet, dann verläuft die Baumsuche erfolglos. In diesem Fall befindet sich die richtige physische Adresse auf dem MIM und ist mit der logischen Adresse äquivalent.
  • 7 ist ein Schema eines Vorwärtsjournals 700 gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung. Das Vorwärtsjournal 700 besteht aus zwei Warteschlangen 701 und 703. Die Warteschlangen 701 und 703 sind in einer bevorzugten Ausgestaltung kreisförmige Warteschlangen, um die Menge an ständigen Verzeichnisstrukturen minimal zu halten, die zum Entziffern des Zustands der Warteschlange nach einer Stromversorgungsunterbrechung nötig sind. Eine kreisförmige Warteschlange braucht lediglich ständig Zeiger auf Anfang und Ende der Warteschlange, um vollkommen wiederherstellbar zu sein. Warteschlangen, und insbesondere kreisförmige Warteschlangen, sind hinlänglich bekannte Datenstrukturen in der Computerprogrammierungstechnik.
  • Die Elemente der Warteschlange 701 bestehen hauptsächlich aus Bereichsdeskriptoren 702. Jeder der Bereichsdeskriptoren 702 beschreibt einen zusammenhängenden Bereich von Daten innerhalb des logischen Adressraums. Jeder der Bereichsdeskriptoren 702 beinhaltet eine logische Startadresse 704, eine Länge 706 und eine physische Adresse 708. Die logische Startadresse 704 repräsentiert die Startadresse des Bereichs von Daten in dem logischen Adressraum. Die Länge 706 repräsentiert die Länge des Bereichs von Daten. Die physische Adresse 708 repräsentiert eine physische Adresse in der Warteschlange 703, in der der Bereich gespeichert ist. Die Warteschlange 701 kann einen oder mehrere Sync-Indikatoren beinhalten, wie z.B. den Sync-Indikator 710, die als Zeitmarker fungieren.
  • Die Warteschlange 703 besteht aus Bereichen 712. Die Bereiche 712 repräsentieren die tatsächlichen Daten, die auf Primärspeicher 108 geschrieben und von der Datenmanagementvorrichtung 112 im Vorwärtsjournal 402 repliziert wurden (siehe 1 und 4).
  • 8 ist ein Schema eines MIM 800 gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung. MIM 800 ist in Speichereinheiten oder -blöcke wie den Block 804 unterteilt. Die Speichereinheiten oder -blöcke können eine Datenansammlung einer beliebigen festen Größe sein und von der Organisation des Primärspeichers abhängen. Der Block 804 hat, wie die anderen Speichereinheiten im MIM 800, eine damit assoziierte logische Adresse 802. Diese logischen Adressen sind dieselben logischen Adressen im oben erwähnten logischen Adressraum. Somit repräsentiert der MIM 800 den gesamten logischen Adressraum. Derselbe logische Adressraum wird zum Darstellen von Speicherpositionen innerhalb des Primärspeichers verwendet.
  • 9 ist ein Schema, das eine Gesamtansicht eines Prozesses zum Aktualisieren eines MIM und zum Erzeugen von Schnappschüssen gemäß der bevorzugten Ausgestaltung der vorliegenden Erfindung repräsentiert. Im Laufe der Zeit und während Daten in den Primärspeicher 108 und das Vorwärtsjournal 402 geschrieben werden, wird ein Punkt erreicht, an dem ein Schnappschuss erzeugt wird. Die Vorrichtung wählt vorzugsweise einen Punkt, an dem ein Sync-Indikator wie der Sync-Indikator 710 im Vorwärtsjournal auftritt, als Endpunkt des Schnappschusses aus.
  • Das VRMO 900 bildet Adressen vom logischen Adressraum auf physische Positionen auf dem MIM (400 in 4) oder dem Rückwärtsjournal (404 in 4) ab. Ganz am Anfang des Datenreplikationsprozesses sind MIM 400 und Primärspeicher 108 identisch. Somit bildet das VRMO 900 zunächst logische Adressen nur in physische Positionen auf dem MIM 400 ab.
  • Wenn ein Update-Event auftritt, werden ausstehende Vorwärtsjournaleinträge 902 zum Modifizieren des VRMO 900 zum Erzeugen eines neuen VRMO 906 verwendet. Inzwischen werden VRMO 900 und Vorwärtsjournaleinträge 902 zum Erzeugen neuer Rückwärtsjournaleinträge 908 verwendet. Rückwärtsjournaleinträge 908 und das VRMO 906 definieren einen Schnappschuss 910. Schließlich wird der MIM-Inhalt 904 mit Vorwärtsjournaleinträgen 902 zum Erzeugen eines neuen MIM-Inhalts 912 aktualisiert, so dass der MIM 400 zeitlich vorgerückt wird, insbesondere um den vom Sync-Indikator 710 angezeigten Zeitpunkt zu repräsentieren.
  • 10 ist ein Fließschema eines Prozesses zum Erzeugen eines neuen Schnappschusses und um einen MIM zeitlich vorzurücken, gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung. Zunächst wird eine Vorwärtsjournal-Bewegungsliste vom Vorwärtsjournal erzeugt (Schritt 1000). Diese Vorwärtsjournal-Bewegungsliste enthält die Bereiche aller ausstehenden Journaleinträge aus der Warteschlange 701 in 7. Als Nächstes wird eine Rückwärtsjournal-Bewegungsliste von der Vorwärtsjournal-Bewegungsliste im aktuellen VRMO erzeugt (Schritt 1002). Zusätzlich wird auch ein neues VRMO erzeugt (Schritt 1002). Die Rückwärtsjournal-Bewegungsliste enthält Bereiche genau wie die Vorwärtsjournal-Bewegungsliste. Im Gegensatz zur Vorwärtsjournal-Bewegungsliste repräsentiert jedoch die Rückwärtsjournal-Bewegungsliste Positionen auf dem MIM 400, die überschrieben werden, wenn der MIM 400 zeitlich vorgerückt wird. Diese Positionen müssen im Rückwärtsjournal konserviert werden, damit frühere Versionen des Inhalts des Primärspeichers 108 zurückgewonnen werden können, insbesondere um es zuzulassen, dass der vom MIM repräsentierte Zeitpunkt unmittelbar vor dem MIM-Update-Event weiter zurückgewonnen werden kann. Somit werden diese Positionen vom MIM in das Rückwärtsjournal gemäß der Rückwärtsjournal-Bewegungsliste kopiert (Schritt 1004). Als Nächstes wird der MIM 400 so aktualisiert, dass er die einzelnen in der Vorwärtsjournal-Bewegungsliste enthaltenen Schreibbefehle reflektiert (Schritt 1006). Schließlich wird der Teil des Vorwärtsjournals, der zum Aktualisieren des MIM verwendet wurde, jetzt freigegeben oder recycelt, um Platz für neue eingehende Journal-Transaktionen zu schaffen (Schritt 1008).
  • 11 ist ein Schema, das einen Vorgang zum Erzeugen einer VBMM gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung veranschaulicht. Zunächst besteht die VBMM aus einem einzelnen Knoten 1100, der den Adressbereich des gesamten logischen Adressraums repräsentiert. Die VBMM wird durch Anwenden eines rekursiven Algorithmus zum Unterteilen des Knotens 1100 in einen Baum von Knoten konstruiert, die kleinere Bereiche abdecken. Der rekursive Algorithmus erhält einen einzelnen Adressbereich als Eingang, der eine Bewegung von der Vorwärtsbewegungsliste und einen aktuellen Knoten repräsentiert.
  • An jedem Knoten in der aktuellen VBMM wird der Bereich des Knotens mit dem Eingangsbereich verglichen. Je nach dem, wie und ob sich die Bereiche überlappen, kann der aktuelle VBMM-Knoten verkleinert, gelöscht oder geteilt werden. Der Algorithmus kann dann selbst rekursiv rufen, um die linken und/oder rechten Nachfolger jedes Knotens zu überqueren, bis die Blätter des Baums erreicht sind. Ebenso wird eine physische Bereichsliste (PEL) erzeugt, die zur Rückwärtsjournal-Bewegungsliste wird. PEL-Einträge werden an jedem Knoten erzeugt, wo der Eingangsadressbereich mit dem Knotenadressbereich überlappt. Tabelle I unten ist eine Entscheidungstabelle, die die richtigen Aktionen in Verbindung mit jedem Überlappungsgrad zwischen dem Eingangsbereich und dem Knotenbereich zeigt. Die Abkürzungen MLS und MLE beziehen sich auf die Anfangs- und Endeadressen des Bereichs, der durch die Eingangsbewegung von der Bewegungsliste repräsentiert wird, und VBS und VBE bedeuten die Anfangs- und Endeadressen des Bereiches, der durch den aktuellen Knoten repräsentiert wird.
  • Tabelle I: Entscheidungstabelle für VBMM-Update
    Figure 00160001
  • Figure 00170001
  • Nun mit Bezug auf das Beispiel in 11, es wird eine erste Eingangsbewegung 1102 von der Vorwärtsbewegungsliste genommen. Die Bewegung 1102 beinhaltet eine logische Anfangsadresse 1104, eine Länge von zu schreibenden Daten 1106 und eine physische Adresse 1108 in dem Vorwärtsjournal, wo die Daten gespeichert sind. Da die Bewegung 1102 einen Schreibvorgang auf einen Adressbereich repräsentiert, der vollständig im Adressbereich von Knoten 1100 enthalten ist, wird der Knoten 1100 in zwei Knoten 1110 und 1111 unterteilt. Ein PEL-Eintrag 1112 wird ebenfalls erzeugt und enthält eine logische Startadresse 1114 und Endadresse 1116.
  • Als Nächstes wird dem Algorithmus eine neue Bewegung 1118 vorgelegt. Da der in der Bewegung 1118 beschriebene Bereich das Ende des Bereichs in Knoten 1110 überlappt, wird der Knoten 1110 verkleinert, um Knoten 1120 zu erzeugen, und es wird der PEL-Eintrag 1124 gemäß der entsprechenden Entscheidungstabellenregel aus Tabelle I oben erzeugt.
  • Dann wird erneut der Algorithmus (rechts rekursiv) mit dem justierten Eingangsbereich von (8:13) aufgerufen. Da dieser Bereich den von Knoten 1111 zu Beginn des Bereichs von Knoten 1111 überlappt (12:100), wird der Bereich von Knoten 1111 verkürzt, um den Knoten 1121 zu erzeugen, und ein neuer PEL-Eintrag 1126 wird erzeugt.
  • 12 zeigt einen Vorgang zum Erzeugen einer Rückwärtsbewegungsliste von einer PEL 1200 gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung. Zunächst wird die PEL 1200 in aufsteigender Reihenfolge nach Startadresse zum Erzielen der PEL 1202 sortiert. Dann werden diejenigen Serien von PEL-Einträgen, die einen zusammenhängenden Block von logischen Adressen repräsentieren, zu einem einzelnen Eintrag kombiniert (z.B. 1204).
  • Diese neu gebildete Rückwärtsbewegungsliste kann dann in das Rückwärtsjournal wie in 13 gezeigt eingebaut werden. Die Einträge (Bewegungen) von der Rückwärtsbewegungsliste (z.B. 1204) werden in eine erste Warteschlange 1300 gesetzt. Ein Sync-Marker 1302 repräsentiert den Anfang von Rückwärtsjournaleinträgen für den aktuellen Schnappschuss. Rückwärtsjournaleinträge werden als Bereichsdeskriptoren geschrieben, wie z.B. als Bereichsdeskriptor 1304. Der Bereichsdeskriptor 1304 enthält eine logische Startadresse 1306, eine Länge 1308 und eine physische Adresse 1310. Die Startadresse 1306 und die Länge 1308 werden von der Rückwärtsbewegung 1204 abgeleitet. Die physische Adresse 1310 bezieht sich auf die Startposition innerhalb einer zweiten Warteschlange 1312, die einer Startadresse 1306 entspricht. Daten an der logischen Startadresse 1306 werden vom MIM in die zweite Warteschlange 1312 an der physischen Adresse 1310 kopiert.
  • Schließlich werden, wie in 14 gezeigt, die einzelnen Bewegungen in der Rückwärtsbewegungsliste (z.B. Bewegung 1204) in die neue VBMM (1400) als „physischer Bereichsknoten" (zB. 1402) zu Daten eingefügt, die im Rückwärtsjournal gespeichert sind, das mit VBMM 1400 gefunden werden soll.
  • 15 ist ein Fließschema eines Prozesses zum Erzeugen eines Schnappschusses einschließlich einer VBMM und Rückwärtsjournaleinträgen gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung. Für jeden Vorwärtsjournaleintrag wird die VBMM (die zunächst einen einzelnen Knoten enthält, der den gesamten logischen Adressraum repräsentiert) durchquert und es werden neue VBMM-Knoten und PEL-Einträge gemäß der obigen Entscheidungstabelle erzeugt (Schritt 1500). Die neue PEL wird sortiert (Schritt 1502). Als Nächstes werden zusammenhängende PEL-Einträge zusammengefügt (Schritt 1504). Die neuen PEL-Einträge werden dann in eine Rückwärtsjournal-Bewegungsliste gesetzt (Schritt 1506). Den Rückwärtsjournaleinträgen entsprechende Daten werden dann vom MIM in das Rückwärtsjournal kopiert (Schritt 1508). Schließlich werden die neuen PEL-Einträge als physische Bereichsknoten in den VBMM-Baum eingesetzt (Schritt 1510).
  • Wenn alle Journaleinträge, die in einem einzelnen Schnappschuss berücksichtigt werden sollen, in das Rückwärtsjournal und die VBMM (oder VBMJ) gesetzt wurden, dann heißt es, der Schnappschuss sei „geschlossen". In der Praxis können wir mehrere Synchronisationsevents durchführen (in denen wir Rückwärtsjournaleinträge erzeugen und den MIM aktualisieren), während der Schnappschuss noch „offen" ist. Ferner kann sich, selbst wenn der Schnappschuss geschlossen ist, wenn Daten von einem bestimmten Schnappschuss aktualisiert und somit auf dem MIM überschrieben werden, die VBMM (oder VBMJ) des älteren Schnappschusses nicht mehr auf den MIM verlassen und muss so aktualisiert werden, dass sie auf eine Kopie der überschriebenen Daten im Rückwärtsjournal zeigt.
  • 16 zeigt eine Situation, in der eine VBMM 1600 für einen Schnappschuss zum Erzeugen einer neuen VBMM 1602 für den Schnappschuss modifiziert wird, wenn ein Synchronisationsevent auftritt. Es geschieht Folgendes: es wird der soeben erwähnte Algorithmus zum Erzeugen einer neuen VBMM abgerufen, genau so, als wenn die VBMM neu wäre, mit Ausnahme von zwei Unterschieden. Der erste und offensichtlichste Unterschied ist, dass die alte VBMM anstatt des ursprünglichen einzelnen Knotens durchquert wird. Der zweite Unterschied ist, dass sich die neuen physischen Bereichsknoten (1604), obwohl sie sich auf Teile des logischen Adressraums beziehen können, die mit älteren physischen Bereichsknoten zusammenhängen, auf physische Adressen im Rückwärtsjournal beziehen, die nicht mit solchen des älteren physischen Bereichsknotens zusammenhängen. Somit müssen neue physische Bereichsknoten 1604 in einer sortierten physischen Bereichsliste (PEL) an den Blättern des Baums koexistieren, brauchen aber nicht mit älteren physischen Bereichsknoten kombiniert zu werden, die benachbarte Positionen im logischen Adressraum repräsentieren.
  • Schließlich ist es, wenn mehr Daten in einem Schnappschuss vom MIM zum Rückwärtsjournal bewegt werden, nicht mehr effizient, die gesammte VBMM zu den Blättern zu durchqueren, um Daten im Journal zu finden. In einem solchen Fall kann die VBMM in eine VBMJ konvertiert werden. Nun mit Bezug auf 6, der Vorgang zum Konvertieren einer VBMM (600) in eine VBMJ (602) ist einfach. Zunächst werden alle PELs (614) in der VBMM gesammelt. Für jede PEL wird ein VBMJ-Knoten (z.B. VBMJ-Knoten 612) erzeugt, der einen Adressbereich repräsentiert, wobei die Anfangsadresse des Bereichs die Anfangsadresse des ersten Eintrags in der PEL und die Endadresse die Endadresse des letzten Eintrags der PEL ist, und wobei jeder VBMJ-Knoten auf seine jeweilige PEL zeigt. Schließlich werden die VBMJ-Knoten in den neuen VBMJ-Baum eingesetzt.
  • Genau wie bei VBMMs, haben VBMJs einen Algorithmus zum Aktualisieren des VBMJ, so dass sie auf Einträge im Rückwärtsjournal zeigt, falls Daten im MIM überschrieben werden. 17 zeigt ein Beispiel für diesen Algorithmus. Wie beim VBMM-Algorithmus beinhaltet der VBMJ-Update-Algorithmus das Anwenden von Regeln aus einer Entscheidungstabelle an jedem Knoten, der beim Durchqueren von Baumknoten auftritt. Im Gegensatz zum VBMM-Algorithmus werden jedoch drei zusätzliche Datenstrukturen für den VBMJ-Algorithmus benötigt.
  • Da die Knoten einer VBMJ Bereiche im Rückwärtsjournal repräsentieren, werden, wenn mehr Daten in das Rückwärtsjournal kopiert werden, die Knoten der VBMJ erweitert oder zusammengeführt, im Gegensatz zur VBMM, wo Knoten geteilt oder reduziert werden. Es müssen Informationen über die Knoten und physischen Bereiche gespeichert werden, die in diesen drei zusätzlichen Datenstrukturen kombiniert werden. Ein Schrumpfsatz C ist ein Satz von logischen Adressbereichen, die zu einem einzelnen Knoten kombiniert werden sollen. Ein physischer Bereichssatz CP eines Schrumpfsatzes ist ein Satz von physischen Bereichsknoten, die in die physische Bereichsliste (PEL) für den Knoten einbezogen werden sollen, der von dem Schrumpfsatz C erzeugt wird. Der Kandidatensatz BJMC der Rückwärtsjournal-Bewegungsliste speichert einen Satz von logischen Adressbereichen, die in die Rückwärtsjournalbereiche konvertiert werden sollen.
  • Wie zuvor erwähnt, ist der Arbeitsablauf des Algorithmus wie folgt: Durchqueren des VBMJ-Baums, Anwenden von Entscheidungsregeln an jedem Knoten gemäß dem Grad und Typ der Überlappung des Eingangsbewegungsadressbereichs ([MLS, MLE]) und des Adressbereichs für den aktuellen Knoten ([VBS, VBE]). Die Entscheidungsregeln für den VBMJ-Algorithmus sind in Tabelle II unten aufgeführt: Tabelle II: Entscheidungstabelle für VBMJ-Update
    Figure 00200001
  • Figure 00210001
  • Wenn eine Rekursion befohlen wird, aber der Nachfolger-Zeiger in der angezeigten Richtung NULL ist (d.h. die Baumdurchquerung hat einen Blattknoten erreicht und die befohlene Rekursion kann nicht durchgeführt werden, da der richtige Nachfolgerknoten für eine weitere Rekursion nicht existiert), dann wird bearbeitete Eingangsbereich ([MLS, MLE]) zu C hinzugefügt und ein entsprechender physischer Bereich wird zu CP hinzugefügt. Der aktuelle Eingangsbereich wird ebenfalls zu BJMC hinzugefügt.
  • Wenn die VBMJ mit den Entscheidungsregeln in Tabelle II durchquert wurde, dann werden der Schrumpfsatz und die untergeordneten Datenstrukturen verarbeitet, um die neuen VBMJ- und Rückwärtsjournaleinträge zu erzeugen. Zunächst wird ein neuer VBMJ-Knoten erzeugt, aber nicht zur VBMJ hinzugefügt. Dieser Knoten erhält einen Adressbereich, der mit dem „Bereich von C" äquivalent ist, der mit R(C) bezeichnet werden kann. R(C) hat die niedrigste Startadresse der Adressbereiche in C als Startadresse; R(C) hat die größte Startadresse der Adressbereiche in C als Endadresse (der Grund ist, dass C eine Reihe von Bereichen repräsentiert, die einen zusammenhängenden Adressraumblock bilden).
  • Dann wird veranlasst, dass die PEL des neuen VBMJ-Knotens alle in CP repräsentierten physischen Bereiche enthält, in aufsteigender Reihe nach logischen Startadressen sortiert. Als Nächstes werden alle VBMJ-Knoten in der VBMJ gelöscht, die den in C enthaltenen Adressbereichen entsprechen, um Platz zu machen. Dann wird der neue VBMJ-Knoten in die VBMJ eingesetzt, um die gelöschten VBMJ-Knoten zu ersetzen.
  • Zum Vervollständigen des Synchronisationsprozesses müssen neue Rückwärtsjournaleinträge erzeugt werden, und der MIM muss gemäß den Vorwärtsjournaleinträgen aktualisiert werden. Dies erfolgt durch Sortieren und Kombinieren des BJMC-Satzes mit dem in den 12 und 13 veranschaulichten Prozess. Die neuen physischen Bereiche in der VBMJ, die zum Aufnehmen der neuen Rückwärtsjournaleinträge geschaffen wurden, werden dann so aktualisiert, dass sie auf die physischen Adressen im Rückwärtsjournal zeigen, an denen sich die vom MIM auf das Rückwärtsjournal kopierten Schnappschussdaten befinden.
  • Nach dem Aktualisieren einer VBMJ ist das Aktualisieren von VBMJs, die ältere Schnappschüsse repräsentieren, eine leichte Sache. Anstatt die Vorwärtsjournal-Bewegungsliste zu verarbeiten, wird die Rückwärtsjournal-Bewegungsliste an ihrer Stelle verwendet und es wird derselbe Algorithmus angewendet, mit der Ausnahme, dass die erzeugten physischen Bereichsknoten veranlasst werden, auf Daten zu zeigen, die sich bereits im Rückwärtsjournal befinden, anstatt die Daten neu aus dem MIM zu kopieren.
  • 17 ist ein Schema, das ein Beispiel für einen Vorgang des Aktualisierens einer VBMJ gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung zeigt. Das Beispiel beginnt mit einer existierenden VBMJ 1700 und den Datenstrukturen C 1702, CP 1704 und BJMC 1706. Der Bereich von C, R(C) 1708 ist der Deutlichkeit halber ebenso dargestellt.
  • Es wird eine Vorwärtsjournal-Bewegung 1710 verarbeitet. Der logische Adressbereich der Bewegung 1710 überlappt überhaupt nicht mit dem Knoten 1711, sondern befindet sich hinter dem Bereich von Knoten 1711, daher wird Knoten 1720, der rechte Nachfolger von Knoten 1711, untersucht. Der Knoten 1720 überlappt mit dem Bereich von Bewegung 1710. Somit wird der Bereich von Knoten 1720 zu C 1712 hinzugefügt, und seine PEL 1722 wird zu CP 1714 hinzugefügt. Da Knoten 1720 ein Blatt ist, wird der aktuelle Eingabebereich, der von (42, 48) zu (46, 48) durch die richtige Entscheidungsregel aus Tabelle II verkürzt wird, in C 1712, CP 1714 und BJMC 1716 eingefügt. Somit ist der Bereich von C, R(C) 1718 [39, 48]. Der Knoten 1720 wird dann aus der VBMJ gelöscht und durch einen neuen Knoten 1724 ersetzt, dessen Bereich mit R(C) 1718 äquivalent ist und dessen PEL 1726 alle physischen Bereiche in CP 1714 beinhaltet.
  • 18 ist ein Fließschema eines Prozesses zum Aktualisieren einer VBMJ und zum Erzeugen von Rückwärtsjournaleinträgen gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung. Zunächst wird die Vorwärtsjournal-Bewegungsliste zum Durchqueren der aktuellen VBMJ und zum Erzeugen von C, CP und BJMC gemäß den Entscheidungsregeln in Tabelle II durchquert (Schritt 1800). Es wird ein neuer VBMJ-Knoten mit dem Bereich R(C) erzeugt (Schritt 1802). Die in C enthaltenen VBMJ- Knoten werden gelöscht (Schritt 1804). Der neue VBMJ-Knoten wird anstelle der gelöschten Knoten eingesetzt (Schritt 1806). Der BJMC-Satz wird sortiert und zusammenhängende BJMC-Einträge werden kombiniert (Schritt 1808). Neue Rückwärtsjournaleinträge werden von dem sortierten, kombinierten BJMC-Satz erzeugt (Schritt 1810). Schließlich werden die Rückwärtsjournaleinträge zum Aktualisieren älterer VBMJs verwendet, die möglicherweise existieren (Schritt 1812). Nach dem Aktualisieren aller VBMJs und VBMMs, so dass sie auf das Rückwärtsjournal anstatt auf den MIM gemäß der Rückwärtsjournal-Bewegungsliste zeigen, wird die Vorwärtsjournal-Bewegungsliste so verarbeitet, dass der MIM aktualisiert und Raum im Vorwärtsjournal wie zuvor geschaffen wird.
  • Die hier beschriebenen VBMM- und VBMJ-Datenstrukturen brauchen nicht von einfach binären Bäumen konstruiert zu werden. Stattdessen können Multikey-, Multipointer-Baumstrukturen (wie z.B. B-Bäume oder B+-Bäume) verwendet werden, um die Rückspeicherungseffizienz zu erhöhen. 19 zeigt eine beispielhafte Mehrwege-VBMJ-Baumdatenstruktur (1900) zum Repräsentieren einer Abbildung von logischen Speichergeräteadressen auf physische Journal/Schnappschuss-Adressen. Sicher repräsentiert zwar jeder Knoten im Baum 1900 einen zusammenhängenden Bereich von logischen Adressen, aber die Daten in dem Bereich brauchen nicht zusammenhängend in den Schnappschuss/Journal-Einträgen gespeichert zu werden. Stattdessen werden mehrere Zeiger von jedem Knoten vorgesehen, so dass sie jeweils eine Reihe von Unterbereichen repräsentieren, die den zuammenhängenden Bereich von Adressen bilden. Somit repräsentiert Knoten 1904 zwar logische Adressen von 40 bis 860, aber es gibt jeweils Zeiger (1906, 1908, 1909 und 1911), die jeweils auf physische Repräsentationen der Unterbereiche 40–66, 67–79, 80–300 bzw. 301–859 zeigen. Die VBMJ 1900 ist im Wesentlichen eine VBMJ wie in 6 beschrieben (VBMJ 602), aber die physischen Bereichslisten sind in die Baumknoten selbst und nicht als Blätter von binären Baumknoten integriert. Auf diese Weise können Knotenzugriffe reduziert werden, da jeder Knoten zwar einen zusammenhängenden Bereich von Adressen repräsentiert, aber mehrere unterschiedliche Unterbereiche identifiziert werden können, indem nur ein Knoten untersucht wird. Unter Verwendung eines Mehrwegebaums wie z.B. der VBMJ 1900 kann die Zahl von Speicher- oder Plattenzugriffen zum Zurückspeichern von Knoten im Baum reduziert werden, so dass die Leistung der logischen Adressabbildungsfunktion erhöht wird.
  • 20 ist ein Fließschema eines Prozesses zum Erzeugen von Speicherreplicas gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung. Es ist zu bemerken, dass die in 20 gezeigten Schritte zwar in Folge mit Bezug auf einen einzelnen journalisierten Schreibbefehl ausgeführt werden, aber in einer bevorzugten Ausgestaltung werden sie tatsächlich parallel an mehreren Datenelementen durchgeführt. So werden beispielsweise Schreibbefehle weiter auf das Journal geschrieben, während ältere Schreibbefehle zum VRMO hinzugefügt werden. Somit ist das bevorzugte Ausführungsmodell ein „Pipeline"- oder „Fließband"-Ansatz, bei dem jeder Schritt gleichzeitig, aber an anderen Datenelementen durchgeführt wird. Zunächst wird ein atomarer Schreibbefehl von einem Steuerungscomputersystem empfangen (Schritt 2000). Der Schreibbefehl wird in ein Journal geschrieben und ein VRMO (virtuelles Recovery-Mapping-Objekt) wird erzeugt (Schritt 2002). Bestimmte Bedingungen können die Konstruktion einer Vorwärtsjournal-Bewegungsliste zur Folge haben, nämlich das Fehlen von Platz für zusätzliche Journaleinträge oder das Verstreichen einer vorgegebenen Zeitperiode (Schritt 2004). Wenn die Kriterien nicht erfüllt sind, dann zykliert der Prozess zu Schritt 2000. Wenn ja, dann werden die Schreibbefehle vom Journal zu einem Schnappschuss kombiniert, der in der Sammlung von Schnappschüssen gespeichert wird (Schritt 2006). Als Nächstes wird der „Spiegel-in-der-Mitte" (MIM) so aktualisiert, dass er mit dem Schnappschuss übereinstimmt (Schritt 2008). Wenn ein Kriterium zum Aufzeichnen auf ein entfernbares Medium erfüllt ist (Schritt 2010), dann können Bild- und Differenz-„Bänder" (oder Platten usw.) von den Schnappschüssen erzeugt werden (Schritt 2012). In jedem Fall zykliert der Prozess dann wieder zu Schritt 2000. Es ist zu bemerken, dass die Schritte 2010 und 2012 hier zwar als Teil einer Folge von Schritten dargestellt sind, aber die Schritte 2010 und 2012 können tatsächlich asynchron in Bezug auf die Erzeugung von Schnappschüssen (d.h. jederzeit, nicht nur nach der Erzeugung eines Schnappschusses) oder überhaupt nicht durchgeführt werden.
  • Die durchschnittliche Fachperson wird erkennen, dass ein Benutzer oder Administrator mit einem geeigneten Steuercomputerprogramm die Kriterien dafür setzen kann, wann MIM-Updates oder Bandübertragungsevents erfolgen. Diese Events können so eingestellt werden, dass sie zu einer bestimmten Tageszeit oder nach dem Verstreichen einer bestimmten Zeitperiode auftreten, oder sie können so gesetzt werden, dass sie mit anderen Events zusammenfallen, wie z.B. der Synchronisation eines Datenbankmanagementsystems. Die durchschnittliche Fachperson wird erkennen, dass das Planen von Synchronisations- und/oder Bandübertragungsevents auf eine beliebige gewünschte Weise durchgeführt werden kann, ohne von Umfang und Wesen der Erfindung abzuweichen.
  • Die 2123 illustrieren besondere Anwendungen für eine Datenmanagementvorrichtung gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung. Aufgrund des Vorhandenseins einer Datenmanagementvorrichtung mit der Fähigkeit, gespiegelte Versionen eines Speichergeräts aus der Vergangenheit abzurufen, kann ein Überwachungsprozess eine problematische Veränderung des Zustands der auf dem Speichergerät gespeicherten Daten und das Wiederherstellen verfälschter Daten in ihren letzten korrekten Zustand überwachen.
  • So zeigt beispielsweise 21 einen Vorgang zum Überwachen einer Datenbank auf Verletzungen von Einheitlichkeitsbeschränkungen (wie z.B. Werte, die auf vorgegebenen Bereichen herausfallen oder spuriöse duplizierte oder mehrdeutige Daten). Ein Applikationsserver (2100) nutzt eine auf einer Primärplatte 2102 gespeicherte Datenbank. Die Datenmanagementvorrichtung 2104 speichert virtuelle Spiegel 2106 der Primärplatte 2102 im Laufe der Zeit. Ein Zertifikationsserver 2108 kann die Datenmanagementvorrichtung 2104 mounten und jeden einzelnen virtuellen Spiegel (wie z.B. den virtuellen Spiegel 2110) auf Korrektheit untersuchen. Wenn ein Problem festgestellt wird, dann kann die Primärplatte 2102 mit dem von der Datenmanagementvorrichtung 2104 gespeicherten letzten korrekten virtuellen Spiegel wiederhergestellt werden. In einer alternativen Ausgestaltung kann der Zertifikationsserver 2108 einfach durch Software ersetzt werden, die an einem geschützten Applikationsserver 2100 oder einer Datenmanagementvorrichtung 2104 wirkt.
  • Ebenso zeigt 22 ein System, das auf Viren überwacht. Der Applikationsserver 2200 nutzt ein auf der Primärplatte 2202 gespeichertes Dateisystem. Die Datenmanagementvorrichtung 2204 speichert virtuelle Spiegel 2206 der Primärplatte 2202 im Laufe der Zeit. Virus-Scanner-Software 2208 kann jeden individuellen virtuellen Spiegel (wie z.B. den virtuellen Spiegel 2210) nach Viren durchsuchen (oder jeden zweiten oder jeden dritten Spiegel usw.). Wenn ein Problem gefunden wird, kann die Primärplatte 2202 mit dem von der Datenmanagementvorrichtung 2204 gespeicherten letzten uninfizierten virtuellen Spiegel wiederhergestellt werden.
  • 23 ist ein Fließschema eines Prozesses zum Überwachen von problematischen Veränderungen in Daten, die mit einer Datenmanagementvorrichtung gemäß einer bevorzugten Ausgestaltung der vorliegenden Erfindung gesichert wurden. Zunächst mountet, wenn die Überwachung außerhalb des Gerätes selbst erfolgt, das externe Gerät die Datenmanagementvorrichtung, so dass es auf ihre Daten zugreifen kann (Schritt 2300). Ein virtueller Spiegel an dem Gerät wird geprüft, um zu sehen, ob er vorgegebenen Anforderungen genügt (z.B. virusfrei, eine einheitliche Datenbank, fehlerfrei ist usw.) (Schritt 2302). Wenn die Anforderungen erfüllt sind (Schritt 2304:Ja), dann wird der nächste virtuelle Spiegel in chronologischer Reihenfolge untersucht (Schritt 2306). Wenn nicht (Schritt 2304:Nein), dann wird der dem gerade untersuchten Spiegel chronologisch vorangehende Spiegel untersucht, um zu sehen, ob er den Anforderungen genügt (Schritt 2308). Wenn nicht (Schritt 2310:Nein), wird der nächstvorangehende Spiegel untersucht (Schritt 2312). Wenn ja (Schritt 2310:Ja), werden die unverfälschten Daten in dem Spiegel auf das Primärspeichergerät wiederhergestellt (Schritt 2314).
  • Die durchschnittliche Fachperson wird erkennen, dass eine Reihe von Variationen an der vorliegenden Erfindung erzielt werden können, ohne vom Umfang der Ansprüche abzuweichen. So zeigen zwar z.B. die oben beschriebenen Figuren eine einzelne Datenmanagementvorrichtung, die in Verbindung mit einem einzelnen Primärspeichergerät und einem einzelnen Computersystem eingesetzt wird, aber in der Tat kann die vorliegende Erfindung auf skalierte Weise mit mehreren Geräten, mehreren Primärspeichergeräten und/oder mehreren Computersystemen benutzt werden, die zu einem Speichernetzwerk zusammengeschaltet sind. 24 zeigt beispielsweise eine einzelne Datenmanagementvorrichtung (2400), das mit einem Speichernetzwerk (2402) mit mehreren Servern verbunden ist, die mit Primärspeichergeräten (2404) verbunden sind, die an dem Speichernetzwerk 2402 angeschlossen sind. Die Primärspeichergeräte können Spiegel voneinander sein oder unterschiedliche Inhalte haben. Sie können dieselbe Datenmanagementvorrichtung (2400) gemeinsam nutzen.
  • 25 zeigt eine einzelne Datenmanagementvorrichtungskonsole 2500, die mehrere Datenmanagementvorrichtungen 2504 steuert, die als einzelne Einheit verwaltet werden, ohne Rücksicht auf die Zahl der Geräte, die gerade in der Installation enthalten sind. So kann die Kapazität oder das Aktivitätsniveau der Primärspeicherung erhöht werden, ohne gleichzeitig den administrativen Aufwand zu erhöhen, der erforderlich ist, um den von den Datenmanagementvorrichtungen 2504 gelieferten Schutzmechanismus funktionell zu halten. Mit Hilfe einer Bandbibliothek 2502 können Bild- und Differenzbänder von auf Datenmanagementvorrichtungen 2504 gespeicherten Schnappschüssen gespeichert werden. 26 zeigt ein ähnliches System, bei dem Datenmanagementvorrichtungen 2600 einen gemeinsamen gepoolten Direktzugriffsspeicher (2604) nutzen.
  • Es ist wichtig zu bemerken, dass die vorliegende Erfindung zwar im Zusammenhang mit einem voll funktionierenden Datenverarbeitungssystem beschrieben wurde, dass aber die Fachperson erkennen wird, dass die Prozesse der vorliegenden Erfindung in der Form eines rechnerlesbaren Mediums von Befehlen und einer Reihe verschiedener Formen verteilt werden können und dass die vorliegende Erfindung gleichermaßen unabhängig vom jeweiligen Typ von Signalträgermedium anwendbar ist, das gerade zum Ausführen der Verteilung verwendet wird. Beispiele für rechnerlesbare Medien sind aufzeichnungsfähige Medien wie eine Diskette, ein Festplattenlaufwerk, RAM, CD-ROMS und Medien des Übertragungstyps wie digitale und analoge Kommunikationsverbindungen.
  • Die vorliegende Erfindung wurde zwecks Veranschaulichung und Erläuterung beschrieben und soll nicht erschöpfend sein oder die Erfindung auf die offenbarte Form begrenzen. Für die durchschnittliche Fachperson werden zahlreiche Modifikationen und Variationen offensichtlich sein. Die Ausgestaltung wurde gewählt und beschrieben, um die Grundsätze der Erfindung und deren praktische Anwendung am besten zu erläutern und um andere durchschnittliche Fachpersonen zu befähigen, die Erfindung im Hinblick auf verschiedene Ausgestaltungen mit verschiedenen Modifikationen zu verstehen, die für den vorgesehenen bestimmten Zweck geeignet sind.

Claims (12)

  1. Datenmanagementvorrichtung (112, 208, 2104, 2204, 2400, 2504, 2600) zum Replizieren von auf ein Primärspeichersystem (100108, 200206, 21002102, 22002202, 2404, 2504) geschriebenen Daten, wobei die Datenmanagementvorrichtung Folgendes umfasst: eine Direktzugriffsspeichereinheit (114, 210, 2604) zum Speichern eines Spiegels-in-der-Mitte (400, 800), der eine Kopie von Inhalt des Primärspeichergerätes zu einem festen Zeitpunkt enthält und wenigstens einen Schnappschuss (404, 910) speichert, der Änderungen enthält, die, wenn sie am Inhalt des Spiegels-in-der-Mitte vorgenommen wurden, in einer früheren Version des Inhalts des Primärspeichergeräts resultieren würden; und eine Steuerschaltung (112) zum Empfangen von Befehlen von einem Computersystem (100, 200), wobei die Steuerschaltung als Reaktion darauf, dass sie einen Schreibbefehl von dem genannten Computersystem (100, 200) erhält, die Direktzugriffsspeichereinheit aktualisiert, so dass sie Informationen in Verbindung mit dem Schreibbefehl beinhaltet, und wobei die Steuerschaltung als Reaktion auf einen eine logische Adresse (500, 704, 802, 1104, 1306) beinhaltenden Lesebefehl aus der Direktzugriffsspeichereinheit Daten abruft, die Inhalt der logischen Adresse zu einem vorbestimmten Zeitpunkt repräsentieren.
  2. Datenmanagementvorrichtung nach Anspruch 1, wobei der genannte vorbestimmte Zeitpunkt durch einen Zeitwert definiert wird, der in dem genannten Lesebefehl enthalten ist.
  3. Datenmanagementvorrichtung nach Anspruch 1, wobei die Steuerschaltung zukünftige Leseoperationen in Bezug auf den genannten vorbestimmten Zeitpunkt ausführt, der durch einen Zeitwert definiert wird, der in einem Mount-Befehl empfangen wurde.
  4. Datenmanagementvorrichtung nach einem der Ansprüche 1 bis 3, wobei die Direktzugriffsspeichereinheit ein Vorwärtsjournal (402, 700) speichert.
  5. Datenmanagementvorrichtung nach einem der Ansprüche 1 bis 4, wobei die Steuerschaltung ein Mapping-Objekt (502, 600) speichert, das logische Adressen auf physische Adressen (504, 708, 1108, 1310) auf dem Spiegel-in-der-Mitte oder auf dem wenigstens einen Schnappschuss abbildet.
  6. Datenmanagementvorrichtung nach einem der Ansprüche 1 bis 5, wobei die Direktzugriffsspeichereinheit Memory beinhaltet.
  7. Datenmanagementvorrichtung nach einem der Ansprüche 1 bis 6, wobei die Direktzugriffsspeichereinheit eine Platte beinhaltet.
  8. System mit einer Datenmanagementvorrichtung nach einem der Ansprüche 1 bis 7 und ein Computersystem zum Senden der genannten Lese- und der genannten Schreibbefehle.
  9. System nach Anspruch 8, bei dem die Schreibbefehle von Schreibbefehlen, die an ein Primärspeichergerät (108, 206, 2101, 2202, 2604) des Systems ausgegeben wurden, repliziert werden.
  10. System nach Anspruch 8 oder 9, bei dem die Schreibbefehle von dem Computersystem durch eine Repliziersteuerung (204) empfangen werden.
  11. System nach einem der Ansprüche 8 bis 10, wobei die Schreibbefehle durch das Computersystem repliziert werden.
  12. System nach einem der Ansprüche 8 bis 11, wobei die Steuerschaltung Befehle von dem Computersystem durch ein Speichernetzwerk (2402) empfängt.
DE60213867T 2001-12-28 2002-12-26 Vorrichtung zur verwaltung von datenreplikation Expired - Fee Related DE60213867T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US34305 2001-12-28
US10/034,305 US6839819B2 (en) 2001-12-28 2001-12-28 Data management appliance
PCT/US2002/041638 WO2003058449A2 (en) 2001-12-28 2002-12-26 Appliance for management of data replication

Publications (2)

Publication Number Publication Date
DE60213867D1 DE60213867D1 (de) 2006-09-21
DE60213867T2 true DE60213867T2 (de) 2006-12-07

Family

ID=21875579

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60213867T Expired - Fee Related DE60213867T2 (de) 2001-12-28 2002-12-26 Vorrichtung zur verwaltung von datenreplikation

Country Status (4)

Country Link
US (1) US6839819B2 (de)
EP (1) EP1461700B1 (de)
DE (1) DE60213867T2 (de)
WO (1) WO2003058449A2 (de)

Families Citing this family (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030046605A1 (en) * 2001-09-03 2003-03-06 Farstone Technology Inc. Data protection system and method regarding the same
US7036043B2 (en) 2001-12-28 2006-04-25 Storage Technology Corporation Data management with virtual recovery mapping and backward moves
US7143307B1 (en) * 2002-03-15 2006-11-28 Network Appliance, Inc. Remote disaster recovery and data migration using virtual appliance migration
US7028154B2 (en) * 2002-06-18 2006-04-11 Hewlett-Packard Development Company, L.P. Procedure to reduce copy time for data backup from short-term to long-term memory
JP2004046435A (ja) * 2002-07-10 2004-02-12 Hitachi Ltd バックアップ方法、その方法に用いた記憶制御装置
US7653667B2 (en) * 2002-09-09 2010-01-26 Sap Ag Methods and systems for data moving using locks
US7457933B2 (en) * 2002-09-09 2008-11-25 Sap Ag Methods and systems for archiving data
US7756813B2 (en) * 2002-09-09 2010-07-13 Sap Ag Electronic data structure for controlling access to data objects using locks
WO2004025479A2 (en) * 2002-09-09 2004-03-25 Sap Aktiengesellschaft Methods and systems for moving data objects using locks
US7693881B2 (en) * 2002-09-09 2010-04-06 Sap Ag Methods and systems for moving data using locks
KR20050070117A (ko) * 2002-11-07 2005-07-05 코닌클리케 필립스 일렉트로닉스 엔.브이. 메인 파일 시스템 영역과 가상 파일 시스템 영역을 갖는기록매체
US7007043B2 (en) * 2002-12-23 2006-02-28 Storage Technology Corporation Storage backup system that creates mountable representations of past contents of storage volumes
US7007044B1 (en) * 2002-12-26 2006-02-28 Storage Technology Corporation Storage backup system for backing up data written to a primary storage device to multiple virtual mirrors using a reconciliation process that reflects the changing state of the primary storage device over time
JP3974538B2 (ja) * 2003-02-20 2007-09-12 株式会社日立製作所 情報処理システム
JP4165747B2 (ja) * 2003-03-20 2008-10-15 株式会社日立製作所 記憶システム、制御装置及び制御装置のプログラム
US7000145B2 (en) * 2003-06-18 2006-02-14 International Business Machines Corporation Method, system, and program for reverse restore of an incremental virtual copy
US6983352B2 (en) * 2003-06-19 2006-01-03 International Business Machines Corporation System and method for point in time backups
US7111136B2 (en) * 2003-06-26 2006-09-19 Hitachi, Ltd. Method and apparatus for backup and recovery system using storage based journaling
US20050015416A1 (en) 2003-07-16 2005-01-20 Hitachi, Ltd. Method and apparatus for data recovery using storage based journaling
US20050022213A1 (en) 2003-07-25 2005-01-27 Hitachi, Ltd. Method and apparatus for synchronizing applications for data recovery using storage based journaling
US7398422B2 (en) * 2003-06-26 2008-07-08 Hitachi, Ltd. Method and apparatus for data recovery system using storage based journaling
JP4124348B2 (ja) * 2003-06-27 2008-07-23 株式会社日立製作所 記憶システム
US7296008B2 (en) * 2004-08-24 2007-11-13 Symantec Operating Corporation Generation and use of a time map for accessing a prior image of a storage device
WO2005031576A2 (en) * 2003-09-23 2005-04-07 Revivio, Inc. Systems and methods for time dependent data storage and recovery
US7620785B1 (en) * 2004-06-30 2009-11-17 Symantec Operating Corporation Using roll-forward and roll-backward logs to restore a data volume
US7831782B1 (en) * 2004-06-30 2010-11-09 Symantec Operating Corporation Roll-back log to provide data consistency
US7739464B1 (en) 2004-06-30 2010-06-15 Symantec Operating Corporation Consistent backups of data using a roll-back log
US7243201B2 (en) * 2004-07-22 2007-07-10 International Business Machines Corporation Application-based commit for local storage subsystems and remote storage subsystems
US7617259B1 (en) * 2004-12-31 2009-11-10 Symantec Operating Corporation System and method for managing redundant storage consistency at a file system level
US7657579B2 (en) * 2005-04-14 2010-02-02 Emc Corporation Traversing data in a repeatable manner
US20080065663A1 (en) * 2005-04-14 2008-03-13 Emc Corporation Reestablishing process context
US20080065637A1 (en) * 2005-04-14 2008-03-13 Emc Corporation Locating last processed data
US7404051B2 (en) * 2005-04-18 2008-07-22 Hitachi, Ltd. Method for replicating snapshot volumes between storage systems
US8615482B1 (en) * 2005-06-20 2013-12-24 Symantec Operating Corporation Method and apparatus for improving the utilization of snapshots of server data storage volumes
JP4704893B2 (ja) * 2005-11-15 2011-06-22 株式会社日立製作所 計算機システム及び管理計算機とストレージシステム並びにバックアップ管理方法
US20070237037A1 (en) * 2006-04-05 2007-10-11 Sandisk Il Ltd. System and method of digital content manipulation
US7617373B2 (en) * 2006-05-23 2009-11-10 International Business Machines Corporation Apparatus, system, and method for presenting a storage volume as a virtual volume
US7685377B1 (en) 2006-07-12 2010-03-23 Storage Technology Corporation Piecewise logical data management
JP4859605B2 (ja) * 2006-09-20 2012-01-25 株式会社日立製作所 情報処理システム
US8151082B2 (en) * 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
WO2008070191A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a reconfigurable baseboard management controller
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US8161353B2 (en) * 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
US8706968B2 (en) 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
US9116823B2 (en) 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
US8443134B2 (en) 2006-12-06 2013-05-14 Fusion-Io, Inc. Apparatus, system, and method for graceful cache device degradation
US7840537B2 (en) * 2006-12-22 2010-11-23 Commvault Systems, Inc. System and method for storing redundant information
US7685378B2 (en) * 2007-02-15 2010-03-23 Hitachi, Ltd. Methods and apparatus for adjusting a journal area for continuous data protection
US8166477B1 (en) * 2007-03-23 2012-04-24 Parallels IP Holdings GmbH System and method for restoration of an execution environment from hibernation into a virtual or physical machine
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US8108356B2 (en) * 2007-12-24 2012-01-31 Korea Advanced Institute Of Science And Technology Method for recovering data in a storage system
AU2009296695B2 (en) 2008-09-26 2013-08-01 Commvault Systems, Inc. Systems and methods for managing single instancing data
US9015181B2 (en) 2008-09-26 2015-04-21 Commvault Systems, Inc. Systems and methods for managing single instancing data
US8209290B1 (en) 2009-03-11 2012-06-26 Symantec Corporation Generic granular restore of application data from a volume image backup
US8401996B2 (en) 2009-03-30 2013-03-19 Commvault Systems, Inc. Storing a variable number of instances of data objects
JP5156682B2 (ja) * 2009-04-23 2013-03-06 株式会社日立製作所 ストレージシステムにおけるバックアップ方法
US8578120B2 (en) 2009-05-22 2013-11-05 Commvault Systems, Inc. Block-level single instancing
US8510507B2 (en) * 2010-01-21 2013-08-13 Xyratex Technology Limited Data storage mirroring using virtual mirror
US8244685B2 (en) * 2010-02-24 2012-08-14 Autonomy, Inc. Data restoration utilizing forward and backward deltas
US8271447B1 (en) 2010-06-18 2012-09-18 Emc International Company Mirroring metadata in a continuous data protection environment
US8335771B1 (en) * 2010-09-29 2012-12-18 Emc Corporation Storage array snapshots for logged access replication in a continuous data protection system
US8935492B2 (en) 2010-09-30 2015-01-13 Commvault Systems, Inc. Archiving data objects using secondary copies
US8966184B2 (en) 2011-01-31 2015-02-24 Intelligent Intellectual Property Holdings 2, LLC. Apparatus, system, and method for managing eviction of data
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
US10229139B2 (en) 2011-08-02 2019-03-12 Cavium, Llc Incremental update heuristics
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9020890B2 (en) 2012-03-30 2015-04-28 Commvault Systems, Inc. Smart archiving and data previewing for mobile devices
US9130971B2 (en) 2012-05-15 2015-09-08 Splunk, Inc. Site-based search affinity
US10387448B2 (en) 2012-05-15 2019-08-20 Splunk Inc. Replication of summary data in a clustered computing environment
US8788459B2 (en) 2012-05-15 2014-07-22 Splunk Inc. Clustering for high availability and disaster recovery
US11003687B2 (en) 2012-05-15 2021-05-11 Splunk, Inc. Executing data searches using generation identifiers
JP5991211B2 (ja) * 2012-05-25 2016-09-14 富士通株式会社 シミュレーション方法、およびシミュレーションプログラム
US9633022B2 (en) 2012-12-28 2017-04-25 Commvault Systems, Inc. Backup and restoration for a deduplicated file system
US10083200B2 (en) 2013-03-14 2018-09-25 Cavium, Inc. Batch incremental update
US9595003B1 (en) 2013-03-15 2017-03-14 Cavium, Inc. Compiler with mask nodes
US9430511B2 (en) * 2013-03-15 2016-08-30 Cavium, Inc. Merging independent writes, separating dependent and independent writes, and error roll back
US9195939B1 (en) 2013-03-15 2015-11-24 Cavium, Inc. Scope in decision trees
US10324897B2 (en) 2014-01-27 2019-06-18 Commvault Systems, Inc. Techniques for serving archived electronic mail
US10324914B2 (en) 2015-05-20 2019-06-18 Commvalut Systems, Inc. Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files
US11068455B2 (en) * 2019-04-26 2021-07-20 EMC IP Holding Company LLC Mapper tree with super leaf nodes
US11656955B1 (en) 2022-03-23 2023-05-23 Bank Of America Corporation Database table valuation
US11797393B2 (en) 2022-03-23 2023-10-24 Bank Of America Corporation Table prioritization for data copy in a multi-environment setup

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8915875D0 (en) 1989-07-11 1989-08-31 Intelligence Quotient United K A method of operating a data processing system
US6604118B2 (en) 1998-07-31 2003-08-05 Network Appliance, Inc. File system image transfer
JPH086854A (ja) * 1993-12-23 1996-01-12 Unisys Corp アウトボードファイルキャッシュ外部処理コンプレックス
US5809527A (en) * 1993-12-23 1998-09-15 Unisys Corporation Outboard file cache system
US5586264A (en) * 1994-09-08 1996-12-17 Ibm Corporation Video optimized media streamer with cache management
FR2746526B1 (fr) 1996-03-25 1998-06-05 Digital Equipment Corp Procede pour conserver une base de donnees a organisation temporelle et spatiale
CA2221216A1 (en) 1996-11-15 1998-05-15 Mark Squibb System and apparatus for merging a write event journal and an original storage to produce an updated storage using an event map

Also Published As

Publication number Publication date
WO2003058449A3 (en) 2003-11-27
EP1461700A2 (de) 2004-09-29
US20030135704A1 (en) 2003-07-17
WO2003058449A2 (en) 2003-07-17
DE60213867D1 (de) 2006-09-21
US6839819B2 (en) 2005-01-04
EP1461700B1 (de) 2006-08-09

Similar Documents

Publication Publication Date Title
DE60213867T2 (de) Vorrichtung zur verwaltung von datenreplikation
DE112007003693B4 (de) Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung
DE4220198C2 (de) Transaktionsverarbeitungsverfahren für einen digitalen Computer und Transaktionsverarbeitungssystem
DE60025749T2 (de) Dateisystemabbildübertragung zwischen ungleichen dateisystemen
DE69831944T2 (de) Vorrichtung und verfahren zur sicherung eines plattenspeichersystem
DE69920713T2 (de) Datei-system bild-übertragung
DE602004002216T2 (de) Verfahren, system und programm für eine inkrementelle virtuelle kopie
DE602005001041T2 (de) Speicherauszugssystem
DE102013204972B4 (de) Hybride Sicherung und Wiederherstellung eines sehr grossen Dateisystems unter Verwendung von Metadaten-Abbildsicherung und herkömmlicher Sicherung
DE60318687T2 (de) Herstellen einer gespiegelten kopie unter verwendung inkrementeller divergenz
DE602004008808T2 (de) Verfahren und vorrichtung zur durchführung von operationen an gewählten daten in einem speicherbereich
DE102013215535B4 (de) Sicherung oder wiederherstellung von daten mit hilfe eines hauptspeichers und nichtflüchtiger speichermedien
DE69636330T2 (de) Verfahren für On-line- und Echzeit-Datenmigration
DE69629444T2 (de) Datenverarbeitungsgerät und Verfahren zur Ersetzung von ausgefallenen Speichereinheiten
DE60304677T2 (de) Verfahren und vorrichtung zur bereitstellung einer inkrementellen wiederherstellung eines speichermediums bei datenverlust
DE112011100112B4 (de) Pufferspeicher-platte in blitzkopie-kaskade
DE112020000749T5 (de) Indexerstellung für sich entwickelnde umfangreiche Datensätze in Hybriden Transaktions- und Analysenverarbeitungssystemen mit mehreren Mastern
DE112011100534B4 (de) Mehrstufiger Sicherungsprozess
DE19982999B4 (de) Computersystem und Verfahren zum Transferieren von Daten
DE60018872T2 (de) System und Methode für das Löschen von Datenbank-Aktualisierungsbilddateien nach Abschluss der dazugehörigen Transaktionen
DE69833815T2 (de) Verbesserter Disk-Log mit verteiltem Schreibsystem
DE112008002947T5 (de) System zum automatischen Abschatten verschlüsselter Daten und von Dateiverzeichnisstrukturen
DE602005000819T2 (de) Aufrechterhaltung der konsistenz einer fernkopie unter verwendung von virtualisierung
DE112010003577T5 (de) Datenverwaltung in Halbleiterspeicher-Einheiten und mehrstufigen Speichersystemen
DE112017000167B4 (de) Verteilte Datendeduplizierung in einem Prozessorraster

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee