-
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
-
-
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
-
-
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 21–23 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.