-
HINTERGRUND DER ERFINDUNG
-
1. Erfindungsgebiet
-
Die
vorliegende Erfindung betrifft die Sicherung von Computerdaten und
insbesondere ein System und Verfahren für die Backup-Sicherung der
in einem Massenspeichersystem oder einer Mehrzahl von Massenspeichersystemen
eines oder mehrerer Computer befindlichen Daten auf ein einziges
Backup-System.
-
2. Derzeitiger
Stand der Technik
-
Es
besteht kaum Zweifel daran, dass Computer die Art und Weise, wie
Unternehmen Informationen sammeln, verwalten und nutzen radikal
verändert
haben. Computer sind zu einem integralen Bestandteil der meisten
geschäftlichen
Transaktionen geworden, in einigen Fällen in einem Ausmaß, dass bei
einem Ausfall des Computers der Geschäftsverkehr nicht mehr möglich ist.
Banken, Versicherungsgesellschaften, Maklerfirmen, Finanzdienstleister und
eine Vielzahl anderer Unternehmen verlassen sich auf Computernetze,
um Informationen, die einer ständigen Änderung
unterliegen, zu speichern, zu manipulieren oder anzuzeigen. Der
Erfolg oder Misserfolg einer wichtigen Transaktion kann davon abhängig sein,
ob sowohl genaue als auch aktuelle Informationen zur Verfügung stehen.
In bestimmten Fällen
hängt die
Glaubwürdigkeit
eines Dienstleisters, oder gar seine Existenz, von der Verlässlichkeit der
in einem Computernetz aufbewahrten Informationen ab. Dementsprechend
sind sich Unternehmen in der ganzen Welt des kommerziellen Wertes
ihrer Daten bewusst und suchen nach verlässlichen, kostengünstigen
Wegen, die in ihren Computernetzen gespeicherten Informationen zu schützen. In
den Vereinigten Staaten von Amerika verlangen außerdem die Federal Banking
Regulations, dass Banken Schritte zur Sicherung kritischer Daten
unternehmen.
-
Wichtige
Daten können
durch Naturkatastrophen, terroristische Handlungen, oder durch profanere
Ereignisse wie Ausfall der Computerhardware und/oder -software gefährdet sein.
Zwar unterscheiden sich diese Gefahren in vielerlei Hinsicht, doch sind
sie tendenziell in ihrer geographischen Ausdehnung begrenzt. Daher
beinhalten viele Vorgehensweisen zur Sicherung von Daten die Erstellung
einer Kopie der Daten und das Unterbringen dieser Kopie in sicherer
geographischer Distanz von der ursprünglichen Datenquelle. Zwar
mag die geographische Trennung einen wichtigen Teil der Datensicherung darstellen,
doch reicht sie alleine für
einen vollständigen
Schutz der Daten nicht aus.
-
Der
Vorgang der Erstellung einer Kopie der Daten wird häufig als
Backup der Daten oder als Erstellen einer Backup-Kopie der Daten bezeichnet. Bei der
Erstellung einer Backup-Kopie von in einem Computer oder einem Computer-Netz
gespeicherten Daten sind mehrere wichtige Faktoren zu berücksichtigen.
Zunächst
muss eine Backup-Kopie von Daten logisch konsistent sein. Eine logisch
konsistente Backup-Kopie
enthält
keine logischen Inkonsistenzen wie z. B. korrumpierte oder nicht
richtig beendete Dateien. Zweitens muss eine Backup-Kopie von Daten
ausreichend aktuell sein, um Veralterung von Daten zu vermeiden.
Die Zeit zwischen den Backups, die weitestgehend darüber entscheidet,
ob eine Backup-Kopie veraltet ist, muss ausreichend kurz sein, damit
die Daten des Backups noch zu gebrauchen sind, falls sie benötigt werden.
Für bestimmte Anwendungen,
wie Netze, in denen finanzielle Transaktionen gespeichert sind,
können
Daten, die eine Woche alt sind, nutzlos und viel häufigere
Backups erforderlich sein. Wie häufig
Backup-Kopien erstellt werden können,
ist von vielen Faktoren abhängig
wie der Frage, ob das Backup während
der normalen Geschäftsabläufe durchgeführt werden
kann, von der Zeit, die für
die Erstellung einer Backup-Kopie benötigt wird, und so weiter.
-
Um
eine Backup-Kopie von Daten zu erstellen, wurden bisher unterschiedliche
Herangehensweisen gewählt.
Jede dieser Vorgehensweisen hat bestimmte Vor- und Nachteile. Die
vielleicht einfachste Vorgehensweise zur Erstellung einer Backup-Kopie
wichtiger Daten ist das Kopieren der wichtigen Daten von einem Massenspeichersystem,
wie dem von einem Computernetz genutzten magnetischen Speichersystem,
auf eine zweite Massenspeichereinrichtung, die als Archiv dient.
Die zweite, als Archiv dienende Massenspeichereinrichtung ist häufig eine
Speichereinrichtung, die für
die Speicherung großer
Datenmengen auf Kosten eines unmittelbaren Zugriffs auf die Daten
konzipiert ist. Eine häufig
angewandte Art der Archivspeicherung ist die Speicherung auf Magnetband.
Bei diesen Backup-Systemen werden Daten vom Massenspeichersystem
auf ein oder mehr Magnetbänder
kopiert. Die Magnetbänder werden
dann entweder lokal oder an einem entfernten Ort gelagert für den Fall,
dass mit dem Haupt-Massenspeichersystem Probleme entstehen. Wenn
sich Probleme mit dem Haupt-Massenspeichersystem ergeben, dann können die
Daten von dem Magnetband entweder auf dasselbe oder ein anderes
Massenspeichersystem kopiert werden.
-
Zwar
bietet die Verwendung von Magnetband oder anderer archivierender
Speichermittel als Maßnahme
zum Schutz vor Datenverlust den Vorteil, relativ einfach und billig
zu sein, doch unterliegt sie auch schwerwiegenden Einschränkungen.
Eine solche Einschränkung
hängt mit
der Art zusammen, wie solche Backups erstellt werden. Wenn Daten
von einem Massenspeichersystem auf ein Backup-Band gespeichert werden,
so kopiert das Kopierverfahren die Daten im allgemeinen Datei für Datei.
Anders ausgedrückt,
eine Datei wird von dem Massenspeichersystem auf das Band kopiert.
Wenn diese Kopie vollständig
ist, so wird eine andere Datei von dem Massenspeichersystem auf
das Band kopiert. Der Vorgang wird solange wiederholt, bis alle
Dateien kopiert sind.
-
Um
die Integrität
der Daten, die auf das Band gespeichert werden, sicherzustellen,
muss darauf geachtet werden, dass die Datei sich nicht verändert, während das
Backup durchgeführt
wird. Ein einfaches Beispiel soll der Erläuterung dienen: Angenommen
in einer Datei seien die Kontostände
aller Kunden einer Bank gespeichert. Falls es zugelassen wird, dass
die Kontostände
sich während
des Zeitraums, in dem das Backup der Datei erstellt wird, ändern, so
besteht die Möglichkeit,
dass die Datei in einem logisch inkonsistenten Zustand zurückgelassen wird.
Wird beispielsweise von einem Kontostand ein Backup erstellt und
dieser Kontostand unmittelbar nach der Erstellung des Backups mit
$ 100,00 belastet und werden dieselben $ 100,00 einem zweiten Konto
gutgeschrieben, so kann sich eine Situation ergeben, in der dieselben
$ 100,00 zwei verschiedenen Konten gutschrieben wurden.
-
Um
eine solche Situation zu verhindern, dürfen sich die Daten einer Datei
nicht verändern,
während
die Backup-Kopie erstellt wird. Ein einfacher Weg, die Änderung
von Daten zu verhindern, ist die Sperrung des Zugangs zu der Datei
während
des Backup-Vorgangs. In einem solchen System wird der Zugriff auf
die Dateien gesperrt, während
die Datei gesichert wird. Diese Vorgehensweise wird von einer Vielzahl
von Netzen angewendet, bei denen der Zugang zum Massenspeichersystem
nach Geschäftsschluss
gesperrt werden kann. Wenn beispielsweise ein Unternehmen am Ende
jedes Tages schließt
und sein Computer-Netz während
der Nacht im Wesentlichen ungenutzt lässt, kann der Zugang zum Netz
des Nachts gesperrt und diese Zeit zur Durchführung eines Backup-Vorgangs
genutzt werden. Hierdurch ist die Backup-Erstellung jedoch auf ein
einmal tägliches
Backup außerhalb
der Ge schäftszeiten
beschränkt.
Für einige
Geschäftsvorgänge kann
dies jedoch nicht ausreichend sein.
-
Eine
zunehmende Zahl von Computernetzen wird von Computerunternehmen
genutzt, die weltweit operieren, daher werden diese Netze möglicherweise
24 Stunden am Tag an sieben Tagen der Woche benötigt. Ein solches Netz jeden
Tag für
einige Stunden zu schließen,
um ein Band-Backup zu erstellen, kann das Unternehmen in signifikanter
Weise beeinträchtigen.
Für solche
Unternehmen ist die Erstellung eines Backup-Bandes in traditioneller
Art und Weise unpraktisch und nicht durchführbar.
-
Als
Versuch, den Bedürfnissen
solcher Unternehmen gerecht zu werden oder die Häufigkeit der Backups zu steigern,
kommt manchmal eine Vorgehensweise des Kopierens von in Computernetzen gespeicherten
Daten zur Anwendung, die als "Data Shadowing" bekannt ist. Ein
Daten-Shadowing-Programm durchläuft
zyklisch alle Dateien in einem Computernetz, oder einen Satz ausgewählter kritischer
Dateien, und prüft
die Datums- und Uhrzeitzuschreibung jeder Datei. Wenn seit der letzten
Prüfung des
Status der Datei durch das Daten-Shadowing-Programm
Daten in diese Datei geschrieben wurden, so wird eine Kopie der
Datei an das Backup-System geschickt. Die Daten werden von dem Backup-System
empfangen und auf Bändern
oder anderen Medien gespeichert. Die Schattendaten sind gewöhnlich aktueller
als die aus einem Band-Backup wiedergewonnenen
Daten, da wenigstens ein Teil der Information während der Geschäftsstunden
gespeichert wird. Trotzdem können
Schattendaten veraltet und falsch sein. So ist es beispielsweise
nicht ungewöhnlich,
dass ein Shadowing-Programm für das
Shadowing von mehreren tausend Dateien zuständig ist. Ebenfalls nicht ungewöhnlich ist,
dass Aktivität
in Dateien ausbruchsartig stattfindet, wobei für kurze Zeit in einer oder
in zwei Dateien eine hohe Aktivität stattfindet, gefolgt von
einem Ausbruch an Aktivität
in mehreren anderen Dateien. Somit kann es sein, dass ein Daten-Shadowing-Programm
einen Großteil
seiner Zeit damit verbringt, eine Vielzahl inaktiver Dateien auf
ihren Zustand hin zu prüfen,
während
in mehreren anderen Dateien rapide Veränderungen stattfinden. Wenn
das System abstürzt
oder aus anderen Gründen
nicht zur Verfügung
steht, bevor das Daten-Shadowing-Programm dazu gekommen ist, die
kritischen Dateien zu prüfen,
können
Daten verloren gehen.
-
Ein
anderes Problem bei Daten-Shadowing-Programmen ist die Tatsache,
dass sie gewöhnlich
bei Daten, die in sehr großen
Dateien gespeichert sind, nicht funktionieren. Man denke an ein System
mit einer einzigen, sehr großen
Datenbank und mehreren, viel kleineren Dateien. Nehmen wir an, dass
die primäre
Information eines Unternehmens in der großen Datenbank gespeichert ist,
so ist vernünftiger
Weise anzunehmen, dass das Lesen dieser sehr großen Datenbank und das Schreiben von
Daten in diese einen sehr großen
Teil des Geschäftstages
einnimmt. Und angenommen, dass die Erstellung einer Backup-Kopie
dieser sehr großen Datenbank
möglich
wäre, so
könnte
die Zeit, die dafür
benötigt
wird, eine Backup-Kopie einer solch großen Datenbank zu erstellen,
die Anwendung des Daten-Shadowing unpraktikabel machen. Das Daten-Shadowing-Programm
kann versuchen, eine Kopie der großen Datenbank nach der anderen
zu erstellen. Das Erstellen einer solch großen Anzahl von Kopien bedeutet
nicht nur einen enormen Zeitaufwand, sondern erfordert auch einen
enormen Backupspeicherplatz.
-
Ein
anderes Problem von Systemen des Daten-Shadowing-Typs besteht darin,
dass offene Dateien in der Regel nicht kopiert werden. Wie weiter oben
beschrieben, muss eine Datei während
der Erstellung einer Backup-Kopie eingefroren werden, um zu verhindern,
dass die Datei während
des Backup-Vorganges
geändert
wird. Daher versuchen Daten-Shadowing-Systeme gewöhnlich nicht, offene Dateien
zu kopieren. Wer den in einer großen Datenbank kontinuierlich Änderungen
vorgenommen, so ist diese ständig
offen, und ein Daten-Shadowing-System
wird diese Datenbank aus dem einfachen Grunde, dass die Datei geöffnet ist,
möglicherweise
nicht kopieren. Zumindest aus diesen Gründen werden Daten-Shadowing-Systeme
in der Regel nicht für sehr
große
Dateien empfohlen.
-
Eine
andere Vorgehensweise, die angewandt wurde mit dem Ziel, einige
dieser Beschränkungen
zu überwinden,
besteht in einem Verfahren, bei dem ein zeitlicher Ablauf von Daten
erfasst und gesichert wird. Beispielsweise ist die Plattenspiegelung
["disk mirroring"] oder das "Duplexing" ein Bestandteil
vieler Systeme. Bei der Plattenspiegelung oder dem Duplexing werden
die in einem primären Massenspeichersystem
vorgenommenen Änderungen
an ein anderes Backup- oder sekundäres Massenspeichersystem geschickt.
Anders ausgedrückt, wird
ein Datenblock in das primäre
Massenspeichersystem geschrieben, so wird derselbe Datenblock in ein
separates Backup-Massenspeichersystem geschrieben. Dadurch dass
jede Schreiboperation in ein zweites Massenspeichersystem kopiert
wird, können
zwei Massenspeichersysteme synchronisiert werden, so dass sie zum
gleichen Zeitpunkt praktisch identisch sind. Ein solches System
bietet Schutz vor bestimmten Fehlerarten, jedoch bleibt es empfänglich für andere
Arten von Fehlern.
-
Die
hauptsächliche
Fehlerart, welche durch die Plattenspiegelung überwunden wird, sind Hardware-Fehler.
Werden beispielsweise Daten gleichzeitig auf zwei Platten geschrieben,
dann stehen, falls die eine Platte ausfällt, die Daten immer noch auf
der anderen Platte zur Verfügung.
Sind die beiden Platten mit zwei separaten Plattenkontrollern verbunden, so
bleiben bei einem Ausfall eines einzelnen Plattenkontrollers oder
einer einzigen Platte die Daten immer noch über die andere Plattenkontroller-Platte-Anordnung
zu gänglich.
Ein solches Konzept kann ausgeweitet werden, so dass es ganze Systeme
umfasst, in denen ein sekundärer
Netz-Server einen primären
Server spiegelt, wobei im Falle eines Fehlers im primären Netz-Server
der sekundäre
Netz-Server übernehmen
und die Operation fortführen
kann. Die Produkte der Novell®SFT-Linie verwenden Varianten dieser
Technologie.
-
Zwar
bieten derartige Systeme einen sehr verlässlichen Schutz gegen Hardware-Fehler
und ermöglichen
außerdem
nahezu sofortigen Zugriff auf Backup-Kopien kritischer Daten, doch
schützen
sie nicht gegen Fehler der Software. Mit der zunehmenden Komplexität der Software
steigt auch die Wahrscheinlichkeit von Software-Fehlern. In den
heute existierenden, komplexen Computer-Umgebungen, in denen multiple
Computersysteme, welche multiple Betriebssysteme betreiben, miteinander
in einer Netzumgebung verbunden sind, steigt die Wahrscheinlichkeit
von Software-Fehlern, die gelegentlich Systemabstürze verursachen.
Tritt ein solcher Software-Fehlar auf, so kann es sein, dass sowohl
das primäre
Massenspeichersystem als auch das gespiegelte Massenspeichersystem
in einem logisch inkonsistenten Zustand zurückgelassen werden. Man nehme
beispielsweise an, dass ein Software-Fehler während eines Updates der Datenbank
aufgetreten ist. In einer solchen Situation hätten sowohl das primäre Massenspeichersystem
als auch das gespiegelte Massenspeichersystem den gleichen Schreibbefehl erhalten.
Wenn der Software-Fehler während
der Ausgabe des Schreibbefehls auftrat, kann es sein, dass beide
Massenspeichersysteme in einem identischen, logisch inkonsistenten
Zustand zurückgelassen
werden. Falls es sich bei dem gespiegelten Massenspeichersystem
um die einzige Form des Backups in dem Netz handelt, könnten kritische
Daten für immer
verloren sein.
-
Falls
das Backup an einem entfernten Ort durchgeführt werden soll, nehmen die
mit der oben beschriebenen Technologie verbundenen Probleme zu.
Beispielsweise kann, falls eine Platte an einem entfernten Ort gespiegelt
werden soll, die Menge der an den entfernten Ort übertragenen
Daten erheblich sein. Deshalb muss zwischen dem primären Ort
und dem sekundären
oder Backup-Ort eine Kommunikationsverbindung hoher Geschwindigkeit
bestehen. Hochgeschwindigkeitskommunikationsverbindungen sind in
der Regel teuer. Falls eine zeitliche Abfolge von Daten über eine
Kommunikationsverbindung an ein Backupsystem an einem entfernten
Ort geschickt werden soll, dann wird die Verlässlichkeit der Kommunikationsverbindung
darüber
hinaus zu einem bedeutenden Faktor. Sollte die Kommunikationsverbindung
aus irgendeinem Grunde zeitweilig unterbrochen werden, so würde die
Synchronisation zwischen dem primären Massenspeichersystem und dem
sekundären
oder Backup-Massenspeichersystem verloren gehen. Es müssen dann
Schritte unternommen werden, um die beiden Massenspeichereinrichtungen
miteinander in Einklang zu bringen, sobald die Kommunikationsverbindung
wiederhergestellt ist. Somit ist die Spiegelung eines primären Massenspeichersystems
an einem entfernten Ort normalerweise schwierig und sehr teuer.
-
Die
Probleme beim Backup eines einzigen Systems an einem entfernten
Ort werden noch komplizierter, wenn ein einziger entfernter Ort
für mehrere primäre Systeme
zuständig
ist. Die Anwendung eines File-by-File-Backup-Verfahrens benötigt erhebliche
Zeit, wenn die Massenspeichereinrichtungen des primären Systems
relativ groß sind.
In einer solchen Situation reicht eine einzige Nacht möglicherweise nicht
aus, um alle primären
Orte an einem einzigen entfernten Ort zu sichern. Somit ist in einigen
Situationen das File-by-File-Transferverfahren
nicht anwendbar. Ähnliche
Probleme bestehen bei der Remote-Disk-Spiegelungstechnologie. Da
ein Remote-Disk-Spiegel normalerweise eine dedizierte Kommunikationsverbindung
erfordert, muss das Backup-System ausreichend schnell sein, um die
Kommunikation einer Mehrzahl dedizierter Kommunikationsleitungen
zu handhaben. Die Menge der Daten, die von dem Backup-System empfangen
und gespeichert werden müssen,
können
die Fähigkeiten
des Backup-Systems
schnell überfordern.
-
Es
wäre daher
ein Fortschritt auf diesem Gebiet der Technik wenn ein Backup-System
zur Verfügung
stünde,
mit dem die Erstellung eines logisch konsistenten Backups sichergestellt
wäre. Es
wäre außerdem ein
Fortschritt auf diesem Gebiet der Technik, wenn ein Backup-System
zur Verfügung
stünde, mit
dem die Backup-Sicherung von Daten ohne Beendigung des Anwenderzugriffs
zu dem Massenspeichersystem möglich
wäre. Des
Weiteren wäre
es sehr wünschenswert, über ein
Backup-System zu verfügen,
das in der Lage ist, ein Backup offener Computerdateien durchzuführen. Es
wäre außerdem höchst wünschenswert, über ein
Backup-System zu verfügen,
dass in der Lage ist, ein Backup von Dateien durchzuführen, während die
Dateien geändert werden,
um die für
die Erstellung einer Backup-Kopie erforderliche Zeit zu verringern.
Es wäre
sehr wünschenswert,
wenn ein einziges Backup-System zur Verfügung stünde, mit dem eine Mehrzahl
von primären
Systemen bedient werden kann. Und schließlich wäre es ebenfalls ein Fortschritt
auf diesem Gebiet der Technik, wenn ein Backup-System zur Verfügung stünde, mit
dem diese Aufgaben entweder lokal oder über die Entfernung unter Anwendung
einer Kommunikationsverbindung niedriger Bandbreite erfüllt werden
könnten.
-
WO
96/12232 beschreibt ein Verfahren zur Bereitstellung einer statischen
Momentaufnahme (Schnappschuss), oder eines Abbildes (Image), von Daten,
die in einem Massenspeichersystem gespeichert sind. Das System speichert
Datenblöcke
in einer Mehrzahl von Speicherstellen und enthält einen Aufbewahrungsspeicher,
der während
eines Backup-Vorganges eine statische Momentaufnahme von Daten speichern
kann. Die statische Momentaufnahme repräsentiert die ganze virtuelle
Massenspeichereinrichtung zu einem Zeitpunkt, und die ganze Massenspeichereinrichtung
wird von dem primären
System in das Backup-System während
eines zweiten Zeitintervalls, nach dem besagten Zeitpunkt, kopiert, so
dass eine Backup-Sicherung
sämtlicher
Speicherstellen erstellt wird.
-
"Storage Management
Mechanism for Managing Snapshot Pages", IBM Technical Disclosure Bulletin,
Band 35, Nr. 4B, September 1992, Seiten 26–29 (XP-000313841) beschreibt
eine Speicherverwaltungsmethode zur Bewahrung von Momentaufnahmen- oder Schnappschussabbildern
von Daten, so dass das Schnappschussabbild in Backup-Medien gesichert
werden kann, während
es gleichzeitig den Benutzern erlaubt ist, das Live-Datenabbild zu ändern. Das
Verfahren kopiert nur die Daten, die gerade geändert werden, um den zur Aufbewahrung
des Schnappschussabbildes erforderlichen Zwischenspeicher zu reduzieren.
Das Verfahren verwendet eine Bit-Map, um Änderungen in Seiten aufzuspüren (minimale
Mengen an virtuellem Speicher), die auftreten, während ein Schnappschuss gemacht
wird.
-
Die
oben erwähnten
Probleme des früheren Standes
der Technik werden mit der vorliegenden Erfindung erfolgreich überwunden;
die Erfindung betrifft ein Verfahren für die Backup-Sicherung einer
primären
Massenspeichereinrichtung in einer Backup-Speichereinrichtung.
-
Gemäß einem
ersten Aspekt der Erfindung wird ein Verfahren bereitgestellt zur
Backup-Sicherung von Datenblöcken,
die während
eines ersten Zeitintervalls verändert
werden, welches sich von einem ersten Zeitpunkt bis zu einem zweiten
Zeitpunkt erstreckt, während
die Datenmenge verringert wird, die an das Backup-System geschickt
werden muss, wobei das Verfahren in einem Computersystem abläuft, das
ein Primärsystem
umfasst, welches ein Massenspeichersystem, das Datenblöcke in einer Mehrzahl
von Speicherstellen abspeichert, welche jeweils eine eindeutige
Adresse haben, und ein Aufbewahrungsspeichermittel zur Bereitstellung
einer Momentaufnahmenspeicherstelle (Schnappschussspeicherstelle)
aufweist, und wobei das Computersystem außerdem ein Backup-System mit einer Backup-Speicherstelle
umfasst, wobei das Verfahren die folgenden Schritte umfasst: während eines
ersten Zeitintervalls, das sich von einem ersten Zeitpunkt bis zu
einem zweiten Zeitpunkt erstreckt, werden ausschließlich die
Speicherstellen des Massenspeichersystems identifiziert, die sich
aufgrund der Abspeicherung neuer Daten in diesen Speicherstellen
während
des ersten Zeitintervalls verändert
haben; während
eines zweiten Zeitintervalls, das sich von dem zweiten Zeitpunkt
bis zu einem dritten Zeitpunkt erstreckt, wenn ein Datenblock verändert werden
soll, der zu dem zweiten Zeitpunkt in einer beliebigen identifizierten
Speicherstelle gespeichert wurde, wird im Aufbewahrungsspeichermittel
eine Momentaufnahme (Schnappschuss) des unveränderten Datenblocks aufbewahrt,
bevor dieser Datenblock verändert
wird, so dass die im Aufbewahrungsspeichermittel gespeicherten unveränderten
Datenblöcke
abgerufen werden können,
obwohl nach dem zweiten Zeitpunkt neue Daten in das Massenspeichersystem
geschrieben werden; während
des zweiten Zeitintervalls werden die im Aufbewahrungsspeichermittel gespeicherten
unveränderten
Datenblöcke
abgerufen und die abgerufenen Datenblöcke werden in die Backup-Speicherstelle
des Backup-Systems transferiert; die transferierten Datenblöcke werden
vom Backup-System
in einem temporären
Speichermittel gespeichert bis alle zu transferierenden Datenblöcke empfangen
wurden; und nachdem alle zu transferierenden Datenblöcke empfangen
wurden, führt
das Backup-System die transferierten Datenblöcke einem Backup-Speichermittel
zu, welches alle vor dem ersten Zeitpunkt vorgenommenen Veränderungen einschließt, um das
Backup-Speichermittel auf den Stand des zweiten Zeitpunkts zu bringen.
-
Ein
weiterer Aspekt der Erfindung besteht in der Bereitstellung eines
Computerprogrammcodes zur Anwendung in einem Computersystem, umfassend
ein Massenspeichermittel, welches eine Mehrzahl von Datenblöcken in
einer Mehrzahl von Speicherstellen speichert, die jeweils eine eindeutige Adresse
haben, und ein Backup-System mit einem Backup-Speichermittel, wobei
der Computerprogrammcode vom Computer ausführbare Befehle aufweist, umfassend:
ein Mittel, durch das identifiziert wird, in welchen der Speicherstellen
neue Datenblöcke
während
eines Zeitintervalls gespeichert wurden, das sich von einem ersten
Zeitpunkt bis zu einem zweiten Zeitpunkt erstreckt; ein Mittel,
durch das zu besagtem zweiten Zeitpunkt eine statische Momentaufnahme
der Speicherstellen, in denen neue Datenblöcke zwischen dem ersten Zeitpunkt
und dem zweiten Zeitpunkt gespeichert wurden, aufbewahrt wird, wobei
die statische Momentaufnahme mindestens einen unveränderten
Datenblock einschließt,
der nach dem zweiten Zeitpunkt von einer der identifizierten Speicherstellen
in das Mittel zur Aufbewahrung einer statischen Momentaufnahme transferiert
wurde, bevor die genannte eine der identifizierten Speicherstellen
verändert
wird, indem ein neuer Datenblock hinein geschrieben wird, wobei
die statische Momentaufnahme aufbewahrt wird, ohne dass der Zugriff
der Benutzer auf den Massenspeicher beendet wird; ein Mittel, durch
das die Datenblöcke,
die durch die statische Momentaufnahme aufbewahrt wurden, in ein Backup-System
transferiert werden; ein Mittel, durch das das Backup-System veranlasst
wird, die transferierten Datenblöcke
in einem temporären
Speichermittel zu speichern, bis alle zu transferierenden Datenblöcke empfangen
wurden; und ein Mittel, durch das das Backup-System veranlasst wird,
nachdem alle zu transferierenden Datenblöcke empfangen wurden, die transferierten
Datenblöcke
einem Backup-Speichermittel zuzuführen, welches alle vor dem ersten
Zeitpunkt vorgenommenen Veränderungen einschließt, um das
Backup-Speichermittel auf den Stand des zweiten Zeitpunkts zu bringen.
-
Das
vorliegende System und Verfahren bietet drei signifikante Vorteile
gegenüber
dem Stand der Technik. Zunächst
vermindert das Backup-System und -Verfahren der vorliegenden Erfindung
die Menge an Daten, die zur Erstellung eines Backups erforderlich
ist, indem nur diejenigen Datenblöcke der primären Massenspeichereinrichtung
gesichert werden, die sich verändern.
Zweitens wird mit dem System und dem Verfahren der vorliegenden
Erfindung die Sicherheit des Backups hervorgehoben, indem sichergestellt
wird, dass sich die primäre
Speichereinrichtung in einem logisch konsistenten Zustand befindet,
wenn ein Backup erstellt wird. Drittens, da die für die Erstellung
eines Backup benötigten
Daten auf absolute Minimum reduziert werden, und da Backups nur
von logisch konsistenten Zuständen
erstellt werden, kann die Häufigkeit
der Backups erhöht
werden, um eine viel höhere
Anzahl logisch konsistenter Zustände
zu erfassen. Mit dem Backup-System und -Verfahren der vorliegenden
Erfindung wird dies erreicht, ohne den Zugang des Benutzers zu dem
Massenspeichersystem zu beenden.
-
Die
vorliegende Erfindung geht von der Annahme aus, dass eine primäre Massenspeichereinrichtung,
die mit einem primären
Computer verbunden ist, und ein Backup-Speichersystem, das mit einer
Backup-Speichereinrichtung verbunden ist, identische Daten enthalten.
Dies kann z. B. dadurch erreicht werden, dass eine vollständige Kopie
der Massenspeichereinrichtung in der Backup-Einreichung erstellt
wird, und zwar entweder unter Anwendung traditioneller Backup-Verfahren oder traditioneller Plattenspiegelungsverfahren.
Sobald die primäre Massenspeichereinrichtung
und die Backup-Speichereinrichtung die gleichen Daten enthalten,
verfolgt die vorliegende Erfindung die in der primären Massenspeichereinrichtung
vorgenommenen Änderungen.
Dieses Verfolgen geschieht durch Identifizieren derjenigen Speicherzellen
in der primären
Massenspeichereinrichtung, die neue Daten enthalten, welche seit
der Zeit, in der die Backup-Speichereinrichtung
mit der primären
Massenspeichereinrichtung synchron war, in diese eingeschrieben
wurden. Durch Identifizieren der Änderungen, die in der primären Massenspeichereinrichtung
vorgenommen wurden, identifiziert die Erfindung diejenigen Änderungen,
die in der Backup-Speichereinrichtung durchgeführt werden
müssen,
um die Backup- Speichereinrichtung auf den Stand der primären Massenspeichereinrichtung
zu bringen.
-
Sobald
die in der Backup-Speichereinrichtung durchzuführenden Änderungen identifiziert sind, werden
die Änderungen
zum Backup-System geschickt. Das Backup-System verfügt dann über alle Daten,
um die Backup-Speichereinrichtung auf den Stand der primären Massenspeichereinrichtung
zu bringen. Damit die ursprünglichen
Daten der primären
Massenspeichereinrichtung während
des Backup-Vorganges erhalten bleiben, wird eine statische Momentaufnahme
(statischer Schnappschuss) der primären Massenspeichereinrichtung
gemacht. Dieser statische Schnappschuss erfasst die Veränderungen,
die in der primären
Massenspeichereinrichtung vorgenommen wurden und die zum Backup-System
transferiert werden müssen.
Um das Backup für
die Anwender transparent zu machen, wird die Momentaufnahme bevorzugt
auf eine Weise gemacht, die zu keiner Unterbrechung des Anwenderzugangs
zu der primären
Massenspeichereinrichtung führt.
-
Die
vorliegende Erfindung enthält
einen Mechanismus, der identifiziert, wann sich die primäre Massenspeichereinrichtung
in einem logisch konsistenten Zustand befindet, um festzustellen,
wann ein statischer Schnappschuss gemacht werden sollte. Durch die
Identifizierung eines logisch konsistenten Status und dann die Momentaufnahme
der bis zu diesem Zeitpunkt durchgeführten Änderungen ist garantiert, dass
das Backup-System einen logisch konsistenten Status erfasst, wenn
die Änderungen
an das Backup-System transfe riert werden. Durch das Erfassen von
Schnappschüssen
von aufeinander folgenden logisch konsistenten Zuständen ist
das Backup in der Lage, einen logisch konsistenten Zustand nach
dem anderen zu erfassen. Sollten die Backup-Daten jemals benötigt werden,
so werden sich die Backup-Daten auf diese Weise in einem logisch
konsistenten Zustand befinden. Das Backup-System bewegt sich von
einem logisch konsistenten Status zu einem anderen logisch konsistenten
Status und eliminiert somit eines der Probleme des Standes der Technik.
-
Dadurch
dass die vorliegende Erfindung für die
Sicherung eines Massenspeichersystems eine Datenblock-Vorgehensweise
wählt,
wird mit der vorliegenden Erfindung die Menge der Daten, die zur
Erstellung eines Backups transferiert werden müssen, auf das absolute mögliche Minimum
reduziert. Weist beispielsweise eine große Datenbank fünf Datensätze auf,
die sich verändern,
so würden
Systeme des Standes der Technik die gesamte große Datenbank kopieren. Mit
der vorliegenden Erfindung werden jedoch nur die fünf Datensätze, die
sich verändert
haben, kopiert. Da die Datenmenge minimiert ist, eignet sich die
vorliegende Erfindung besonders gut für das Backup von Daten in einem
Backup-System an einem entfernten Ort. Die vorliegende Erfindung
kann Kommunikationsverbindungen mit niedriger Bandbreite verwenden,
um Backup-Daten an eine entfernte Backup-Stelle zu transferieren.
Beispielsweise werden in vielen Fällen herkömmliche Telefonwählleitungen
mit einem 56,6-kBaud-Modem für
viele Situationen völlig
ausreichen.
-
Da
die zur Erstellung einer Backup-Kopie benötigten Daten durch die vorliegende
Erfindung minimiert werden, kann eine Reihe von Backup-Kopien, eine
nach der anderen, erstellt werden. Hierdurch wird es möglich, den
Status einer einzigen Massenspeichereinrichtung mit größerer Häufigkeit
zu erfassen. Zusätzlich
kann ein einziges zentralisiertes Backup-System eine Mehrzahl von
Primärservern unterstützen, so
dass jeder der Server auf demselben Backup-System gesichert werden
kann.
-
Demgemäß ist es
ein primäres
Ziel der vorliegenden Erfindung, ein System und ein Verfahren für die Backup-Sicherung
von Massenspeichern bereitzustellen, mit denen die Menge an Daten,
die an ein Backup-System transferiert werden müssen, minimiert wird.
-
Ein
anderes zentrales Ziel der vorliegenden Erfindung ist die Bereitstellung
eines Systems und eines Verfahrens für die Backup-Sicherung von
Massenspeichern, welche in der Lage sind, logisch konsistente Zustände zu erfassen,
so dass das Backup nicht in einem logisch inkonsistenten Zustand
zurückgelassen
wird.
-
Ein
weiteres Ziel der vorliegenden Erfindung besteht darin, es zu ermöglichen,
dass das Backup-System aufeinander folgende logisch konsistente Backup-Zustände erfasst,
um eine Reihe von logisch konsistenten Backup-Zuständen zur
Verfügung
zu stellen.
-
Zusätzliche
Ziele und Vorteile der vorliegenden Erfindung sind in der nachfolgenden
Beschreibung aufgeführt
und ergeben sich zum Teil aus der Beschreibung, oder sie zeigen
sich bei der Anwendung der Erfindung. Die Ziele und Vorteile der
Erfindung können
erreicht und verwirklicht werden mittels der Instrumente und Kombinationen,
auf die in den beigefügten
Ansprüchen
im Einzelnen hingewiesen wird. Diese und andere Ziele der vorliegenden
Erfindung sind aus der nachfolgenden Beschreibung und den beigefügten Ansprüchen näher ersichtlich
oder sie ergeben sich aus der Anwendung der Erfindung, wie sie nachfolgend
beschrieben wird.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Um
die Art und Weise, wie die oben genannten sowie andere vorteile
und Ziele der Erfindung erhalten werden, zu erläutern, folgt nun eine detailliertere
Beschreibung der oben in Kürze
beschriebenen Erfindung unter Bezug auf die spezifischen Ausführungsformen
der Erfindung, die in dem beigefügten Zeichnungen
dargestellt sind. Es wird darauf hingewiesen, dass diese Zeichnungen
lediglich typische Ausführungsformen
der Erfindung wiedergeben und daher nicht als den Schutzumfang der
Erfindung beschränkend
zu verstehen sind. Die Erfindung wird durch die beiliegenden Zeichnungen
mit zusätzlicher Spezifizität und zusätzlichem
Detail beschrieben und erläutert.
Die Zeichnungen zeigen:
-
1:
ein Blockdiagramm, in dem ein System der vorliegenden Erfindung
dargestellt ist;
-
2:
ein Diagramm, in dem der Ablauf eines Verfahrens der vorliegenden
Erfindung erläutert wird;
-
3:
ein Blockdiagramm auf Systemebene, das eine Ausführungsform der vorliegenden
Erfindung zeigt;
-
4:
eine Darstellung der Verfahrensdetails einer Ausführungsform
des Massenspeicher-Schreib-Lese-Verarbeitungsblocks
von 3;
-
5:
Verarbeitungsdetails einer Ausführungsform
des primären
Backup-Verarbeitungsblocks von 3;
-
6:
die Verarbeitungsdetails einer Ausführungsform des Backup-Lese-Verarbeitungsblocks von 3;
-
7A und 7B:
Diagramme, die ein Beispiel eines Verfahrens der vorliegenden Erfindung darstellen;
-
8:
ein Verfahren zur Identifizierung von Unterschieden zwischen einem
Massenspeichersystem und einem Backup-Speichersystem;
-
9:
die Verarbeitungsdetails einer Ausführungsform des Unterschiede
identifizierenden Verarbeitungsblocks von 3;
-
10:
die Verarbeitungsdetails einer Ausführungsform des Backup-System-Verarbeitungsblocks
von 3.
-
DETAILLIERTE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Die
folgende Erfindung wird unter Verwendung von Flussdiagrammen beschrieben,
um entweder die Struktur oder die Verarbeitung von bestimmten Ausführungsformen
zur Realisierung des Systems und des Verfahrens der vorliegenden
Erfindung zu beschreiben. Diese Art der Verwendung der Diagramme
zur Präsentation
der Erfindung sollte nicht als den Schutzumfang der Erfindung einschränkend verstanden
werden. Die vorliegende Erfindung kontempliert sowohl ein System
als auch ein Verfahren für
die Backup-Sicherung einer primären
Massenspeichereinrichtung in einer Backup-Speichereinrichtung. Die
derzeit bevorzugte Ausführungsform
des Systems zur Sicherung einer primären Massenspeichereinrichtung
in einer Backup-Speichereinrichtung umfasst einen oder mehr Universalrechner.
Das System und das Verfahren der vorliegenden Erfindung kann jedoch
auch mit einem beliebigen Spezialrechner oder anderen Hardware-Systemen
angewandt werden, welche alle im Schutzumfang der Erfindung enthalten
sind.
-
Ausführungsformen,
die innerhalb des Schutzumfangs der Erfindung liegen, sind auch
computerlesbare Medien, die darin kodierte computerausführbare Instruktionen
enthalten. Derartige computerlesbare Medien können alle zur Verfügung stehenden
Medien sein, auf die ein Universal- oder Spezialcomputer Zugriff
hat. Beispielsweise (ohne Beschränkung)
können
solche computerlesbaren Medien RAM, ROM, EEPROM, CD-ROM oder andere Bildplattenspeicher,
Magnetplattenspeicher oder andere Magnetspeichereinrichtungen, magnetooptische
Speichereinrichtungen oder ein beliebiges anderes Medium umfassen,
das dazu verwendet werden kann, das gewünschte Programmcodemittel zu speichern
und auf welches durch einen Universalrechner oder Spezialrechner
Zugriff genommen werden kann. Kombinationen der oben Genannten fallen ebenfalls
in den Bereich der computerlesbaren Medien. Register einer CPU oder
einer anderen Recheneinheit, die computerausführbare Instruktionen speichern,
wobei sie diese Dekodieren und Ausführen, fallen ebenfalls in den
Bereich der computerlesbaren Medien.
-
Computerlesbare
Instruktionen umfassen z. B. ausführbare Instruktionen und Daten,
die einen Universalcomputer oder einen Spezialcomputer dazu veranlassen,
bestimmte Funktionen oder eine bestimmte Gruppe von Funktionen auszuführen.
-
Unter
Bezug auf 1 wird nun ein Blockdiagramm
auf Systemebene einer Ausführungsform der
vorliegenden Erfindung vorgestellt. Das – allgemein mit 10 gekennzeichnete – System
umfasst ein oder mehr Primärsysteme 12,
ein Backupsystem 14, und ein Backup-Transportmittel für den Transport
der Daten zwischen einem Primärsystem 12 und
einem Backup-System 14.
In 1 ist das Backup-Transportmittel als Backup-Transportverbindung 16 dargestellt.
In 1 kann das Primärsystem 12 jede Art von
vernetztem oder Einplatz-Computersystem
sein. Beispielsweise kann es sich bei dem Primärsystem um einen Netzserver-Computer
handeln, der mit einem Computernetz wie dem Computernetz 18 verbunden
ist. Das primäre
System 12 kann auch ein Einplatzsystem sein. Es kann sich
bei dem primären System 12 auch
um einen Backup- oder
Standby-Server eines Computernetzes handeln, der mit einem primären Server
verbunden ist. Die vorliegende Erfindung kann mit jeder Art von
Computersystem angewandt werden. In diesem Sinne soll der Begriff "Primär..." oder "primär" nicht ein Computersystem als
primären
Netzwerkserver (im Gegensatz zu einem Backup- oder Standby-Netzwerkserver)
definieren oder beschreiben. In dieser Beschreibung weist der Begriff "Primär..." oder "primär" auf die Tatsache hin, dass
das System angeschlossene Massenspeichermittel für die Speicherung einer Kopie
der Daten aufweist, die gesichert werden sollen. Anders ausgedrückt wird
der Begriff "Primär..." oder "primär" verwendet, um das
System von dem Backup-System 14 zu unterscheiden.
-
Mit
dem Primärsystem 12 ist
ein Massenspeichermittel für
die Speicherung einer Vielzahl von Datenblöcken an einer Vielzahl von
Speicherstellen verbunden. Jede der Speicherstellen ist durch eine eindeutige
Adresse oder einen anderen Mechanismus gekennzeichnet. Bei den Massenspeichermitteln
kann es sich um einen beliebigen Speichermechanismus handeln, der
Daten speichert, welche unter Verwendung der vorliegenden Erfindung
gesichert werden sollen. Beispielsweise können solche Speichermittel
einen oder mehr magnetische oder magnetooptische Plattenlaufwerke
umfassen. Es wird jedoch angenommen, dass ein solches Massenspeichermittel
eine Mehrzahl von Speicherstellen aufweist, welche zur Speicherung
von Datenblöcken verwendet
werden können.
Die Speicherstellen werden durch eine eindeutige Adresse oder einen
eindeutigen Index adressiert, so dass ein bestimmter Datenblock
an diese Stelle geschrieben oder aus dieser Stelle abgerufen werden
kann. In 1 z. B. ist ein solches Massenspeichermittel
durch die Massenspeichereinrichtung 20 dargestellt.
-
Der
Begriff "Datenblock" wird verwendet,
um einen Block von Daten zu beschreiben, der in das Massenspeichermittel
geschrieben oder aus diesem ausgelesen wird. Der Begriff "Datenblock" ist im weiten Sinne
zu verstehen und schließt
Daten in jeder Größe oder
jedem Format ein. Beispielsweise werden in einem einzelnen Sektor
auf einer Platte gespeicherte Daten korrekterweise als Datenblock
bezeichnet. Auch die Menge von Daten, die in einer Gruppe oder einem
Cluster von Sektoren gespeichert ist, kann korrekterweise als ein
Datenblock bezeichnet werden. Handelt es sich bei dem Mas senspeichermittel
um ein RAM oder um eine andere durch Wort oder Byte adressierbare
Speichervorrichtung, so kann der Begriff Datenblock auf ein Byte,
ein Wort oder eine Dateneinheit aus einer Mehrzahl von Wörtern angewandt
werden.
-
Wie
unten näher
beschrieben, verwenden unter den Schutzbereich dieser Erfindung
fallende Ausführungsformen
während
des Backupvorganges eine statische Momentaufnahme (einen statischen Schnappschuss),
der ganzen oder eines Teils der Massenspeichereinrichtung. In den
Schutzbereich der Erfindung fallende Ausführungsformen umfassen daher
Aufbewahrungsspeichermittel für
die Speicherung von Datenblöcken
des genannten Massenspeichermittels, um eine statische Momentaufnahme
des Speichermittels zu einem bestimmten Zeitpunkt zu erstellen.
Wie unten näher
beschrieben, kann ein solches Aufbewahrungsspeichermittel jede Art
von schreibbarer Speichereinrichtung wie RAM, EEPROM, Magnetplattenspeicher
und dergleichen umfassen. Ein solches Aufbewahrungsspeichermittel kann
auch einen Teil der Massenspeichereinrichtung 20 umfassen.
In 1 ist ein solches Aufbewahrungsspeichermittel
z. B. als Schnappschussspeichereinrichtung 22 dargestellt.
Das Aufbewahrungsspeichermittel wird unten näher besprochen.
-
Da
es sich bei dem System 12 um jede Art von Universal- oder Spezialcomputer
handeln kann, kann das Primärsystem 12 auch
jede andere Hardware umfassen, aus der ein Universal- oder Spezialcomputer
aufgebaut ist. Beispielsweise kann das Primärsystem 12 auch Prozessormittel
für das
Ausführen
von programmierbaren Codemitteln umfassen. Das Prozessormittel kann
ein Mikroprozessor oder eine andere CPU-Einrichtung sein. Das Prozessormittel
kann auch verschiedene Spezialrechner wie digitale Signalprozessoren
und dergleichen umfassen. Das primäre System 12 kann
auch andere herkömmliche
Computerkomponenten umfassen, wie Displaymittel, die dazu dienen,
dem Benutzer die Ausgabe anzuzeigen, Eingabemittel für die Eingabe
von Daten in das Primärsystem 12,
Ausgabemittel für
die Ausgabe von Hardcopy-Ausdrücken,
Speichermittel wie z. B. RAM, ROM, EEPROM und dergleichen.
-
Das
Backup-System 14 von 1 umfasst Backup-Speichermittel
für die
Speicherung von Datenblöcken,
die von dem Primärsystem 12 erhalten wurden.
Das Backup-Speichermittel kann jede beliebige Art von Speichereinrichtungen
umfassen, die in der Lage ist, Datenblöcke zu speichern, die von einem
Primärsystem
erhalten wurden. Beispielsweise kann das Backup-Speichermittel eine
Speichereinrichtung umfassen, die mit der Massenspeichereinrichtung
eines Primärsystems
identisch ist. Verfügt das
Primärsystem
z. B. über
eine große
Magnetplatte, so kann das Backup-Speichermittel ebenfalls eine große Magnetplatte
umfassen. wenn das Backup-Speichermittel
das gleiche ist wie das Massenspeichermittel des Primärsystems,
so kann das Backup-Speichermittel das Massenspeichermittel des primären Systems
eng spiegeln. Als weiteres Beispiel kann das Backup-Speichermittel
archivierende Speichereinrichtungen wie ein Magnetbandlaufwerk oder
ein optisches oder magnetooptisches Laufwerk umfassen. Die Art der
Speichereinrichtungen, die für
das Backup-Speichermittel Verwendung finden können, ist lediglich durch die
spezifische Anwendung, in der sie verwendet werden, begrenzt. In einigen
Situationen kann es wünschenswert
sein, über
ein Backup-Speichermittel zu verfügen, das dem Massenspeichermittel
des Primärsystems
stärker ähnelt. In
anderen Fällen
kann es völlig
akzeptabel sein, über
Speichermittel des Archivtyps zu verfügen, die für die Speicherung großer Datenmengen auf
Kosten eines schnellen Zugriffs optimiert sind. Es ist lediglich
erforderlich, dass das Backup-Speichermittel
in der Lage ist, Datenblöcke,
die aus dem Massenspeichermittel des Primärsystems in das Backup-System
transferiert werden, zu speichern. In 1 ist das
Backup-Speichermittel als Backup-Speichereinrichtung 24 dargestellt.
-
Wie
unten näher
beschrieben, kann das Backup-Speichersystem 14 Backup-Erfassungsmittel
für die
Speicherung von Datenblöcken
umfassen, welche an das Backup-System 14 übermittelt
werden, bis alle Datenblöcke
erhalten wurden. Da mit der vorliegenden Erfindung nur bestimmte
Datenblöcke transferiert
werden, kann eine Situation entstehen, in der ein logisch inkonsistenter
Zustand geschaffen wird, falls nur einige der Datenblöcke der
Backup-Speichereinrichtung 24 zugeführt werden. ihn dies zu verhindern,
kann es wünschenswert
sein, die transferierten Datenblöcke
an einer separaten Stelle, wie einem Backup-Speichermittel, zu sichern,
bis alle Datenblöcke
erhalten wurden. Hierdurch wird sichergestellt, dass eine vollständige Gruppe
von Datenblöcken
erhalten wird, bevor eine Aktion stattfindet. Backup-Erfassungsmittel
können
jede Art von Speicher umfassen, die in der Lage ist, vom Primärsystem 12 empfangene
Datenblöcke
zu speichern. So können
Backup-Erfassungsmittel beispielsweise RAM, Magnetplattenspeicher
oder jedes andere Speichermedium umfassen. Es ist allerdings bevorzugt,
dass Backup-Erfassungsmittel eine ausreichende Geschwindigkeit haben,
um in der Lage zu sein, Datenblöcke
so schnell zu speichern, wie sie empfangen werden. Backup-Erfassungsmittel
müssen
dem Backupsystem 14 auch Datenblöcke bereitstellen, so dass
das Backup-System 14 die Datenblöcke an sein angeschlossenes
Backup-Speichermittel transferieren kann. In 1 wird das
Backup-Erfassungsmittel durch den Backup-Erfassungspuffer 26 dargestellt.
-
Um
Daten zwischen einem Primärsystem 12 und
einem Backup-System 14 zu
transferieren, wird eine Backup-Transportverbindung 16 genutzt.
Die Backup-Transportverbindung 16 ist ein Beispiel für das Backup-Transportmittel
für den
Transport von Daten zwischen dem primären System 12 und
dem Backup-System 14. Die Backup-Transportverbindung 16 kann
jede Kombination von Hardware und/oder Software umfassen, die benötigt wird,
um Datenübermittlung
zwischen dem Primärsystem 12 und
dem Backup-System 14 zu ermöglichen. Beispielsweise kann
es sich bei der Backup-Transportverbindung 16 um ein lokales
Netz (LAN), ein weiträumiges
Netz (WAN), eine Wählverbindung,
die Standard-Telefonleitungen oder Hochgeschwindigkeitskommunikationsleitungen
nutzt, das Internet oder jeden anderen Mechanismus handeln, der
es ermöglicht,
dass Daten zwischen dem Primärsystem 12 und
dem Backup-System 14 fließen. Wie unten näher erläutert, ist
die vorliegende Erfindung so gestaltet, dass sie die Menge der Daten,
die zwischen dem Primärsystem 12 und
dem Backup-System 14 fließen, minimiert,
so dass nur diejenigen Daten transferiert werden, die erforderlich
sind, um das Backup-Speichermittel,
wie die Backup-Speichereinrichtung 12, auf einen Stand
mit dem primären
Massenspeichermittel, wie der Massenspeichereinrichtung 20,
zu bringen. Hierdurch wird es möglich,
dass die Backup-Transportverbindung 16 eine größere Vielfalt
von Technologien einschließt,
die bei den Systemen des Standes der Technik nicht anwendbar sind.
Die Bandbreitenerfordernisse für
die Backup-Transportverbindung 16 sind normalerweise sehr gering:
eine 56,6-kBaud-Wählverbindung
ist für
viele Zwecke völlig
ausreichend.
-
In 2 ist
eine Übersicht über das
Verfahren dargestellt, das zur Backup-Sicherung eines Massenspeichermittels,
wie der Massenspeichereinrichtung 20 von 1,
in einem Backup-Speichermittel, wie der Backup-Speichereinrichtung 24 aus 1,
verwendet wird. Anfänglich
geht das in 2 dargestellte Verfahren davon
aus, dass die Massenspeichereinrichtung und die Backup-Speichereinrichtung
aktuell sind. Anders ausgedrückt
enthält
die Backup-Speichereinrichtung
eine Kopie der in der Massenspeichereinrichtung gespeicherten Daten. Dies
lässt sich
durch Anwendung einer beliebigen Anzahl konventioneller Technologien
erreichen. Welche Art von Technologie verwendet wird, wird in hohem
Maße von
der Art der Medien abhängen,
die für die
Backup-Speichereinrichtung eingesetzt werden. Handelt es sich beispielsweise
bei der Backup-Speichereinrichtung um eine Platte ähnlich der
Platte, die für
die Massenspeichereinrichtung verwendet wird, so kann eine Plattenspiegelung
oder ein anderes Mittel angewandt werden, um die Daten von der Massenspeichereinrichtung
in die Backup-Speichereinrichtung zu kopieren. Wenn die Backup-Speichereinrichtung
andererseits Magnetband oder einen anderen Speicher des Archivtyps
verwendet, so kann ein Backup in der Weise erstellt werden, in der
solche Archivband-Backups herkömmlicherweise
erzeugt werden. In 2 wird davon ausgegangen, dass
die Backup-Speichereinrichtung eine aktuelle Kopie der in der Massenspeichereinrichtung
zum Zeitpunkt T0 gespeicherten Daten enthält.
-
Beginnend
beim Zeitpunkt T0 wird mit dem in 2 zusammengefassten
Verfahren die Aktualität der
Backup-Speichereinrichtung in Bezug auf die Massenspeichereinrichtung
aufrechterhalten. Das in 2 zusammengefasste Verfahren
erfasst aufeinander folgende logisch konsistente Zustände. Dies bedeutet,
dass sich die Backup-Speichereinrichtung entweder von einem logisch
konsistenten Zustand zu einem nachfolgenden logisch konsistenten
Zustand bewegt, oder es ermöglicht
der Backup-Speichereinrichtung, aufeinander folgende logisch konsistente Zustände zu erfassen.
Dies bedeutet einen erheblichen Vorteil gegenüber den Systemen des Standes der
Technik, die die Backup-Speichereinrichtung in einem logisch inkonsistenten
Status zurücklassen können. Dadurch
dass sichergestellt wird, dass sich die Backup-Einrichtung in einem logisch konsistenten
Zustand befindet, wird mit der vorliegenden Erfindung garantiert,
dass stets ein brauchbares Backup zur Verfügung steht.
-
Wieder
Bezug nehmend auf 2: Beginnend mit dem Zeitpunkt
T0 werden die in dem Massenspeichersystem
durchge führten Änderungen
verfolgt. Dies ist in 2 durch den Block 28 dargestellt. Die Änderungen
werden vorzugsweise dadurch verfolgt, dass Speicherstellen der Massenspeichereinrichtung
identifiziert werden, in die beginnend mit dem Zeitpunkt T0 neue Daten eingeschrieben wurden. Wie unten
näher erläutert, kann
dies durch Bewahren eines Abbildes erfolgen, welches diejenigen Speicherstellen
identifiziert, die beginnend mit dem Zeitpunkt T0 neu
eingeschriebene Daten enthalten. Alternativ hierzu kann eine Liste
der Speicherstellen, die beginnend mit dem Zeitpunkt T0 neu
eingeschriebene Daten enthalten, geführt werden.
-
Zu
einem gewissen Zeitpunkt ist es wünschenswert, die durchgeführten Änderungen
zu erfassen und an das Backup-System
zu transferieren. Gemäß einer
bevorzugten Ausführungsform
identifiziert das System einen logisch konsistenten Zustand der
Massenspeichereinrichtung und macht eine statische Momentaufnahme
wenigstens derjenigen Speicherstellen, die seit dem Zeitpunkt T0 geändert
wurden. In 2 wird der logisch konsistente
Zustand als Zeitpunkt T1 identifiziert und
eine Momentaufnahme gemacht.
-
Eine
statische Momentaufnahme soll Daten so bewahren, wie sie zu einem
bestimmten Zeitpunkt existieren, so dass die Daten nach diesem bestimmten
Zeitpunkt in ihrem ursprünglichen
Zustand zur Verfügung
stehen, und zwar auch dann, wenn in dem Massenspeichersystem nach
dem Zeitpunkt der Momentaufnahme Änderungen durchgeführt werden.
-
Es
bestehen viele Möglichkeiten,
einen solchen statischen Schnappschuss zu erzeugen. Alle diese Verfahren
funktionieren mit der vorliegenden Erfindung, jedoch wird einigen
Verfahren aufgrund verschiedener Vorteile der Vorzug gegeben. Die
Details bezüglich
der Art und Weise, wie ein statischer Schnappschuss gemacht wird,
sowie ein bevorzugtes Verfahren zur Erzeugung eines statischen Schnappschusses
sind unten beschrieben. Allerdings ist es für diese Zusammenfassung wichtig
zu verstehen, dass jedes Verfahren, mit dem ein statischer Schnappschuss
erzeugt werden kann, zusammen mit der vorliegenden Erfindung Verwendung
finden kann. Es wird jedoch bevorzugt, dass der statische Schnappschuss
erzeugt wird, ohne den Schreib- oder Lesezugriff des Benutzers auf
die zur Massenspeichereinrichtung zu beenden.
-
Zum
Zeitpunkt T1, werden die zwischen T0 und T1 identifizierten Änderungen
gesichert, indem sie zur Backup-Speichereinrichtung geschickt werden.
Dies ist in 2 durch den Pfeil 30 und
Block 32 dargestellt. Die Änderungen werden zur Backup-Speichereinrichtung
geschickt, wobei nur Daten transferiert werden, die in denjenigen
Speicherstellen gespeichert sind, in denen zwischen dem Zeitpunkt T0 und dem Zeitpunkt T1 neue
Daten eingeschrieben wurden. Da die Daten zum Zeitpunkt T1 durch einen Schnappschuss bewahrt werden,
stehen diese Daten für
den Transfer zur Backup-Speichereinrichtung zur
Verfügung,
obwohl nach dem Zeitpunkt T1 neue Daten
in die Massenspeichereinrichtung geschrieben werden. Das Abbild
oder ein anderer Mechanismus, der verwendet wurde, um zu verfolgen,
welche Speicherstellen Daten enthielten, die zwischen dem Zeitpunkt
T0 und dem Zeitpunkt T1 eingeschrieben
wurden, wird zur Identifikation der Daten verwendet, die an die
Backup-Speichereinrichtung transferiert werden sollen. Man beachte,
dass lediglich die Datenblöcke
transferiert werden, die zwischen T0 und
T1 geändert
wurden. Somit werden nur inkrementelle Änderungen verschickt und es
werden keine ganzen Dateien transferiert, es sei denn, dass die
ganze Datei verändert
ist.
-
Wie
unten näher
erläutert,
werden die Daten, wenn sie von der Backup-Speichereinrichtung erhalten
werden, vorzugswei se an einer temporären Stelle gepuffert, bis alle
Daten von Zeitpunkt T0 bis T1 transferiert
worden sind. Sobald alle Daten transferiert sind, können die Änderungen
der Backup-Speichereinrichtung
zugeführt
werden, um diese auf den Stand des Zeitpunkts T1 zu
bringen. Alternativ hierzu können
die zwischen dem Zeitpunkt T0 und T1 aufgetretenen Änderungen als inkrementelles
Backup bewahrt werden, so dass eine Rekonstruktion des zum Zeitpunkt
T0 existierenden logisch konsistenten Status
und des zum Zeitpunkt T1 existierenden logisch konsistenten
Status möglich
ist, falls gewünscht.
-
Da
nach dem Zeitpunkt T1 während der Durchführung des
Backups neue Daten in die Massenspeichereinrichtung geschrieben
werden können, muss
ein Mechanismus vorhanden sein, der die nach dem Zeitpunkt T1 durchgeführten Änderungen identifiziert, falls
nach dem Zeitpunkt T1 ein weiteres Backup
durchgeführt
werden muss. In 2 werden die nach T1 erfolgten Änderungen,
wie durch Block 34 angezeigt, verfolgt. Hierdurch wird
es möglich,
auch die nach dem Zeitpunkt T1 erfolgten Änderungen
zur Backup-Speichereinrichtung zu transferieren, um die Backup-Speichereinrichtung
mit einem späteren Zeitpunkt
auf einen Stand zu bringen.
-
Wie
in 2 dargestellt, wiederholt sich die oben beschriebene
Sequenz zum Zeitpunkt T2. Dies wird durch
den Pfeil 36, Block 38 und Block 40 dargestellt.
Wie bereits beschrieben, sollte die zum Zeitpunkt T2 gemachte
Momentaufnahme einen logisch konsistenten Zustand repräsentieren,
so dass, wenn die zwischen T1 und T2 durchgeführten Änderungen zur Backup-Speichereinrichtung
transferiert werden, die Backup-Speichereinrichtung mit dem logisch
konsistenten Status zum Zeitpunkt T2 auf
einen Stand gebracht wird.
-
Auf
der Grundlage der obigen Zusammenfassung können einige Aussagen gemacht
werden. Die erste Aussage lautet, dass mit der vorliegenden Erfindung
nur die Daten gesichert werden, die in den Speicherstellen gespeichert
sind, welche seit dem letzten Backup geändert wurden. Dies stellt gegenüber dem
Stand der Technik einen bedeutenden Vorteil dar. Man erwäge beispielsweise
eine Datenbank, in der nur sehr wenige Datensätze geändert werden. Systeme des Standes
der Technik würden
versuchen, ein Backup der gesamten Datenbank durchzuführen, wenn
eine Änderung
durchgeführt
worden wäre.
Mit der vorliegenden Erfindung werden jedoch lediglich die Datenblöcke gesichert,
die aufgrund der geringen Anzahl von geänderten Sätzen verändert wurden. Dies bedeutet,
dass die Zeit, die zur Erstellung des Backups der Datenbank erforderlich
ist, und die Speicheranforderungen der Erstellung des Backups gegenüber dem
Stand der Technik erheblich vermindert sind.
-
Ein
weiterer wichtiger Unterschied gegenüber dem Stand der Technik wird
in der obigen Beschreibung hervorgehoben. Mit der vorliegenden Erfindung
werden die Daten so erfasst, wie sie existieren, wenn der Schnappschuss
gemacht wird. Die vorliegende Erfindung versucht nicht, die zeitliche
Abfolge von Änderungen,
die in der Massenspeichereinrichtung durchgeführt wurden, zur Backup-Speichereinrichtung
zu transferieren. Wurde beispielsweise ein einziger Datensatz der
Datenbank zwischen dem Zeitpunkt, an dem das letzte Backup durchgeführt wurde,
und dem aktuellen Backup-Zeitpunkt zehn Mal geändert, so würden gewisse Systeme des Standes
der Technik zehn Änderungen
zur Backup-Speichereinrichtung schicken. Die vorliegende Erfindung jedoch
transferiert einfach nur die letzte Änderung, die vor der aktuellen
Backup-Zeit durchgeführt
wurde. In dem gegebenen Beispiel wird mit diesem Verfahren die an
die Backup-Einrichtung gesandte Datenmenge um den Faktor 10 vermindert.
Die vorlie gende Erfindung reduziert die zur Backup-Einrichtung geschickte
Datenmenge auf das Minimum, das erforderlich ist, um ein logisch
konsistentes Backup zu erstellen. Hierdurch kann die Kommunikationsverbindung
zwischen dem primären
System und dem Backup-System eine viel geringere Bandbreite aufweisen,
als dies bei Systemen des Standes der Technik der Fall ist. Die
vorliegende Erfindung ist somit in idealer Weise für solche
Ausführungsformen
geeignet, bei denen sich das Backup-System an einem von dem Primärsystem
entfernten Ort befindet. Wenn sich das Backup-System an einem entfernten
Ort befindet, können
herkömmliche
Telefonwählleitungen Verwendung
finden, um die Backupdaten zwischen dem Primärsystem und dem Backup-System
zu transferieren.
-
Die
vorliegende Erfindung unterstützt
auch eine Ausführungsform
mit einem Many-to-One-Backup. Man erwäge beispielsweise die in 1 wiedergegebene
Situation, in der eine Ausführungsform
ein einziges Backup-System und eine Mehrzahl von primären Systemen
umfasst. Das Backup-System kann entweder lokal oder an einem entfernten
Ort angeordnet sein. Das Backup-System könnte dann den Kontakt mit einem
Primärsystem
initiieren, die Änderungen,
die seit dem letzten Backup dieses Systems aufgetreten sind, empfangen
und die Verbindung beenden. Dann würde eine Verbindung zu einem
anderen Primärsystem
hergestellt, und das Backup-System könnte die auf diesem Primär-System
seit dem letzten Backup aufgetretenen Änderungen empfangen. Das Backup-System
kontaktiert also ein Primär-System
nach dem anderen und empfängt
die Änderungen,
die seit der Zeit, zu der das Primärsystem zuletzt kontaktiert
wurde, aufgetreten sind. Eine solche Ausführungsform kann für ein Unternehmen mit
vielen Filialen, wo Kopien der Daten dieser Filiale an einem zentralen
Ort gespeichert werden müssen, von
großem
Wert sein.
-
Mit
Bezug auf 3 wird nachfolgend ein Top-Level-Diagramm einer Ausführungsform
zur Realisierung des in 2 zusammengefassten Verfahrens
dargestellt. Die nachfolgende Beschreibung bietet einen Top-Level-Überblick über jeden
der in 3 dargestellten Verarbeitungsblöcke. Danach
werden die Details jedes Verarbeitungsblocks dargestellt.
-
Während des
normalen Betriebes eines Computersystems werden periodisch Daten
in ein angeschlossenes Massenspeichermittel, wie der Massenspeichereinrichtung 20,
eingeschrieben oder ausgelesen. In den Schutzumfang der Erfindung
fallende Ausführungsformen
umfassen daher Mittel zum Schreiben von Daten in eine Massenspeichereinrichtung
und Mittel zum Lesen von Daten aus einer Massenspeichereinrichtung.
In 1 ist ein solches Mittel zum Beispiel durch den
Massenspeicher-Lese-Schreib-Verarbeitungsblock 42 dargestellt.
Die Einzelheiten des Massenspeicher-Lese-Schreib-Verarbeitungsblocks 42 werden
später beschrieben;
die grundlegende Funktion des Massenspeicher-Lese-Schreib-Verarbeitungsblocks 42 besteht
darin, einen Datenblock in eine identifizierte Speicherstelle in
einer Massenspeichereinrichtung 20 zu schreiben oder einen
Datenblock aus einer identifizierten Speicherstelle in der Massenspeichereinrichtung 20 auszulesen.
In 3 werden Anforderungen, einen Datenblock aus einer
identifizierten Speicherstelle auszulesen bzw. in eine identifizierte Speicherstelle
zu schreiben, durch die Massenspeicher-Lese-Schreib-Anforderungen 44 dargestellt.
Immer wenn Lesen oder Schreiben abgefragt wird, kann der Massenspeicher-Lese-Schreib-Verarbeitungsblock
eine Antwort ausgeben, wie durch die Massenspeicher-Lese-Schreib-Antwort 46 dargestellt.
Die Antworten können
eine Komplettierungscode oder einen anderen Indikator für den Erfolg
oder das Misslingen der abgefragten Operation enthalten, sowie im
Falle einer Lese-Anforderung,
die abgefragten Daten.
-
Wie
in Verbindung mit 2 beschrieben, verfolgt ein
Verfahren der vorliegenden Erfindung Änderungen, die zwischen einem
ersten Zeitpunkt und einem zweiten Zeitpunkt auftreten. Ausführungsformen,
die innerhalb des Schutzumfangs der Erfindung liegen, umfassen daher
Mittel, um zu identifizieren, in welchen Speicherstellen der Massenspeichereinrichtung 20 zwischen
einem ersten Zeitpunkt und einem zweiten Zeitpunkt neue Daten eingeschrieben
wurden. Mit der vorliegenden Erfindung kann jedes Verfahren zur
Identifizierung und Aufspürung
solcher Speicherstellen verwendet werden. Es ist lediglich erforderlich,
dass die Speicherstellen, in die seit dem letzten Backup neue Daten
eingeschrieben wurden, identifizierbar sind. In 3 wird
ein solches Mittel z. B. durch das Backup-Abbild 48 dargestellt.
Das Backup-Abbild 48 kann einen booleschen Eintrag für jede Speicherstelle
in der Massenspeichereinrichtung 20 umfassen. Enthält eine
Speicherstelle neu in diese hineingeschriebene Daten, so kann der
Eintrag für
die Speicherstelle gesetzt werden. Alternativ dazu kann auch eine
Liste von Speicherstellen, in denen neu gespeicherte Daten enthalten
sind, geführt
werden. Es ist lediglich die Fähigkeit
erforderlich, Speicherstellen, in denen seit einem bestimmten Zeitpunkt
neue Daten gespeichert wurden, von anderen zu unterscheiden und
zu identifizieren.
-
Wie
bereits beschrieben, wird dann, wenn ein Backup erstellt werden
soll, ein statischer Schnappschuss wenigstens derjenigen Speicherstellen
gemacht, die gesichert werden sollen. Unter den Schutzbereich der
Erfindung fallende Ausführungsformen
umfassen daher Mittel zur Aufbewahrung eines zu einem bestimmten
Zeitpunkt gemachten, statischen Schnappschusses. Die Verwendung
eines statischen Schnappschusses zur Aufbewahrung wenigstens derjenigen
Speicherstellen, die in einem Backup-System gesichert werden sollen,
wird bevorzugt, da dies den Zugriff der Benutzer auf die Massenspeichereinrichtung 20 erlaubt,
während
die Ände rungen
gesichert werden. Da eine Zeitspanne erforderlich ist, um die Änderungen
vom primären
System zum Backup-System
zu transferieren, müssen die
zu übertragenden
Daten solange unverändert bleiben,
bis sie übertragen
sind. Ein Weg sicherzustellen, dass die Daten unverändert bleiben,
besteht darin, den Zugriff auf die Massenspeichereinrichtung 20 zu
sperren. Hierdurch wird verhindert, dass Daten in die Massenspeichereinrichtung 20 geschrieben werden,
und sichergestellt, dass die zu sichernden Daten unverändert bleiben,
bis sie an das Backup-System transferiert werden können. Leider
ist diese Lösung
in hohem Maße
nachteilig. Es wird daher bevorzugt, dass dann, wenn Änderungen
zum Backup-System transferiert werden sollen, ein statischer Schnappschuss
wenigstens derjenigen Daten gemacht wird, die transferiert werden.
Ein solcher statischer Schnappschuss bewahrt die zu transferierenden
Daten in ihrem ursprünglichen
Zustand, bis sie transferiert werden können, während gleichzeitig ein kontinuierlicher
Zugriff auf die Massenspeichereinrichtung 20 ermöglicht wird,
so dass Daten weiterhin in diese geschrieben oder aus dieser ausgelesen werden
können.
-
Mit
der vorliegenden Erfindung kann jedes Verfahren zur Bewahrung eines
statischen Schnappschusses angewandt werden. Es wird jedoch bevorzugt,
dass, welches Verfahren auch immer angewandt wird, das angewandte
Verfahren in der Lage sein sollte, einen statischen Schnappschuss
zu bewahren, ohne den Zugriff auf die Massenspeichereinrichtung 20 zu
unterbrechen. Anders ausgedrückt
ist es bevorzugt, dass der statische Schnappschuss in einer Weise
aufbewahrt wird, dass die Anwender weiterhin Daten aus der Massenspeichereinrichtung 20 auslesen
oder in diese einschreiben können.
-
In 3 ist
das Mittel zur Aufbewahrung eines statischen Schnappschusses durch
den Schnappschuss-Verarbeitungsblock 50 dargestellt. Wie
in 3 dargestellt, kann es Sinn machen, den Schnappschuss-Verarbeitungsmechanismus
in den Massenspeicher-Lese-Schreib-Verarbeitungsblock zu integrieren.
Die Details des Schnappschuss-Verarbeitungsblocks 50 sind
unten beschrieben; bei einer bevorzugten Ausführungsform wird der Schnappschuss
bewahrt, indem ein Datenblock, der überschrieben werden soll, aus
der Massenspeichereinrichtung 20 in den Schnappschussspeicher 22 kopiert
wird und dann angezeigt wird, dass der Block in dem Schnappschussabbild 52 aufbewahrt
wurde. Sobald eine Kopie in dem Schnappschussspeicher 22 abgelegt
wurde, kann die Kopie des Datenblocks in der Massenspeichereinrichtung 20 überschrieben werden.
-
Wie
oben in Verbindung mit 2 beschrieben, ist es, wenn
eine Reihe von aufeinander folgenden Backups erstellt werden soll,
notwendig, die Änderungen
zu verfolgen, die in einer Massenspeichereinrichtung, wie der Massenspeichereinrichtung 20, während der
Zeit, in der ein Backup erzeugt wird, durchgeführt werden. Anders ausgedrückt, kann
es notwendig sein, Änderungen,
die in einer Massenspeichereinrichtung 20 durchgeführt werden,
nachdem eine Momentaufnahme erstellt wurde, zu verfolgen. Ausführungsformen
innerhalb des Schutzbereichs der vorliegenden Erfindung können Mittel
zur Identifizierung derjenigen Speicherstellen einer Massenspeichereinrichtung
aufweisen, die neue, nach dem Zeitpunkt der Erstellung eines Schnappschusses
gespeicherte Daten enthalten. Es kann jede Art von Mechanismus verwendet
werden, der Speicherstellen einer Massenspeichereinrichtung verfolgt
und identifiziert, welche neue Daten enthalten, die nach, einem
bestimmten Zeitpunkt gespeichert wurden. So kann z. B. ein Abbild ähnlich dem
Backup-Abbild 48 verwendet werden. weiterhin kann auch
eine Liste von Datenstellen, die neue, seit einem bestimmten Zeitpunkt
gespeicherte Daten enthalten, verwendet werden. Abhängig von
der Art des verwendeten Schnappschussmechanismus, kann der Schnappschussmechanismus
derartige Informationen inhärent
verfol gen. Bei einer solchen Ausführungsform kann diese Information
für den
späteren
Gebrauch gespeichert werden. In 3 ist ein
solches Mittel durch das Schnappschussabbild 52 wiedergegeben. Wie
unten näher
beschrieben, werden bei einer Implementierung des Schnappschussmechanismus Speicherstellen,
in denen nach der Erzeugung des Schnappschusses neue Daten gespeichert
wurden, in einem Schnappschussabbild, wie dem Schnappschussabbild 52 in 3 aufgespürt.
-
Ausführungsformen
innerhalb des Schutzumfangs der Erfindung umfassen Mittel für den Transfer
von Datenblöcken,
die in einem Backupsystem gesichert werden sollen. In 3 ist
ein solches Mittel beispielsweise durch den primären Backup-Verarbeitungsblock 54 dargestellt.
Die Details des primären
Backup-Verarbeitungsblocks 54 sind unten näher beschrieben;
der generelle Zweck des primären
Backup-Verarbeitungsblocks 54 besteht
darin, die Datenblöcke,
die gesichert werden sollen, zu nehmen und diese an ein Backup-System zu transferieren,
und zwar unter Verwendung eines geeigneten Protokolls. Wie in Verbindung
mit 2, und weiter unten noch näher, beschrieben, sind die
Datenblöcke,
die übertragen
werden, diejenigen, die seit dem letzten Backup in Speicherstellen
in der Massenspeichereinrichtung gespeichert wurden.
-
Der
primäre
Backup-Verarbeitungsblock 54 kann die Funktion aufweisen,
entweder ein Backup zu initiieren und Daten zum Backup-System zu
transferieren oder auf ein durch das Backup-System initiiertes Backup
zu antworten. Auf diese Weise kann ein Backup entweder vom primären System
oder vom Backup-System initiiert werden. Die Einzelheiten der Initiierung
von Backups entweder durch das primäre System oder durch das Backup-System
werden unten näher
beschrieben.
-
Bei
der Besprechung von 2, die einen Überblick über ein
erfindungsgemäßes Verfahren bot,
wurde ein statischer Schnappschuss verwendet, um den Zustand geänderter
Datenblöcke
zu einem bestimmten Zeitpunkt zu bewahren. Diese geänderten
Datenblöcke
wurden dann in einem Backup-System gesichert. Werden geänderte Datenblöcke durch einen
statischen Schnappschuss bewahrt, so müssen die Datenblöcke, bevor
sie an ein Backup-System transferiert werden können, aus dem Schnappschuss
wiedergewonnen werden. Ausführungsformen
innerhalb des Schutzumfangs dieser Erfindung können daher ein Mittel zur Wiedergewinnung
von Datenblöcken
umfassen, die durch einen statischen Schnappschuss aufbewahrt wurden.
Ein derartiges Mittel kann Teil des Mittels für den Transfer von Datenblöcken zum
Backup-System sein oder es kann separat vorliegen. In 3 ist
das Mittel zur Wiedergewinnung von Daten, die durch statischen Schnappschuss
bewahrt wurden, durch den Backup-Lese-Verarbeitungsblock 56 wiedergegeben.
Die Details einer Ausführungsform
des Backup-Lese-Verarbeitungsblocks 56 werden unten beschrieben.
Dieser Verarbeitungsblock ruft aufbewahrte Daten von deren Speicherstellen
ab und leitet einen abgerufenen Datenblock an den primären Backup-Verarbeitungsblock 54 für den Transfer
zum Backup-System weiter. Diese Funktion kann auch in dem primären Backup-Lese-Verarbeitungsblock 54 enthalten
sein. Um jedoch die durch den Backup-Lese-Verarbeitungsblock 56 ausgeübte Funktion
herauszustellen, ist der Block in 3 separat
dargestellt.
-
Die
vorliegende Erfindung ist dazu ausgelegt, einen oder mehr logisch
konsistente Backup-Zustände
im Backup-System zu erfassen. Um diese logisch konsistenten Backup-Zustände zu erfassen, können erfindungsgemäße Ausführungsformen
Mittel umfassen, die feststellen, wann ein logisch konsistenter
Status erreicht worden ist. Ein logisch konsistenter Zustand ist
ein Zustand, in dem im Massenspeichersystem keine logischen Inkonsistenzen,
wie z. B. nicht korrekt beendete Dateien, existieren. Ein logisch
konsistenter Zustand kann mittels einer Anzahl von Mechanismen identifi ziert
werden. Beispielsweise kann ein logisch konsistenter Zustand durch
Beobachten der Aktivität
in der Massenspeichereinrichtung identifiziert werden. Findet in
einer Massenspeichereinrichtung keine Aktivität statt, so kann generell angenommen
werden, dass alle internen Datenpuffer geräumt und ihre Daten in das Massenspeichersystem
geschrieben wurden, und dass sich das Massenspeichersystem nicht
in einem Zustand befindet, in dem gerade Datenblöcke aktualisiert werden. Zusätzlich können APIs
vorhanden sein, die aufgerufen werden können, um festzustellen, wann
ein logisch konsistenter Zustand erreicht wurde. Beispielsweise
kann das Betriebssystem oder ein anderes Programm über einen
API-Aufruf verfügen,
der wiederkehrt, wenn ein logisch konsistenter Zustand des Systems
erreicht wurde. Als weiteres Beispiel kann das Betriebssystem eine
Nachricht, derzufolge zu einem gegebenen Zeitpunkt ein Schnappschuss
gemacht wird, an alle mit einem Netzwerk verbundenen Nutzer senden.
Die Benutzer können
dann, falls erforderlich, geeignete Schritte ergreifen, um sicherzustellen,
dass sich ihre Dateien in einem logisch konsistenten Zustand befinden.
Es können
auch andere Mechanismen Verwendung finden. Wie weiter unten näher beschrieben,
kann das Mittel, mit dem festgestellt wird, wann ein logisch konsistenter
Zustand erreicht worden ist, in einem der Verarbeitungsblöcke von 3 inkorporiert
sein, z. B. im primären
Backup-Verarbeitungsblock 54.
-
Sollen
mit der vorliegenden Erfindung aufeinander folgende Backups in einem
Backup-System erstellt werden, so können erfindungsgemäße Ausführungsformen
einen Mechanismus oder ein Mittel zur Identifizierung von Unterschieden
umfassen, die zwischen der Massenspeichereinrichtung des Primärsystems,
wie z. B. Massenspeichereinrichtung 20 aus 3,
und der Backup-Speichereinrichtung, wie z. B. der Backup-Speichereinrichtung 24 in 3, bestehen.
Ein solcher Mechanismus kann von Nutzen sein, wenn, aus welchem
Grunde auch immer, Unsicherheit besteht, ob zwischen der Massenspeichereinrichtung 20 und
der Backup-Speichereinrichtung 24 Unterschiede existieren.
Man stelle sich beispielsweise vor, dass Backup-System sei abgestürzt oder
das primäre
System sei abgestürzt
oder sie stünden
in anderer Weise zeitweilig nicht zur Verfügung. Wenn das Backup-System
oder Primär-System
wieder zur Verfügung
steht, dann kann es unmöglich
sein, genau festzustellen, welche spezifischen Unterschiede zwischen
der Massenspeichereinrichtung 20 und der Backup-Speichereinrichtung 24 bestehen.
Es kann daher wünschenswert
sein, jegliche Unterschiede zu identifizieren, um diejenigen Datenblöcke, die
unterschiedlich sind, aus der Massenspeichereinrichtung 20 zur
Backup-Speichereinrichtung 24 zu transferieren, um die
Backup-Speichereinrichtung 24 auf einen Stand mit der Massenspeichereinrichtung 20 zu
bringen. Erfindungsgemäße Ausführungsformen
können
daher Mittel zur Identifizierung von Unterschieden zwischen Daten,
die in einer Mehrzahl von Speicherstellen in einer Massenspeichereinrichtung
gespeichert sind, und Daten, die in einer Backup-Speichereinrichtung
gespeichert sind, umfassen. In 3 ist ein
solches Mittel beispielsweise durch den Unterschiede identifizierenden
Verarbeitungsblock 58 wiedergegeben. Die Einzelheiten des
Unterschiede identifizierenden Verarbeitungsblocks 58 sind
unten dargestellt; Der Block ist dafür zuständig, alle Unterschiede, die
zwischen der Massenspeichereinrichtung 20 und der Backup-Speichereinrichtung 24 existieren,
zu identifizieren. Dieser Block kann in dem Backup-Abbild 48 oder dem
Schnappschussabbild 52 geeignete Einträge machen, um identifizierte
Unterschiede zu verfolgen.
-
Erfindungsgemäße Ausführungsformen
umfassen ein Backup-System,
das Datenblöcke
speichert, welche aus einem oder mehreren Primärsystemen transferiert werden.
In 3 ist die Verarbeitung, die in einem solchen Backup-System
stattfindet, durch den Backup-System-Verarbeitungsblock 60 wie dergegeben.
Wie unten näher
beschrieben, erhält
der Backup-System-Verarbeitungsblock 60 Datenblöcke über die
Backup-Transportverbindung 16 und
speichert diese in der Backup-Speichereinrichtung 24.
Wie oben beschrieben, kann es sich bei der Backup-Speichereinrichtung 24 um
jede Art von Speichereinrichtung handeln, die in der Lage ist, die Datenblöcke zu speichern,
die von einem oder mehreren primären
Systemen empfangen werden. So kann die Speichereinrichtung z. B.
ein Plattenlaufwerk sein, ähnlich
einem Plattenlaufwerk, wie es für die
Massenspeicherung in einem Primärsystem
verwendet wird. Als weiteres Beispiel kann es sich bei der Backup-Speichereinrichtung 24 auch
um irgendein Medium für
die archivierende Speicherung handeln, wie z. B. Magnetband. Als
weiteres Beispiel kann die Backup-Speichereinrichtung 24 auch
eine optische Platte oder eine Mehrzahl von optischen Platten sein.
Es ist lediglich erforderlich, dass die Backup-Speichereinrichtung
in der Lage ist, die von einem oder mehreren Primärsystemen
erhaltenen Datenblöcke
in einem Format zu speichern, in dem sie, falls erforderlich, abgerufen
werden können,
um von einer Massenspeichereinrichtung in einem primären System
verlorene Daten wiederzugewinnen. Bedient ein einziges Backup-System
mehr als ein Primärsystem,
so kann es wünschenswert
sein, für jedes
Primärsystem
separate Backup-Speichereinrichtungen vorzusehen, oder auch eine
einzige Backup-Speichereinrichtung vorzusehen, die alle Primärsysteme
bedient.
-
Wie
in 3 dargestellt, werden zwischen dem Backup-System-Verarbeitungsblock 60 und
einem oder mehreren Verarbeitungsblöcken in einem Primärsystem,
wie dem primären
Backup-Verarbeitungsblock 54 und dem Unterschiede identifizierenden
Verarbeitungsblock 58, Datenpakete ausgetauscht. Diese
Datenpakete werden unter Verwendung eines Protokolls ausgetauscht,
dass für
die transferierte Datenmenge und die einzelnen Details der Backup-Transportverbindung 16 geeignet
ist. Die Kommunikation zwischen den Primärsystem- Verarbeitungsblöcken und den Backup-System-Verarbeitungsblöcken ist
durch die Sende- und Empfangspakete 64 wiedergegeben. Die
Details der Formatierung der Sende- und Empfangspakete 64 sind
für die Zwecke
dieser Erfindung nicht von Bedeutung. Das Format wird in hohem Masse
durch die Details der Transportverbindung 16 bestimmt.
Handelt es sich bei der Backup-Transportverbindung 16 beispielsweise
um ein lokales Netz, so werden die Sende- und Empfangspakete 64 entsprechend
den Konventionen des lokalen Netzes formatiert. Wenn die Backup-Transportverbindung 64 eine
Wählverbindung
unter Verwendung von Telefonleitungen ist, so wird es sich bei den
Sende- und Empfangspaketen 64 um eine beliebige Anzahl
konventioneller Kommunikationsprotokolle handeln, wie sie für den Transfer
von Daten zwischen Computersystemen über Telefonleitungen Verwendung
finden. Handelt es sich bei der Backup-Transportleitung um das Internet,
so sind die Sende- und Empfangspakete 64 entsprechend einem
der Internet-Transferprotokolle formatiert. Andere Verbindungen
können
andere Paketformate oder Kommunikationsprotokolle erfordern. Für die vorliegende
Erfindung ist es lediglich erforderlich, dass ein Austausch der
hier identifizierten Daten zwischen dem Primärsystem und dem Backup-System
möglich ist.
-
In 4 ist
eine Ausführungsform
des Massenspeicher-Lese-Schreib-Verarbeitungsblocks 42 dargestellt.
Wie oben beschrieben, besteht die Funktion eines Massenspeicher-Lese-Schreib-Verarbeitungsblocks 42 darin,
Daten aus der Massenspeichereinrichtung 20 auszulesen oder
Daten in diese hinein zu schreiben. Zusätzlich ist, unter der Annahme, dass
der Schnappschuss-Verarbeitungsblock 50 in den Lese-Schreib-Verarbeitungsblock 42 inkorporiert wurde,
der Verarbeitungsblock 42 auch verantwortlich für die Aufbewahrung
und Erhaltung eines statischen Schnappschusses der Massenspeichereinrichtung 20 zu
einem bestimmten Zeitpunkt. Bei der in 4 dargestellten
Ausführung
ist der Schnapp schuss-Verarbeitungsblock 50 als integrale
Funktion in 4 inkorporiert. Wie oben beschrieben,
wäre es jedoch
auch möglich,
den Schnappschuss-Verarbeitungsblock 50 separat vorzusehen.
Die Wahl, ob der Schnappschuss-Verarbeitungsblock 50 in
dem Lese-Schreib-Verarbeitungsblock 42 inkorporiert oder ob
der Schnappschuss-Verarbeitungsblock 50 separat implementiert
wird, wird als Frage des Designs angesehen und ist für die Zwecke
der vorliegenden Erfindung kaum von Bedeutung. Der wichtige Aspekt der
Erfindung besteht darin, die Fähigkeit
vorzusehen, Daten aus der Massenspeichereinrichtung 20 auszulesen
oder in diese zu schreiben, sowie die Fähigkeit vorzusehen, einen statischen
Schnappschuss wenigstens eines Teils der Massenspeichereinrichtung 20 zu
einem bestimmten Zeitpunkt zu erstellen und aufzubewahren.
-
Im
Folgenden wird auf 4 Bezug genommen. Der Entscheidungsblock 66 prüft zunächst, ob eine
Schnappschussanforderung vorliegt. Dieser Entscheidungsblock bestimmt,
ob die Schnappschussverarbeitungsfunktion, die in dem Massenspeicher-Lese-Schreib-Verarbeitungsblock 42 integriert
ist, einen Schnappschuss von wenigstens einem Teil der Massenspeichereinrichtung 20 aus 3 machen
sollte. Die Schnappschuss-Anforderung kann von dem Backup-System
oder von einem anderen Verarbeitungsblock des Primärsystems
herstammen. In 3 ist eine Schnappschuss-Anforderung
durch die Schnappschuss-Anforderung 68 dargestellt. Wie
in 3 zu sehen, wird die Schnappschuss-Anforderung 68 durch
den primären
Backup-Verarbeitungsblock 54 erzeugt. Wie unten näher beschrieben,
wird die Schnappschuss-Anforderung 68 vorzugsweise von
dem primären
Backup-Verarbeitungsblock 54 ausgegeben. Der primäre Backup-Verarbeitungsblock 54 identifiziert
zunächst
einen logisch konsistenten Zustand, bevor er eine solche Schnappschuss-Anforderung
ausgibt. Als Alternative hierzu kann das Mittel zur Identifizierung
eines logisch konsistenten Zustandes in der Schnappschuss- Verarbeitungsfähigkeit
des Massenspeicher-Lese-Schreib-Verarbeitungsblocks 42 inkorporiert
sein, so dass eine Schnappschuss-Anforderung entweder durch das
primäre
System oder durch das Backup-System initiiert werden kann, der Massenspeicher-Lese-Schreib-Verarbeitungsblock 42 würde dann
einen logisch konsistenten Zustand identifizieren und einen Schnappschuss
machen. Derartige Details sind Fragen der Konstruktion und aus Sicht dieser
Erfindung nicht von Bedeutung.
-
Im
Folgenden wird wieder auf 4 Bezug genommen.
Wurde eine Schnappschuss-Anforderung erhalten, so besteht der nächste Schritt
darin, einen statischen Schnappschuss wenigstens eines Teils der
Massenspeichereinrichtung 20 zu bewahren. Zwar kann mit
der vorliegenden Erfindung jedes Mittel zur Bewahrung eines statischen
Schnappschusses Anwendung finden, vorzugsweise wird jedoch ein bestimmtes
verfahren angewandt, um einen Schnappschuss aufzubewahren. Das bevorzugte Verfahren
ist unten in der Beschreibung der Schritte 70, 72, 74,
des Entscheidungsblocks 84 und des Schritts 86 zusammengefasst.
Das Verfahren ist in der US-Patentanmeldung
08/322,697 mit dem Titel METHOD AND SYSTEM FOR PROVIDING A STATIC
SNAPSHOT OF DATA STORED ON A MASS STORAGE SYSTEM näher beschrieben.
Im Wesentlichen nutzt ein bevorzugtes Verfahren zur Bewahrung eines
statischen Schnappschusses einen Schnappschussspeicher, wie den
Schnappschussspeicher 22 in 3, um Datenblöcke einer Massenspeichereinrichtung,
wie der Massenspeichereinrichtung 20 von 3,
zu bewahren, die mit neuen Daten überschrieben werden sollen.
Wie weiter unten näher
erläutert,
werden die zu bewahrenden Datenblöcke zunächst in den Schnappschussspeicher
kopiert und ein Datensatz, der angibt, dass der Datenblock aufbewahrt
wurde, wird aktualisiert. Ein solcher Datensatz kann beispielsweise
in dem Schnappschussabbild 52 der 3 gespeichert
werden. Danach können
neue Daten in die Massenspeichereinrichtung 20 geschrieben
werden, ohne dass die aufbewahrten Datenblöcke verloren gehen.
-
Soll
gemäß der Bewertung
des Entscheidungsblocks 66 ein Schnappschuss gemacht werden,
besteht der nächste
Schritt darin, das Schnappschussabbild in das Backup-Abbild zu kopieren,
wie in 4 durch Schritt 70 angezeigt. Wie oben
beschrieben, wird ein Backup-Abbild, wie das Backup-Abbild 48 in 3,
verwendet, um anzuzeigen, welche Blöcke sich zwischen einem ersten
Zeitpunkt und einem zweiten Zeitpunkt verändert haben. Diese Datenblöcke werden
dann zum Backup-System transferiert.
Wie aus der nachfolgenden Beschreibung ersichtlich, identifiziert
das Schnappschussabbild 52 von 3 diejenigen
Datenblöcke,
die sich, seit zu einem bestimmten Zeitpunkt ein statischer Schnappschuss
gemacht wurde, verändert
haben. Somit kann das Schnappschussabbild 52 als Backup-Abbild
verwendet werden, wenn ein neuer Schnappschuss gemacht wird. Das
Kopieren des Schnappschussabbildes 52 in ein Backup-Abbild 48 erfüllt die
gewünschte
Funktion der Identifizierung derjenigen Datenstellen, in die zwischen
dem Zeitpunkt, zu dem der letzte Schnappschuss gemacht wurde, und
dem aktuellen Zeitpunkt neue Daten gespeichert wurden. Es ist offensichtlich,
dass es nicht notwendig sein muss, das Schnappschussabbild in das
Backup-Abbild zu
kopieren. Das Schnappschussabbild kann einfach als das Backup-Abbild verwendet
und ein neues Abbild als das aktuelle Schnappschuss-Abbild verwendet
werden.
-
Nachdem
das Schnappschussabbild aufbewahrt wurde, so dass es als Backup-Abbild
verwendet werden kann, besteht der nächste Schritt darin, das derzeitige
Schnappschussabbild zu löschen. Dieser
Schritt wird in 4 durch den Schritt 72 wiedergegeben.
Das Schnappschussabbild wird verwendet, um einen Hinweis auf diejenigen
Datenblöcke
zu speichern, in denen seit der Erzeugung des Schnappschusses neue
Daten gespeichert wurden. Somit gibt das Schnapp schussabbild an,
welche Datenblöcke
in einem Schnappschussspeicher, wie dem Schnappschussspeicher 22 der 3,
gespeichert sind. Da ein neuer Schnappschuss gemacht werden soll,
muss das Schnappschussabbild gelöscht
werden.
-
Wenn
das Schnappschussabbild durch Schritt 72 gelöscht wurde,
besteht der nächste
Schritt darin, den Schnappschussspeicher, wie den Schnappschussspeicher 22 in 3,
zu löschen. Dies
wird durch Schritt 74 der 4 angezeigt.
Im Hinblick insbesondere auf diesen Schritt sollte beachtet werden,
dass es nicht unbedingt notwendig ist, den Schnappschussspeicher
physisch zu entfernen bzw. zu löschen.
Im Allgemeinen ist es, wie bei jeder anderen Art von Speicher, gewöhnlich ausreichend, den
Index zum Speicher zu löschen,
um anzugeben, dass der Speicher lehr ist. Somit würde es,
falls der Index als Teil des Schnappschussspeicherabbildes, wie
dem Schnappschussspeicherabbild 52 von 3,
geführt
wird, ausreichen, das Schnappschussspeicherabbild wie in Schritt 72 zu
löschen, um
anzuzeigen, dass der Schnappschussspeicher lehr ist. Wird der Index
zum Schnappschussspeicher jedoch separat von dem Schnappschussspeicherabbild
geführt,
dann kann es notwendig sein, den Index getrennt, mittels Schritt 74 zu
löschen.
Nach dem Löschen
des Schnappschussabbildes und des Schnappschussspeichers ist das
System zur Aufbewahrung eines neuen Schnappschusses bereit. Der Ablauf
geht damit zurück
zum Anfang, wie in 4 gezeigt.
-
Im
Folgenden wird auf den Entscheidungsblock 76 in 4 Bezug
genommen. Dieser Entscheidungsblock prüft, ob es sich bei einer durch
den Massenspeicher-Lese-Schreib-Verarbeitungsblock 42 erhaltenen
Nachricht um eine Massenspeicher-Lese-
oder -Schreib-Anforderung handelt. Dieser Block ist in 4 aufgeführt, um
herauszustellen, dass der Massenspeicher-Lese-Schreib-Verarbeitungsblock 42 nur
Lese- oder Schreibanforderungen an die Massenspeichereinrichtung
und eine Schnappschussanforderung, wie oben beschrieben, bearbeitet.
Der Entscheidungsblock 76 ist als Teil des Massenspeicher-Lese-Schreib-Verarbeitungsblocks 42 nicht
unbedingt notwendig, solange die Nachrichten, die an diesen geschickt
werden, ausschließlich Massenspeicher-Lese- und/oder -Schreibanforderungen
sind.
-
Bis
zu dem Zeitpunkt, wo der Entscheidungsblock 78 erreicht
ist, sind die einzigen möglichen Nachrichten
entweder eine Massenspeicher-Leseanforderung oder Massenspeicher-Schreibanforderung.
Dies liegt daran, dass andere Arten von Anforderungen entweder bearbeitet
oder ausgefiltert werden, bevor der Entscheidungsblock 78 erreicht
ist. Der Entscheidungsblock 78 unterscheidet zwischen einer
Massenspeicher-Leseanforderung
und einer Massenspeicher-Schreibanforderung. Handelt es sich bei
einer Anforderung um eine Massenspeicher-Leseanforderung, so besteht
der nächste Schritt
darin, den angeforderten Datenblock aus der Massenspeichereinrichtung 20 abzufragen
und die Daten zu dem Prozess zurückzuführen, von
dem die Anforderung stammt. Dies wird in Schritt 80 dargestellt.
Handelt es sich bei der Anforderung jedoch um eine Schreibanforderung,
so schreitet der Ablauf voran zum Entscheidungsblock 82.
-
Der
Entscheidungsblock 82 bestimmt, ob ein Schnappschuss aufbewahrt
werden soll. Wie oben beschrieben, wird bei einer bevorzugten Ausführungsform
ein Schnappschuss aufbewahrt, indem Datenblöcke, die überschrieben werden sollen,
in einen Aufbewahrungsspeicher, wie dem Schnappschussspeicher 22 in 3,
kopiert werden. Bei dieser Ausführungsform
wird der Schnappschuss im Wesentlichen inkrementell aufbewahrt.
Anders ausgedrückt,
wird, wenn der Schnappschuss aufbewahrt wird, der Schnappschussspeicher
wie oben in den Schritten 72 und 74 beschrieben
auf die Aufbewahrung der Datenblöcke
vorbereitet. Danach werden keine Daten in dem Schnappschussspeicher
gespeichert, bis eine Schreiban forderung gemacht wird, die Daten überschreiben
wird, welche aufbewahrt werden sollten. Somit ist es, wenn auf diese
Weise ein Schnappschuss aufbewahrt wird, wichtig, festzustellen,
ob ein Schnappschuss gemacht wurde oder ob Schreibanforderungen
an das Massenspeichersystem gerichtet werden sollten, ohne sich über die
Aufbewahrung von Schnappschussdaten Gedanken zu machen. Der Entscheidungsblock 82 prüft, ob die Schreibanforderung
ohne die Aufbewahrung von Schnappschussdaten ergehen sollte, oder
ob Schnappschussdaten für
Schreibanforderungen aufbewahrt werden sollen. Sollen die Schreibanforderungen
ohne die Aufbewahrung von Schnappschussdaten ergehen, zeigt der
Entscheidungsblock 82 an, dass der Ablauf zum Schritt 88 voranschreitet,
in welchem die Datenblöcke
in die Massenspeichereinrichtung, wie Massenspeichereinrichtung 20 in 3, geschrieben
werden. Falls jedoch Schnappschussdaten aufbewahrt werden sollen,
so geht der Ablauf zum Entscheidungsblock 84 über.
-
Wie
oben beschrieben, werden, wenn gemäß einer bevorzugten Ausführungsform
ein Schnappschuss gemacht werden soll, Daten, die überschrieben
werden sollen, zunächst
in einen Schnappschussspeicher, wie dem Schnappschussspeicher 22 in 3,
kopiert. Nachdem die Daten im Schnappschussspeicher aufbewahrt wurden,
kann der neue Datenblock in das Massenspeichersystem geschrieben
werden. Zweck eines Schnappschusses ist es, die Daten so aufzubewahren,
wie sie in dem Massenspeichersystem zu einem bestimmten Zeitpunkt
existieren. Somit braucht der Schnappschuss die Daten nur so zu
bewahren, wie sie zum Zeitpunkt des Schnappschusses existierten.
Der Entscheidungsblock 84 prüft, ob der zum Zeitpunkt des Schnappschusses
im Massenspeichersystem gespeicherte ursprüngliche Datenblock bereits
vorher im Schnappschussspeicher aufbewahrt wurde. Mit anderen Worten,
falls es sich bei den derzeit in der designierten Schreib-Speicherstelle gespeicherten Daten
um Daten handelt, die an dieser Speicherstelle zu dem Zeitpunkt,
als der Schnappschuss gemacht wurde, gespeichert wurden, so würden die
ursprünglichen
Daten verloren gehen, wenn die Schreibanforderung aufträte, ohne
vorher die Daten aufzubewahren. Falls jedoch die zum Zeitpunkt der
Erzeugung des Schnappschusses dort gespeicherten ursprünglichen
Daten vorher im Schnappschussspeicher aufbewahrt wurden, so kann
die Schreibanforderung auftreten und jegliche Daten, die an der
designierten Speicherstelle gespeichert sind, ohne Sorge überschreiben,
da die ursprünglichen
Daten vorher aufbewahrt wurden. Wenn also der Entscheidungsblock 84 feststellt,
dass die ursprünglichen
Daten noch nicht im Schnappschussspeicher gespeichert worden sind,
so geht der Ablauf zu Schritt 86 über, in dem die ursprünglichen
Daten in den Schnappschussspeicher kopiert werden. Sind die ursprünglichen
Daten jedoch bereits aufbewahrt worden, so wird der Schritt 86 übersprungen.
-
Nach
dem Aufbewahren der ursprünglichen Daten
in Schritt 86 oder nach der Feststellung, dass die ursprünglichen
Daten vorher aufbewahrt wurden, geht der Ablauf zu Schritt 88 über, in
dem die Schreibanforderung ausgeführt wird, und zwar durch Schreiben
des in der Schreibanforderung beinhalteten Datenblocks in die designierte
Speicherstelle in der Massenspeichereinrichtung.
-
In
Schritt 90 wird dann die Speicherstelle als eine Speicherstelle
identifiziert, die neue Daten enthält. Wie oben beschrieben kann
dies erreicht werden, indem ein Eintrag in einem Schnappschussabbild,
wie dem Schnappschussabbild 52 in 3, gemacht
wird. Schritt 90 stellt lediglich ein Beispiel des oben
beschriebenen Mittels zur Identifizierung von Speicherstellen einer
Massenspeichereinrichtung, die neu eingeschriebene Daten enthalten,
dar. Es kann dann eine Antwort an den Prozess geschickt werden,
von dem die Anforderung stammt. Das Senden einer solchen Antwort
ist in 4 durch Schritt 92 wiedergegeben. Im
Allgemeinen werden derartige Antworten an den Prozess, der die Anforderung
ausgab, nicht nur geschickt, um den Erfolg oder Misserfolg der Schreiboperation
anzugeben, sondern auch, um die vollständige Durchführung des
Schreibvorgangs anzuzeigen. Der Ablauf geht dann zurück zum Anfang,
wo die nächste
Anforderung bearbeitet wird.
-
In 5 werden
die Einzelheiten einer Ausführungsform
dargestellt, in welcher der primäre Backup-Verarbeitungsblock 54 realisiert
ist. Wie oben beschrieben, ist der primäre Backup-Verarbeitungsblock 54 dafür zuständig, die
Datenblöcke
zu beschaffen, die an das Backup-System transferiert werden müssen, und
den Transfer unter Verwendung eines geeigneten Kommunikationsprotokolls
durchzuführen.
Wie in 5 durch Entscheidungsblöcke 94 und 96 dargestellt,
stellt der primäre
Backup-Verarbeitungsblock 54 zunächst fest, ob von dem Backup-System
ein Backup initiiert wurde, oder ob ein Backup durch das Primärsystem
initiiert werden sollte. Der primäre Backup-Verarbeitungsblock 54 wird solange
nichts unternehmen, bis ein Backup entweder durch das Backup-System
oder durch das Primärsystem
initiiert wurde.
-
Die
vorliegende Erfindung kann in unterschiedlichen Modi verwendet werden.
Wie oben erläutert,
werden in einem Modus Backups durch das Backup-System initiiert.
In einem solchen System kann das Backup-System ein oder mehrere
Primärsysteme
kontaktieren und die Änderungen,
die seit dem letzten Backup aufgetreten sind, empfangen. Zwar kann
ein solcher Modus in einer One-to-One-Situation Anwendung finden,
doch ist ein derartiger Modus extrem nützlich für Situationen, die als Many-to-One-Situationen
bezeichnet werden könnten. In
diesem Modus kann eine zentralisierte Backup-Stelle eine Vielzahl
von primären
Systemen kontaktieren, die entweder lokal oder an entfernten Orten angeordnet
sind, und das Backup jeweils für
das kontaktierte System durchführen.
In diesem Modus initiiert das Backup-System den Kontakt mit einem
System, führt
das Backup durch, beendet den Kontakt und initiiert dann den Kontakt
mit dem nächsten
System usw. Steht eine simultane Kommunikation mit einer Mehrzahl
von Primärsystemen
zur Verfügung,
so kann das Backup-System den Kontakt mit einer Anzahl von Primärsystemen
gleichzeitig initiieren. Unter Verwendung von Verfahren wie den
oben beschriebenen ist ein Unternehmen in der Lage, kritische Daten
von überall
in der Welt an einem zentralen Ort zu sichern.
-
Bei
einem anderen Verfahrensmodus wird das Backup durch das Primärsystem
initiiert. Bei diesem Verfahrensmodus wartet das Backup-System, bis
ein Primärsystem
den Kontakt herstellt und ein Backup initiiert. Das Backup-System
erhält
dann von dem Primärsystem
die Änderungen,
die seit dem letzten Backup aufgetreten sind. In diesem Modus kann
das Backup-System ebenfalls in Aktion treten, um entweder ein einziges
Primärsystem
oder eine Mehrzahl von Primärsystemen
zu sichern.
-
Wird
das Backup durch das Primärsystem
initiiert, wie im Entscheidungsblock 96 angegeben, so stellt
das Primärsystem
eine Verbindung mit dem Backup-System her, wie in Schritt 98 dargestellt.
Diese Verbindung wird über
die Backup-Transportverbindung 16 der 3 hergestellt.
Wie oben erwähnt, kann
es sich bei der Backup-Transportverbindung 16 um jede Art
von Kommunikationsverbindung handeln, die es ermöglicht, Daten zwischen dem
Primärsystem
und dem Backup-System
zu transferieren. Somit wird in Schritt 98 die Verbindung
unter Anwendung eines Verfahrens hergestellt, das der Art der Kommunikationsverbindung
zwischen dem Primärsystem
und dem Backup-System angemessen ist. Soll beispielsweise eine Wählverbindung
hergestellt werden, so wählt
das Primärsystem
die Telefonnummer des Backup-Systems und stellt die Verbindung unter
Verwendung des geeigneten Kommunikationsprotokolls her. Andere Verbindungen
werden unter Verwendung andere Arten von Protokollen hergestellt.
-
Nachdem,
falls das Backup durch das Primärsystem
initiiert wurde, die Kommunikationsverbindung durch das Primärsystem
hergestellt worden ist, oder wenn der Entscheidungsblock 94 feststellt, dass
ein Backup durch das Backup-System initiiert wurde, geht der Ablauf
zu Schritt 100 über.
In Schritt 100 wird ein logisch konsistenter Backup-Zustand identifiziert.
Wie oben beschrieben, können
Ausführungsformen
innerhalb des Schutzumfangs dieser Erfindung Mittel zur Identifizierung
eines logisch konsistenten Backup-Zustands einer Massenspeichereinrichtung
umfassen. Schritt 100 stellt lediglich ein Beispiel eines
solchen Mittels dar. Die Identifizierung eines logisch konsistenten
Zustandes der Massenspeichereinrichtung kann entweder durch einen
API oder durch Überwachen
der Aktivität
in der Massenspeichereinrichtung erreicht werden. Mit der vorliegenden
Erfindung kann jedes Verfahren oder jeder Mechanismus, das/der es
ermöglicht,
einen solchen logisch konsistenten Status zu identifizieren, zur
Anwendung kommen. wenn ein logisch konsistenter Zustand identifiziert
wurde, so wird ein Schnappschuss des logisch konsistenten Zustandes
aufbewahrt, so dass das Backup voranschreiten kann. Das Backup wird
in Schritt 102 erstellt, in welchem der Schnappschussverarbeitung – z. B.
dem Schnappschussverarbeitungsblock 50, der in einem Massenspeicher-Lese-Schreib-Verarbeitungsblock 42 der 3 enthalten
ist – signalisiert
wird, einen Schnappschuss zu machen. Bei einer Ausführungsform
führt dies
dazu, dass die Schnappschussanforderung 68 zum Massenspeicher-Lese-Schreib-Verarbeitungsblock 42 geschickt
wird. Wie bereits beschrieben, bewirkt diese Anforderung die Ausführung der
Schritt 70, 72 und 74 der 4,
welche die Erzeugung des Schnappschusses vorbereiten. Danach werden
die in der Massenspeichereinrichtung 20 zum Zeitpunkt der
Schnappschusserzeugung gespeicherten ursprünglichen Daten durch den Entscheidungsblock 84 und
Schritt 86 der 4 aufbewahrt.
-
Nach
der Erzeugung des Schnappschusses, um den durch Schritt 100 der 5 identifizierten,
logisch konsistenten Backup-Zustand aufzubewahren, besteht der nächste Schritt
in 5 darin, Datenblöcke, wie in Schritt 104 angegeben,
zu einem Sende-Paket zusammenzustellen. Wie bereits erläutert kann
die Backup-Transportverbindung 16 von 3 unter
Verwendung einer großen
Vielfalt von Technologien realisiert werden. Tatsächlich können mehrere Technologien
Anwendung finden, um zwischen einem einzelnen Backup-System und
einem einzelnen Primärsystem
zu kommunizieren. So können
die beiden Systeme beispielsweise durch eine bevorzugte Backup-Transportverbindung
wie dem Internet oder einer Hochgeschwindigkeits-WAN-Verbindung
miteinander verbunden werden. Wenn jedoch die bevorzugte Verbindung
nicht zur Verfügung
steht, so kann das System auf langsamere Verbindungen, wie z.B. eine
Wählverbindung
mit geringerer Geschwindigkeit, zurückgreifen. Wenn Schritt 104 angibt,
dass Datenblöcke
zu einem Sende-Paket zusammengestellt werden sollen, ist das Format
des Sendepaketes folglich abhängig
von der Kommunikationsverbindung, die verwendet wird, um Daten zwischen
dem Backup-System und dem Primärsystem
zu übermitteln.
Bei einigen Ausführungsformen
kann es, abhängig
von der Größe der Datenblöcke und
des Sende-Paketes, möglich
sein, mehrere Datenblöcke
in ein einziges Sendepaket zu packen. In anderen Situationen kann
es erforderlich sein, einen einzigen Datenblock in mehrere unterschiedliche
Sendepakts aufzuteilen. Schritt 104 sollte so verstanden
werden, dass er jegliche Übersetzung
oder Formatierung enthält,
die zur Zusammenstellung eines Sende-Paketes für den Transfer zum Backup-System
erforderlich ist.
-
Wenn
das Sende-Paket zusammengestellt wurde, schickt Schritt 106 das
Sende-Paket unter Verwendung eines geeigneten Übertragungsprotokolls zum Backup-System.
Wenn das Sende-Paket von dem Backup-System empfangen wurde, prüft Schritt 108,
ob noch weitere Daten gesendet werden müssen. Ist dies der Fall, so
führt der
Ablauf zurück zu
Schritt 104, in dem ein anderes Sendepaket zusammengestellt
und geschickt wird. Sind keine Daten mehr zu übermitteln, so wird die Verbindung
zum Backup-System durch Schritt 110 beendet und der Ablauf
geht zum Anfang zurück,
wo der primäre Backup-Verarbeitungsblock 54 wartet,
bis das nächste
Backup initiiert wird. Die Backups können – entweder durch das Backup-System
oder die Primärsysteme – nach einem
periodischen Plan initiiert werden. Somit kann die vorliegende Erfindung
dazu dienen, eine Reihe von Backups – von denen jedes einen logisch
konsistenten Zustand repräsentiert – eines oder
mehrerer Primärsysteme
zu erfassen.
-
Wie
oben beschrieben, werden nur diejenigen Datenblöcke in Schritt 104 zum
Backup-System verschickt, die sich seit dem letzten Backup verändert haben.
Des Weiteren werden die Datenblöcke
so übermittelt,
wie sie zu dem Zeitpunkt, als der Schnappschuss gemacht wurde, existierten.
Somit identifiziert ein Backup-Abbild, wie das Backup-Abbild 48 in 3,
die Datenblöcke,
die transferiert werden sollen, und der Schnappschuss bewahrt diese Datenblöcke in dem
Zustand auf, in dem sie sich befanden, als der Schnappschuss gemacht
wurde. Der primäre
Backup-Block 54 muss daher bestimmte Daten, die durch den
Schnappschuss aufbewahrt wurden, abrufen. Der primäre Backup-Verarbeitungsblock 54 kann
die Funktionalität
beinhalten, die zum Abrufen der Datenblöcke aus dem Schnappschuss- und/oder
dem Massenspeichersystem erforderlich ist; diese Funktionalität kann aber
auch in einem separaten Verarbeitungsblock inkorporiert sein. Ein
diese Funktionalität
aufweisender, separater Verarbeitungsblock ist in 3 durch
den Backup-Lese- Verarbeitungsblock 56 dargestellt.
In 6 ist eine Ausführungsform des Backup-Lese-Verarbeitungsblocks 56 dargestellt,
welche dazu ausgelegt ist, die durch diese Schnappschüsse aufbewahrten
Daten wiederzugewinnen.
-
In 6 wird
mit dem Entscheidungsblock 112 herausgestellt, dass der
Backup-Lese-Verarbeitungsblock 56 nur Leseanforderungen
bearbeitet, die die Daten so wiedergewinnen sollen, wie sie zu dem Zeitpunkt
existierten, als der Schnappschuss gemacht wurde. Dieser Entscheidungsblock
kann überflüssig sein,
falls durch die Struktur und die Architektur der Verarbeitung garantiert
ist, dass nur solche Leseanforderungen zum Backup-Lese-Verarbeitungsblock 56 von 3 geschickt
werden.
-
Um
einen Datenblock so wiederzugewinnen, wie er zu dem Zeitpunkt existierte,
als der Schnappschuss gemacht wurde, muss ermittelt werden, wo sich
der Datenblock befindet. Wie bereits in Verbindung mit 4 beschrieben,
wird nachdem ein Schnappschuss gemacht wurde, wenn ein Datenblock
zum ersten Mal durch einen neuen Datenblock überschrieben werden soll, dieser
Datenblock in einen Schnappschussspeicher, wie dem Schnappschussspeicher 22 in 3,
kopiert. Dies bedeutet, dass wenn ein Datenblock niemals überschrieben wird,
die in der Massenspeichereinrichtung gespeicherten Daten die ursprünglichen
Daten, wie sie zum Zeitpunkt der Erzeugung des Schnappschusses existierten,
sind. Wurden die Daten jedoch einmal oder mehrmals überschrieben,
so werden die ursprünglichen
Daten in dem Schnappschussspeicher gespeichert. Der Entscheidungsblock 114 in 6 stellt
fest, ob der angeforderte Datenblock seit dem letzten Schnappschuss
verändert
wurde. Dies kann dadurch erreicht werden, dass ein Schnappschussabbild,
wie das Schnappschussabbild 52 der 3, geprüft wird,
um festzustellen, ob der Datenblock modifiziert wurde. Wie oben
beschrieben, identifiziert das Schnappschussabbild diejenigen Speicherstellen,
die sich seit der Erzeugung des Schnappschusses verändert haben.
-
Wurden
in der Speicherstelle seit dem Schnappschuss neue Daten gespeichert,
so gibt der Schritt 116 an, dass der Datenblock aus dem Schnappschussspeicher
abgerufen wird. Hat sich jedoch der Inhalt einer Speichersetelle
seit der Erzeugung des Schnappschusses nicht verändert, so gibt der Schritt 118 an,
dass der Datenblock aus der Massenspeichereinrichtung 20 abgerufen
wird. In jedem Falle wird der Datenblock durch Schritt 120 zurück zum anfordernden
Prozess geschickt.
-
Um
die Vorgänge
in 3–6 zur
Erzeugung eines Backups näher
zu erläutern,
wird in 7A und 7B ein
detailliertes Beispiel dargestellt. Zunächst wird auf 7A Bezug
genommen. Man erwäge
eine Gruppe von Datenblöcken 122 der Massenspeichereinrichtung 20,
die in den mit 1–6 nummerierten
Speicherstellen gespeichert sind. 7B zeigt,
dass auch die Backup-Speichereinrichtung 24 eine ähnliche
Gruppe von Datenblöcken 124 aufweist,
die ebenfalls in den mit 1–6
nummerierten Speicherstellen gespeichert sind. Zum Zeitpunkt T0 sind die in 122 gespeicherten
Datenblöcke
mit den in 124 gespeicherten Datenblöcken identisch. Es wird nun
wieder auf 7A Bezug genommen. Das Backup-Abbild 48 hat
sechs Abbildstellen 126, die den Speicherstellen 122 entsprechen.
Das Schnappschussabbild 52 weist ebenfalls sechs Abbildstellen 126 auf,
die den Speicherstellen 122 entsprechen. Wie in 7A dargestellt,
werden zum Zeitpunkt T0 die Abbildstellen 126 und 128 gelöscht.
-
Angenommen,
dass nach dem Zeitpunkt T0 die Datenblöcke 130 an
den Stellen 3 und 4 der Speicherstellen 122 gespeichert
werden sollen, dann werden ein oder mehrere Massenspeicher-Leseanforderungen
zum Massenspeicher-Lese-Schreib-Verar beitungsblock 42 in 3 geschickt,
damit Datenblöcke 130 in
die angemessenen Speicherstellen geschrieben werden. Unter Bezugnahme
auf 4 würde
die Massenspeicher-Leseanforderung
in der folgenden Weise verarbeitet werden.
-
Die
Entscheidungsblöcke 66, 76 und 78 würden in
Kombination miteinander feststellen, dass an dem Massenspeicher-Lese-Schreib-Verarbeitungsblock 42 gerade
eine Schreibanforderung anliegt. Der Ablauf würde somit diese drei Entscheidungsblöcke durchlaufen
und bei Entscheidungsblock 82 ankommen. Wie bereits beschrieben,
prüft der
Entscheidungsblock 82, ob ein Schnappschuss gemacht wurde.
Zu diesem Zeitpunkt wurde in dem Beispiel noch kein Schnappschuss
erzeugt. Der Ablauf würde daher
zu Schritt 88 übergehen,
in dem die angeforderten Datenblöcke
in das Massenspeichersystem geschrieben würden. Wiederum mit Bezug auf 7A würden die
Datenblöcke 130 somit
in den Speicherstellen 122 gespeichert und damit die Speicherstellen 132 erzeugt.
Wie dort angegeben, wurden die in den Stellen 3 und 4 gespeicherten
Datenblöcke
zu 3a und 4a modifiziert.
-
Wiederum
mit Bezug auf 4 gibt als nächstes der Schritt 90 an,
dass die Speicherstellen, in denen neue Daten gespeichert wurden,
als modifiziert angegeben werden sollen. Bei vielen Ausführungsformen
von Schnappschüssen
kann zu diesem Zweck ein Schnappschussabbild verwendet werden. In 7A wird
das Abbild 134 verwendet, und die Abbildstellen 3 und 4
wurden grau dargestellt, um anzuzeigen, dass die Daten in den Speicherstellen
3 und 4 gespeichert wurden. Man beachte, dass die Speicherstellen
in dem Backup-Abbild 48, angezeigt durch die Abbildstellen 126,
zu diesem Zeitpunkt unverändert
bleiben. Wieder mit Bezug auf 4 In Schritt 92 würde eine
Antwort auf eine Schreibanforderung gegeben und der Ablauf würde zum
Anfang zurückkehren,
um auf die nächste
Anforderung zu warten.
-
Das
Folgende nimmt wieder Bezug auf 7a. Man
nehme an, dass die nächste
Anforderung drei Datenblöcke 136 enthält, die
in den Stellen 3, 4 und 6 gespeichert werden sollen. Da noch kein Schnappschuss
gemacht wurde, wird die Anforderung in der gleichen Weise behandelt,
wie die vorhergehende Schreibanforderung, wobei der Ablauf die Entscheidungsblöcke 66, 76, 78 und 82 der 4 durchläuft und
Schritt 88 in 4 erreicht. Schritt 88 gibt
an, dass die neuen Daten in der Massenspeichereinrichtung gespeichert
sind, so dass die Speicherstellen 138 in 7A nunmehr
anzeigen, dass die in Stelle 3 gespeicherten Datenblöcke zu 3b
geändert, der
in Stelle 4 gespeicherte Datenblock zu 4b geändert und der in Stelle 6 gespeicherte
Datenblock zu 6a geändert
wurde. Wie bei der vorherigen Schreibanforderung werden dann die
Abbildstellen 140 aktualisiert, so dass sie anzeigen, dass
zusätzlich
zu den Stellen 3 und 4 auch die Stelle 6 geändert wurde. Die Abbildstellen 126 bleiben
unverändert.
-
Angenommen,
dass zu diesem Zeitpunkt in dem Beispiel das Backup-System oder
das Primärsystem
ein Backup initiiert. Der primäre
Backup-Verarbeitungsblock 54 der 3 wird dann
mit der Ausführung
wie in 5 beschrieben beginnen. Gemäß 5 würde die
Ausführung,
wenn das Backup von dem Backup-System initiiert wird, von dem Entscheidungsblock 94 zu
Schritt 100 übergehen.
Wird das Backup jedoch von dem Primärsystem initiiert, so geht
der Ablauf von Entscheidungsblock 96 zu Schritt 98 über, wo
eine Verbindung zum Backup-System hergestellt wird. In jedem Falle
würde der
Ablauf zu Schritt 100 übergehen.
In Schritt 100 identifiziert der primäre Backup-Verarbeitungsblock 54 einen
logisch konsistenten Backup-Status. Wie bereits erläutert, kann
dies in beliebiger Weise erfolgen, z. B. durch Beobachten der Aktivität in der
Massenspeichereinrichtung 20 oder mittels API.
-
Nach
der Identifizierung eines logisch konsistenten Backup-Zustandes, gibt Schritt 102 an, dass
das Signal zur Schnappschuss-Erzeugung gesendet wird. Wie vorher
beschrieben kann anstelle der Signalisierung, dass ein Schnappschuss
gemacht werden soll, das Mittel zur Aufbewahrung eines statischen
Schnappschusses direkt in Schritt 102 enthalten sein. In
der in 3 dargestellten Ausführungsform wird, wie in den 4–6 näher beschrieben,
wird in Schritt 102 die Schnappschussanforderung 68 der 3 zum
Massenspeicher-Lese-Schreib-Verarbeitungsblock 42 geschickt.
-
Bezug
nehmend auf 4 wird diese Schnappschuss-Anforderung
durch den Entscheidungsblock 66 bearbeitet, was zur Ausführung der Schritte 70, 72 und 74 führt. In
Schritt 70 wird das Schnappschuss-Abbild in das Backup-Abbild
kopiert. In 7A bedeutet dies, dass die Abbildstellen 140 in
die Abbildstellen 142 des Backup-Abbildes 48 kopiert
werden. Somit zeigen die Abbildstellen 142 an, dass in
den Stellen 3, 4 und 6 neue Daten gespeichert wurden. Wiederum mit
Bezug auf 4 wird in Schritt 72 das
Schnappschussabbild gelöscht,
und Schritt 74 löscht
den Schnappschussspeicher, wie vorher beschrieben. Die Ausführung in 4 kehrt dann
zum Anfang zurück
und wartet auf weitere Verarbeitung.
-
Angenommen,
dass an dem Massenspeicher-Lese-Schreib-Verarbeitungsblock 42 eine Schreibanforderung
ankäme,
derzufolge die Datenblöcke 144 der 7A in
den Speicherstellen 138 gespeichert werden sollen. Da es
ich hier um eine Schreibanforderung handelt, durchläuft die
Ausführung
die Entscheidungsblöcke 66, 76 und 78 zum Entscheidungsblock 82.
Anders als bei vorhergehenden Schreibanforderungen wurde nun zum
Zeitpunkt T1 ein Schnappschuss gemacht, wie
in 7A und 7B gezeigt.
Der Ablauf geht somit zu Entscheidungsblock 84 über.
-
Entscheidungsblock 84 stellt
fest, ob die in den zu überschreibenden
Speicherstellen gespeicherten Daten bereits im Schnappschussspeicher gespeichert
wurden. In diesem Beispiel sollen die Datenblöcke 144 in den Speicherstellen
1 und 3 gespeichert werden. Da die Speicherstellen 1 und 3 noch
nicht im Schnappschussspeicher untergebracht wurden, werden die
Speicherstellen 1 und 3 in Schritt 86 in den Schnappschussspeicher
kopiert. In 7A wird dies durch den Datenblock 146 angegeben,
der den Datenblock 1 enthält,
und Datenblock 148, der den Datenblock 3b enthält.
-
Nachdem
die Datenblöcke 146 und 148 im Schnappschussspeicher 22 aufbewahrt
worden sind, werden die neuen Datenblöcke in Schritt 88 in
die Massenspeichereinrichtung geschrieben. Wiederum mit Bezug auf 7A bedeutet
dies, dass die Datenblöcke 114 in
den Speicherstellen 138 gespeichert werden, um Speicherstellen 150 zu
erzeugen, in denen der Datenblock 1a den Datenblock 1, und der Datenblock
3c den Datenblock 3b überschrieben
hat. Schritt 90 in 4 gibt dann
an, dass die Datenblöcke
als modifiziert zu identifizieren sind. Somit werden die Abbildstellen 152 des
Schnappschussabbildes 52 modifiziert, so dass angezeigt
wird, dass die Speicherstelle 1 und Speicherstelle 3 neu gespeicherte
Daten enthalten. Dann wird eine Antwort auf die Schreibanforderung,
wie in Schritt 92 der 4 angegeben,
zurückgeschickt.
-
Wieder
mit Bezug auf 5: Der Schnappschuss wurde zum
Zeitpunkt T1 durch den Massenspeicher-Lese-Schreib-Verarbeitungsblock 42 der 3 gemäß Schritt 102 in 5 erstellt.
Schritt 104, Schritt 106 und Entscheidungsblock 108 geben dann
an, dass die Datenblöcke,
die vor der Erzeu gung des Schnappschusses geändert wurden, zu Sendepaketen
zusammengestellt und an das Backup-System geschickt werden sollten.
Die zu übermittelnden
Datenblöcke
werden durch die in dem Backupabbild 48 enthaltene Information
angegeben.
-
Wiederum
mit Bezug auf 7A: Die Abbildstellen 142 des
Backup-Abbildes 48 zeigen, dass die Speicherstellen 3,
4 und 6 vor dem zum Zeitpunkt T1 gemachten
Schnappschuss geändert
wurden und zum Backup-System geschickt werden sollten. Eine Prüfung der
Speicherstellen 150 und des Datenblocks 148, der
im Schnappschussspeicher 22 gespeichert ist, zeigt, dass
sich einer der Datenblöcke im
Schnappschussspeicher befindet, während sich der Rest der Datenblöcke im Massenspeichersystem befindet.
Schritt 104 der 5 fordert dann, dass die in
den Speicherstellen 3, 4 und 6 gespeicherten Datenblöcke durch
den Backup-Lese-Verarbeitungsblock 56 der 3 abgerufen
werden.
-
Der
Backup-Lese-Verarbeitungsblock 56 verarbeitet diese, von
dem primären
Backup-Verarbeitungsblock 54 erhaltenen Anforderungen wie
in 6 angegeben. Angefordert werden die in den Speicherstellen
3, 4 und 6 gespeicherten Datenblöcke.
Im Hinblick auf den in der Speicherstelle 3 gespeicherten Datenblock
stellt der Entscheidungsblock 114 von 6 fest,
dass sich der in der Speicherstelle 3 gespeicherte Entscheidungsblock
seitdem der Schnappschuss gemacht wurde, verändert hat. Dies liegt daran,
dass der mit 3c bezeichnete Datenblock in Speicherstelle 3 gespeichert
wurde, nachdem der Schnappschuss gemacht wurde, jedoch bevor der
Datenblock für
den Schnappschuss abgerufen wurde. Schritt 116 liest dann
den Datenblock 148 aus dem Schnappschussspeicher 22 aus und
schickt den Datenblock 3b zum primären Backup-Verarbeitungsblock 54,
wie in 6, Schritt 120, dargestellt.
-
Entscheidungsblock 114 von 6 liest dann
in Schritt 118 die in den Speicherstellen 4 und 6 gespeicherten
Datenblöcke
aus der Massenspeichereinrichtung aus und schickt sie in Schritt 120 zum primären Backup-Verarbeitungsblock 54 zurück. Dieser
Vorgang ist in 7A graphisch dargestellt, in der
Datenblöcke 152 durch
Abrufen des Datenblocks 3b aus dem Schnappschussspeicher 22 und
des Datenblocks 4b und 6a aus den Speicherstellen 150 zusammengestellt
werden. Datenblöcke 152 werden dann
zum Backup-System über die
Backup-Transportverbindung 16 transferiert. Dies ist in 7A und 7B graphisch
dargestellt.
-
Wie
unten näher
beschrieben, kann es, wenn die Datenblöcke durch ein Backup-System
erhalten werden, wünschenswert
sein, die Datenblöcke,
sobald sie empfangen werden, in einem Backup-Capture-Puffer, wie
dem Backup-Capture-Puffer 26 in 3, zu speichern.
Dies ermöglicht,
dass alle Datenblöcke
erhalten werden, bevor sie an die Backup-Speichereinrichtung 24 angelegt
oder bevor sie als inkrementelles Backup gesichert werden. In 7B werden
die Datenblöcke 152 durch
das Backup-System empfangen und den Speicherstellen 124 zugeführt, um
Speicherstellen 154 zu erzielen. Speicherstellen 154 sind
mit den Speicherstellen 138 des Primärsystems identisch (7A).
Man erinnere, dass die Speicherstellen 138 den Zustand
der Massenspeichereinrichtung 20 zum Zeitpunkt T1, als der Schnappschuss gemacht wurde, repräsentierten. Also
sind die zwischen dem Zeitpunkt T0 und dem Zeitpunkt
T1 aufgetretenen Änderungen nun im Backup-System
gesichert und der Backup-Speichereinrichtung 24 zugeführt worden,
um die Backup-Speichereinrichtung 24 auf einen Stand mit
der Massenspeichereinrichtung 20 zum Zeitpunkt T1 zu bringen.
-
Wieder
mit Bezug auf 7A: Angenommen, dass die Datenblöcke 156 nun
in die Speicherstellen 150 geschrieben wer den sollen. Wie
in der Zeichnung dargestellt, enthalten die Datenblöcke 156 eine Änderung
in den in Speicherstellen 1, 4 und 6 gespeicherten Datenblöcken. Der
Massenspeicher-Lese-Schreib-Verarbeitungsblock 42 handhabt dann
das Schreiben der in den Stellen 4 und 6 zu speichernden Datenblöcke wie
oben beschrieben, wobei die ursprünglichen Datenblöcke, die
in diesen Stellen zum Zeitpunkt T1 gespeichert
wurden (Datenblock 4b und Datenblock 6a) im Schnappschussspeicher 22 gespeichert
werden. Die neuen Datenblöcke 4c
und 6b werden dann in die Massenspeichereinrichtung 20 geschrieben.
-
Bezüglich des
in Speicherstelle 1 zu speichernden Datenblocks geht die Ausführung in 4 voran
bis zum Entscheidungsblock 84. Man erinnere, dass dieser
Entscheidungsblock prüft,
ob der zum Zeitpunkt des Schnappschusses in der Speicherstelle gespeicherte
Datenblock vorher im Schnappschussspeicher gesichert wurde. Bezüglich des
in der Speicherstelle 1 gespeicherten Datenblocks wurde der Datenblock
bereits im Schnappschussspeicher 22 gesichert, wie durch
Datenblock 146 von 7A angegeben.
In 4 ist somit angegeben, dass Schritt 86 übersprungen
wird und die neuen Daten einfach in die Massenspeichereinrichtung
geschrieben werden. In 7A führt dies dazu, dass der Datenblock
1b den Datenblock 1a ersetzt, so dass der Datenblock 1a verloren
geht.
-
Man
erinnere, dass mit der vorliegenden Erfindung nur die Datenblöcke derjenigen
Speicherstellen transferiert werden, die sich seit dem letzten Backup
verändert
haben. Darüber
hinaus werden die Datenblöcke
so transferiert, wie sie zu dem Zeitpunkt existieren, zu dem der
Schnappschuss gemacht wird. Wenn eine bestimmte Speicherstelle in
der Massenspeichereinrichtung also fünf unterschiedliche Datenblöcke aufweist,
die seit dem Zeitpunkt des letzten Backups darin ge speichert sind,
wird nur der zuletzt (z. B. direkt vor der Erstellung des Schnappschusses)
gespeicherte Datenblock zum Backup-System transferiert. Dies liegt
daran, dass das Backup-System bei der Erzeugung eines Backups nur
ein logisch konsistentes Backup aufbewahrt. Anders ausgedrückt, bewegt
sich der Backup-Speicher von einem logisch konsistenten Zustand
zu einem Zeitpunkt zu einem logisch konsistenten Zustand zu einem
anderen Zeitpunkt. Das Bewahren logisch konsistenter Backups zu
diskreten Zeitpunkten bietet gegenüber den Systemen des Standes
der Technik bedeutende Vorteile.
-
Man
erwäge
beispielsweise ein System des Standes der Technik, dass sämtliche,
in einem Massenspeichersystem durchgeführten Änderungen erfasst. Ein derartiges
System versucht, jeden Schreibvorgang sowohl zur Massenspeichereinrichtung
als auch zur Backup-Speichereinrichtung zu schicken. In der Theorie
wird hierdurch die Backup-Speichereinrichtung zu einer identischen
Kopie der Massenspeichereinrichtung. Jedoch führt diese Verfahrensweise zu
Problemen. Falls das Primärsystem
während
einer Schreibaktualisierung abstürzt,
so kann die Massenspeichereinrichtung hierdurch in einem logisch
inkonsistenten Zustand zurückgelassen
werden. Wenn die Backup-Speichereinrichtung jede Änderung
verfolgt, die in der Massenspeichereinrichtung durchgeführt wird,
so kann bei einem Absturz des Primärsystems auch die Backup-Speichereinrichtung
in dem gleichen logisch inkonsistenten Zustand zurückbleiben.
Dieses Beispiel macht das Problem deutlich, dass besteht, wenn ein
bekannter logisch konsistenter Zustand verlassen wird, bevor ein
zweiter logisch konsistenter Zustand identifiziert wurde. Die vorliegende
Erfindung vermeidet dieses Problem dadurch, dass sie einen vorherigen
logisch konsistenten Zustand solange erhält, bis ein neuer logisch konsistenter
Zustand identifiziert wurde, und dann die Backup-Speichereinrichtung
von dem vorhergehenden logisch konsistenten Zustand zum nächsten logisch konsistenten
Zustand bewegt, und zwar ohne den Transit über logisch inkonsistente Zustände zwischen
den beiden logisch konsistenten Zuständen.
-
Wiederum
mit Bezug auf 7A: Werden den Speicherstellen 150 die
Datenblöcke 156 zugeführt, so
ergeben sich die Speicherstellen 158. Abbildstellen 152 werden
dann aktualisiert, so dass sie anzeigen, dass die seit dem Zeitpunkt
T1 geänderten Speicherstellen
nunmehr die Speicherstellen 4 und 6 zusätzlich zu den Speicherstellen
1 und 3 enthalten. Dies ist in 7A durch
die Abbildstellen 160 des Schnappschussspeichers 152 dargestellt.
-
Angenommen,
dass nun ein zweites Backup von der Massenspeichereinrichtung 20 gemacht
werden soll. Das Backup wird wie oben in 5 beschrieben
erzeugt, in welcher die Ausführung
zu Schritt 100 übergeht,
in dem ein logisch konsistenter Zustand identifiziert wird. Wir
nehmen an, dass, in 7A, dieser logisch konsistente
Zustand zum Zeitpunkt T2 identifiziert wurde.
Schritt 102 in 5 würde dann signalisieren, dass
ein Schnappschuss zum Zeitpunkt T2 gemacht
werden soll. Wie vorgehend in Verbindung mit dem zum Zeitpunkt T1 erzeugten Schnappschuss beschrieben, würde der Massenspeicher-Lese-Schreib-Verarbeitungsblock 42 eine
Schnappschussanforderung, wie der Schnappschussanforderung 68 in 3,
erhalten und das Schnappschussabbild in das Backup-Abbild in Schritt 70 kopieren.
Dies wird in 7A dargestellt, in der die Abbildstellen 162 des
Backupabbildes 48 so geändert
sind, dass sie mit den Abbildstellen 160 des Schnappschussabbildes 52 übereinstimmen.
-
Die
Schritte 72 und 74 von 4 geben dann
an, dass das Schnappschussabbild und der Schnappschussspeicher gelöscht werden
sollten. In 7A wird das Schnappschussabbild,
wie durch die Abbildstellen 164 des Schnappschussabbildes 52 angezeigt,
gelöscht.
Der Schnappschussspeicher 22 zeigt jedoch, dass immer noch
Daten darin gespeichert sind. Dies verdeutlicht, dass sich die Datenblöcke immer
noch physisch in dem Schnappschussspeicher 22 befinden
können,
vorausgesetzt, dass der Index zum Schnappschussspeicher 22 gelöscht wurde,
so dass der Schnappschussspeicher 22 keine Datenblöcke zu enthalten
scheint.
-
Angenommen,
dass sich in den Speicherstellen 158, nachdem der Schnappschuss
zum Zeitpunkt T2 gemacht wurde, keine Datenblöcke befinden,
so werden Datenblöcke 166 aus
den Speicherstellen 158 gemäß dem in 6 beschriebenen
Prozess ausgelesen. Die Datenblöcke
werden dann zu Sendepaketen zusammengepackt und über die Backup-Transportverbindung 16,
wie in Schritt 104, Schritt 106 und Entscheidungsblock 108 in 5 gezeigt,
zum Backup-System geschickt. Wie in 7B dargestellt,
werden die Datenblöcke 166 dann
im Backup-Schnappschusspuffer 26 gespeichert, bis alle
Datenblöcke
empfangen wurden. Nachdem die Datenblöcke 166 durch das
Backup-System empfangen worden sind, werden sie den Speicherstellen 154 zugeführt, was
zu den Speicherstellen 168 führt, die eine identische Kopie
der Speicherstellen 158 des Primärsystems darstellen (7A).
-
Als
Nächstes
wird der Mechanismus zur Ermittlung von Unterschieden zwischen der
Massenspeichereinrichtung 20 und der Backup-Speichereinrichtung 24 beschrieben.
Erfindungsgemäße Ausführungsformen
können
ein Mittel zur Identifizierung von Unterschieden zwischen einer
Massenspeichereinrichtung und einer Backup-Speichereinrichtung umfassen.
Ein derartiges Mittel kann bei der Wiederherstellung nach Abstürzen, die
im Primärsystem
oder Backup-System aufgetreten sind, sehr nützlich sein. Beispielsweise
ist aus dem vorhergehenden Beispiel und den obigen Beschreibungen
ersichtlich, dass die vorliegende Erfindung Änderungen verfolgt, die in der Massenspeichereinrichtung
durchgeführt
wurden, und zwar zwischen einem ersten Zeitpunkt, wie dem Zeitpunkt,
als das letzte Backup durchgeführt wurde,
und einem zweiten Zeitpunkt, wie dem Zeitpunkt, zu dem ein aktuelles
Backup durchgeführt werden
soll. Soll zu einem zweiten Zeitpunkt ein Backup durchgeführt werden,
so bewahrt das Primärsystem
einen Schnappschuss wenigstens derjenigen Speicherstellen auf, in
die neue Daten geschrieben wurden. Die Datenblöcke werden dann ausgelesen
und zum Backup-System transferiert. Während des Transferprozesses
verfolgt das System auch die Änderungen,
die durchgeführt
werden, so dass wenn ein weiteres Backup gemacht werden soll, alle
vom letzten Backup bis zum derzeitigen Backup erfolgten Änderungen
identifiziert werden können.
-
Das
oben beschriebene Verfahren funktioniert solange sehr gut, wie es
bei der Verfolgung von in der Massenspeichereinrichtung durchgeführten Änderungen
keine Unterbrechung gibt. Ergibt sich jedoch eine Situation, in
der das Primärsystem
nicht identifizieren kann, welche Änderungen im Massenspeichersystem
seit dem letzten Backup durchgeführt
wurden, so muss ein Mechanismus vorhanden sein, der es ermöglicht,
Unterschiede zwischen der Massenspeichereinrichtung und der Backup-Speichereinrichtung
zu identifizieren. Durch Identifizieren der Unterschiede zwischen
der Massenspeichereinrichtung und der Backup-Speichereinrichtung,
ist es möglich,
diejenigen Speicherstellen, die sich unterscheiden, zu identifizieren.
Die in diesen Speicherstellen gespeicherten Daten können dann
vom primären
System zum Backup-System transferiert werden, um das Backup-System
auf einen Stand mit dem Primärsystem
zu bringen.
-
Ein
Mechanismus zur Identifizierung von Unterschieden zwischen einer
Massenspeichereinrichtung und einer Backup-Speichereinrichtung besteht darin, sämtliche
Datenblöcke
in der Massenspeichereinrichtung und der Backup-Speicherein richtung
zu vergleichen. Dies erfordert entweder, dass die Datenblöcke der
Massenspeichereinrichtung zum Backup-System oder die Datenblöcke der
Backup-Speichereinrichtung zum Primärsystem transferiert werden.
Unter bestimmten Umständen
kann dies völlig adäquat sein.
Jedoch erfordert dieses Verfahren eine recht große Bandbreite für die Backup-Transportverbindung 16.
Wenn es sich allerdings bei der Backup-Transportverbindung 16 um
eine Kommunikationsverbindung mit relativ niedriger Bandbreite handelt,
so wird der Transport sämtlicher
Datenblöcke entweder
der Massenspeichereinrichtung oder der Backup-Speichereinrichtung über die
Backup-Transportverbindung 16 unpraktikabel. In einer solchen
Situation muss ein Mechanismus vorhanden sein, der die Menge an
Daten, die über
die Backup-Transportverbindung 16 transferiert werden,
reduziert.
-
Um
die Menge der Daten zu reduzieren, die erforderlich ist, um Unterschiede
zwischen einer Massenspeichereinrichtung und einer Backup-Speichereinrichtung
zu identifizieren, können
erfindungsgemäße Ausführungsformen
ein Mittel zur Berechnung eines Auszuges ("Digest") aus einem Datenblock umfassen. So,
wie hier verwendet, bedeutet der Begriff Auszug eine Gruppe von
Datenbits, die aus dem Datenblock generiert wird und den Datenblock
reflektiert. Ist der Auszug kleiner als ein Datenblock und reflektiert
der "Auszug" die Daten eines Datenblocks,
so können
Unterschiede zwischen einer Massenspeichereinrichtung und einem
Backup-Speicher durch Vergleichen von Auszügen identifiziert werden. Ein
solches Verfahren ist in 8 dargestellt.
-
In 8 läuft das
Verfahren zur Identifizierung von Unterschieden zwischen einer Massenspeichereinrichtung,
wie z. B. der Massenspeichereinrichtung 20, und einer Backup-Speichereinrichtung, wie
z. B. Backup-Speichereinrichtung 24, wie folgt ab. Das
Backup-System ruft einen Datenblock, wie Datenblock 170,
von der Backup-Speichereinrichtung 24 ab. Der Auszug 172 wird
dann durch Mittel für
die Generierung eines Auszuges, z. B. dem Auszug-Generierungsblock 174,
berechnet. Der Auszug 172 wird über die Backup-Transportverbindung 16 transportiert
und durch das Primärsystem
empfangen. Das Primärsystem
ruft einen Datenblock, der in der entsprechenden Speicherstelle
des Massenspeichers 20 gespeichert ist (z. B. Datenblock 176)
ab. Der Auszug 178 wird durch ein Auszug-Generierungsmittel,
z. B. Auszug-Generierungsblock 182, erzeugt. Der Auszug 178 wird
dann durch Vergleichsblock 182 mit dem empfangenen Auszug 172 verglichen.
Wenn die Auszüge übereinstimmen,
so kann angenommen werden, dass die Datenblöcke, die in den entsprechenden
Speicherstellen gespeichert sind, identisch sind. Stimmen die Auszüge nicht überein,
so sind die in den entsprechenden Speicherstellen gespeicherten
Datenblöcke
unterschiedlich. Ein ähnlicher
Mechanismus kann dazu verwendet werden, Unterschiede in Gruppen
von Datenblöcken
zu entdecken. Beispielsweise kann ein Auszug für eine Mehrzahl von verketteten
Datenblöcken
berechnet werden. Durch Unterschiede zwischen den Auszügen würden dann
Unterschiede zwischen Gruppen von Datenblöcken identifiziert.
-
Aus
der obigen Beschreibung der 8 ist eine
Reihe von wünschenswerten
Eigenschaften von Auszügen
ersichtlich. Im Idealfall hat ein Auszug eine geringe Länge, um
so die Menge an Daten, die zwischen dem Primärsystem und dem Backup-System transferiert
werden müssen,
zu minimieren. Zweitens sollte die Wahrscheinlichkeit, dass zwei
verschiedene Datenblöcke
den gleichen Auszug generieren, gering sein, so dass die Wahrscheinlichkeit,
zwei verschiedene Datenblöcke
als gleich zu identifizieren, obwohl sie tatsächlich unterschiedlich sind,
gering ist. Schließlich
wäre es
wünschenswert,
wenn auch nicht erforderlich, die Rechenlast, die zur Berechnung
des Auszuges benötigt
wird, zu reduzieren, so dass der Prozess des Vergleichens zwischen
der Massenspeichereinrichtung und der Backup-Speichereinrichtung
nicht durch die von dem Primärsystem
oder dem Backup-System ausgeführten
Berechnungen, sondern durch die Bandbreite der Backup-Transportverbindung 16 bestimmt
wird.
-
Zur
Berechnung eines geeigneten Auszugs kann eine große Vielfalt
von Funktionen Anwendung finden. Die einfachste und vielleicht bekannteste Form
des Auszugs ist eine zyklische Blockprüfung oder CRC. CRC-Werte werden üblicherweise
verwendet, um Fehler in einem Datenblock zu entdecken, der über eine
Kommunikationsverbindung übermittelt
wird oder in einer Speichereinrichtung gespeichert ist. Kryptographisch
starke Hash-Funktionen (auch als Digests (Auszüge), Fingerprinte (Fingerabdrücke) oder
Message Authentication Code (Nachrichtenauthentisierungscode) bezeichnet)
wurden ebenfalls entwickelt, um eine ähnliche Funktion auszuüben. Es
kann jedes beliebige Verfahren eingesetzt werden, vorausgesetzt,
dass der Auszug eine ausreichend hohe Wahrscheinlichkeit aufweist, dass
Unterschiede zwischen zwei Datenblöcken entdeckt werden.
-
Wie
oben beschrieben, wird zur Identifizierung von Unterschieden zwischen
der Massenspeichereinrichtung 20 und der Backup-Speichereinrichtung 24 der
Unterschiede identifizierende Verarbeitungsblock 58 verwendet.
Es wird nun auf 9 Bezug genommen, in der die
Details einer Ausführungsform
dargestellt werden, in welcher der Unterschiede identifizierende
Block 58 realisiert ist. Bei dieser Ausführungsform
wird angenommen, dass die Auszüge vom
Backup-System zum Primärsystem
transferiert werden, und dass das Primärsystem die Auszüge vergleicht,
um festzustellen, ob sie übereinstimmen.
-
Wie
in Schritt 184 der 9 dargestellt,
besteht der erste Schritt darin, eine Verbindung zum Backup-System
herzustellen. In Schritt 186 wird dann der erste Datenblock
der Massenspeichereinrichtung 20 oder der erste Datenblock des
zu prüfenden
Teils der Massenspeichereinrichtung 20, ausgelesen. Der
Auszug für
den Datenblock wird dann in Schritt 188 berechnet.
-
In
Schritt 190 wird dann der Auszug, der von dem Backup-System für die in
der entsprechenden Speicherstelle gespeicherten Daten berechnet
wurde, empfangen. Die Auszüge
werden dann durch den Entscheidungsblock 192 verglichen.
Stimmen die Auszüge
nicht überein,
so wird angenommen, dass die Datenblöcke ebenfalls nicht übereinstimmen,
und es kann angenommen werden, dass der Datenblock in der Massenspeichereinrichtung 20 seit
dem durch die Backup-Speichereinrichtung 24 erfassten Backup verändert wurde.
Dieser Datenblock der Massenspeichereinrichtung 20 wird
dann in Schritt 194 als seit dem letzten Backup geändert identifiziert.
Wiederum mit Bezug auf 3: Wird der Unterschiede identifizierende
Block 58 dazu verwendet, nach einem Absturz das Schnappschussabbild 52 zu
rekonstruieren, so kann der besagte Block die Ergebnisse des Vergleichs
in dem Schnappschussabbild 52 oder dem Backup-Abbild 48 speichern.
-
Gibt
es mehr Datenblöcke,
die verglichen werden sollen, so lesen der Entscheidungsblock 196 und
der Schritt 198 den nächsten
Datenblock aus und lassen die Ausführung zu Schritt 188 zurückkehren,
wo der Auszug für
den nächsten
Datenblock berechnet wird. Müssen
keine weiteren Datenblöcke mehr
verglichen werden, so beendet Schritt 200 die Verbindung
zum Backup-System und der Vergleichsvorgang ist vollständig.
-
Es
ist ersichtlich, dass wenn der Auszug wesentlich kleiner ist als
ein Datenblock oder eine Gruppe von Datenblöcken, die Menge an Daten, die
zwischen dem Primärsystem
und dem Backup-System transferiert werden müssen, um Unterschiede zwischen
der Massenspeichereinrichtung und der Backup-Speichereinrichtung zu identifizieren,
in hohem Maße
mini miert werden kann. Wenn z. B. ein Datenblock 512 Bytes und ein
Auszug zwei Bytes lang ist, so können
die transferierten Daten um einen Faktor von 256 reduziert werden.
Dies kann zu erheblicher Zeitersparnis führen. Hierdurch wird es ebenfalls möglich, eine
Backup-Speichereinrichtung, die sich an einem entfernten Ort befindet,
unter Verwendung einer Wählkommunikationsverbindung,
die nur eine relativ geringe Bandbreite hat, mit einer Massenspeichereinrichtung
zu vergleichen.
-
Im
Folgenden wird auf 10 Bezug genommen, in der die
Verarbeitung bei einer Ausführungsform
des Backup-System-Verarbeitungsblocks 60 von 3 dargestellt
ist. Hierbei handelt es sich um die Verarbeitung, die im Backup-System
stattfindet. Die in 10 dargestellte Verarbeitung
ist aus der vorangehenden Besprechung heraus leicht verständlich und
stellt die komplementäre
Verarbeitung zum primären
Backup-Verarbeitungsblock 54 und dem Unterschiede identifizierenden
Verarbeitungsblock 58 dar.
-
Der
Entscheidungsblock 202 in 10 stellt fest,
ob der Unterschiede identifizierende Verarbeitungsblock 58 versucht,
die Unterschiede zwischen der Massenspeichereinrichtung 20 und
der Backup-Speichereinrichtung 24 zu ermitteln. Sollen
die Unterschiede identifiziert werden, so geht die Ausführung zu
Schritt 204 über,
in welchem der erste Datenblock des letzten bekannten Backup-Zustandes ausgelesen
wird. In Schritt 206 wird denn der Auszug für diesen
Datenblock berechnet und in Schritt 208 der Auszug zum
Primärsystem
transferiert. Dieser Auszug wird von dem Unterschiede identifizierenden Verarbeitungsblock 58 in
Schritt 190 der 9 empfangen. Der Entscheidungsblock 210 prüft dann,
in Schritt 212, ob noch mehr Datenblöcke existieren und falls dies
der Fall ist, liest er den nächsten
Datenblock aus und lässt
die Verarbeitung zu Schritt 206 zurückkehren, so dass der Auszug
für diesen
Datenblock berechnet werden kann. Wenn alle Datenblöcke bearbeitet
wurden, kehrt der Ablauf zum Anfang zurück.
-
Die
Entscheidungsblöcke 214 und 216 der 10 stellen
fest, ob ein Backup entweder durch das Backup-System oder durch
das Primärsystem
initiiert wurde. Die Entscheidungsblöcke sind analog zu den Entscheidungsblöcken 94 und 96 der 5. Wenn
das Backup durch das Backup-System initiiert werden soll, so wird
in Schritt 218 eine Verbindung zum Primärsystem hergestellt. Wird das
Backup durch das Primärsystem
initiiert, so wurde die Verbindung bereits vorher hergestellt und
der Ablauf kann direkt zu Schritt 220 übergehen.
-
Schritt 220 empfängt, unter
Verwendung des geeigneten Protokolls, ein Paket vom Primärsystem. Dieses
Paket wird in Schritt 106 der 5 zum Backup-System
transferiert. Das Paket enthält
einen oder mehr Datenblöcke
oder Teile davon – abhängig von der
Größe des Datenblocks
in Bezug auf die Größe und das
Format des Pakets. In Schritt 222 werden dann die erhaltenen
Datenblöcke
in einem Backup-Erfassungsmittel, wie dem Backup-Erfassungspuffer 26,
gepuffert.
-
Das
Puffern der empfangenen Daten, bis alle Datenblöcke erhalten wurden, ist ein
wichtiger Schritt in der vorliegenden Erfindung. Wie in dieser Anmeldung
durchgehend hervorgehoben, werden mit der vorliegenden Erfindung
nur Datenblöcke
transferiert, die in Speicherstellen gespeichert sind, in denen
seit dem letzten Backup neue Daten gespeichert worden sind. Weiterhin
sind die transferierten Daten diejenigen Daten, die in den besagten
Stellen zu dem Zeitpunkt gespeichert werden, an dem der Schnappschuss
gemacht wird. Somit wird nicht die zeitliche Abfolge der Änderungen
transferiert, sondern nur das Endergebnis der gesamten zeitlichen
Abfolge von Änderungen
seit dem letzten Backup. Dies bedeutet, dass die Zuführung nur
eines Teils der zu transferierenden Datenblöcke zu einem logisch inkonsistenten
Zustand führen
kann. Es ist daher nicht wünschenswert,
nur einen Teil der Datenblöcke,
die zwischen dem primären
System und dem Backup-System zu transferieren sind, für ein einzelnes Backup
zuzuführen.
Werden die Datenblöcke,
sobald sie empfangen werden, der Backup-Speichereinrichtung zugeführt und
das Backup-System oder das Primärsystem
stürzt
während
des Transfers ab, so kann die Backup-Speichereinrichtung in einem
logisch inkonsistenten Zustand zurückbleiben. Aus diesem Grunde
wird es derzeit bevorzugt, die empfangenen Datenblöcke an einer
temporären
Stelle zu puffern, bis alle Datenblöcke empfangen worden sind.
Die Datenblöcke
können
dann alle zugleich der Backup-Speichereinrichtung zugeführt, oder
als inkrementelles Backup gesichert werden.
-
Der
Entscheidungsblock 224 stellt sicher, dass alle Datenblöcke empfangen
wurden. Sobald alle Datenblöcke
empfangen wurden, prüft
der Entscheidungsblock 226, ob ein vollständiger Satz
empfangen wurde. Dieser vollständige
Satz enthält
alle Änderungen,
die seit dem letzten Backup aufgetreten sind. wurde kein vollständiger Satz
erhalten, so sollten geeignete Maßnahmen getroffen werden. Beispielsweise
zeigt Schritt 228, dass der Backup-Satz verworfen und nicht
der Massenspeichereinrichtung zugeführt werden sollte. Dies ist
aus den oben beschriebenen Gründen
von Bedeutung. Jedoch können
vor dem Verwerfen eines Backup-Sets zusätzliche Schritte unternommen
werden, um etwaige Änderungen,
die in dem Satz fehlen, zu erhalten. Beispielsweise kann das Backup-System
den Kontakt zum Primärsystem
initiieren und den Transfer der fehlenden Änderungen anfordern. Wenn das
Primärsystem
derzeit nicht zur Verfügung
steht, so kann möglicherweise
der partielle Satz separat gespeichert werden, bis der Kontakt mit
dem Primärsystem wieder
hergestellt werden kann. Zu diesem Zeitpunkt kann das Backup-System
das Primärsystem
darüber informieren,
welche Änderungen
empfan gen wurden und welche Änderungen
noch nicht transferiert wurden. Durch solche Versuche, fehlende Änderungen zu
erhalten, kann die Menge an Daten, die zwischen dem Primärsystem
und dem Backup-System retransferiert werden müssen, reduziert werden. Können die Änderungen
jedoch nicht gewonnen werden, so sollte der gesamte Satz verworfen
und ein neuer Satz vom Primärsystem
erhalten werden.
-
Wurde
ein vollständiger
Satz Änderungen
erhalten, so gibt Schritt 230 an, dass die Änderungen unter
Verwendung des gewünschten
Verfahrens verarbeitet werden sollten. In dieser Beschreibung wurde
durchweg auf die Zuführung
einer Gruppe von Änderungen
zur Backup-Speichereinrichtung Bezug genommen, die das Ziel hat,
den Zustand der Backup-Speichereinrichtung
auf den Stand eines bestimmten Zeitpunkts zu bringen. Abgesehen
von der Zuführung
in der beschriebenen Weise können
die Änderungen
auch als inkrementelles Backup gespeichert werden. Durch Sichern
der Änderungen
als inkrementelles Backup können
mehrere vergangene Backup-Zustände
gespeichert werden. Auf diese Weise stehen, falls es erforderlich
sein sollte, Daten aus dem Backup-System wiederzugewinnen, mehrere Backup-Zustände zur
Wahl. Auch Kombinationen der oben erwähnten Verfahren können Verwendung finden.
Beispielsweise können
mehrere inkrementelle Backups aufbewahrt werden und dann die inkrementellen
Backups auf einen Anfangszustand angewendet werden, um die Backup-Einrichtung
auf den Stand eines bestimmten Zeitpunkts zu bringen.
-
Die
vorliegende Erfindung kann in anderen spezifischen Formen ausgeführt werden,
ohne von den wesentlichen Merkmalen abzuweichen. Die hier beschriebenen
Ausführungsformen
sind in jeder Hinsicht als von lediglich beispielhafter und nicht
beschränkender
Natur zu verstehen. Der Schutzumfang der Erfindung wird daher vielmehr
durch die beigefügten
Ansprüche
angegeben als durch die vorhergehende Beschreibung.
-
Alle Änderungen,
die nach Bedeutung und Umfang als Äquivalente der Ansprüche anzusehen sind,
fallen unter den Schutzumfang der Ansprüche.
-
Die
Ansprüche
lauten wie folgt: