-
Gebiet
-
Die
vorliegende Erfindung bezieht sich auf Beseitigung bzw. Entfernung,
und insbesondere, jedoch nicht ausschließlich auf das Entfernen von
Daten aus in einer Einzelinstanzen-Archivierung und/oder aus einer
Sicherungsumgebung (Backup).
-
Hintergrund
-
In
Datenarchiv- und/oder Backup-Umgebungen besteht oft ein Bedarf daran,
viele Datenobjekte innerhalb eines Archivierungs-/Backup- bzw. Sicherungssystems
zu speichern. Solche Datenobjekte müssen möglicherweise für eine bestimmte
Zeitdauer aufbewahrt werden, oder bis eine bestimmte Sache abgeschlossen
worden ist. Mitunter kann ein Regelwerk erfordern, daß alle Dokumente
für eine
gewisse minimale Zeitdauer aufbewahrt werden. Ein Beispiel einer
solchen Regelung ist das Datenhaltegebot, das in dem US Sarbanes-Oxley
Act von 2002 festgelegt ist.
-
In
einigen Datenarchiv- und/Backupsystemen sind Dateien möglicherweise
Gegenstand einer Einzelinstanzbehandlung, um zu vermeiden, daß das System
in verschwenderischer Weise mehrere Kopien desselben Dokuments speichert.
Demnach kann ein einzelnes, gespeichertes Dokument in dem Archiv-/Backupsystem
aus einer Anzahl unterschiedlicher Quellen zu unterschiedlichen
Zeitpunkten stammen.
-
Bei
einigen Datenarchiv- und/oder Backupsystemen werden große Dateien
in einer Anzahl von Einheiten gleicher Größe aufgespalten, die üblicherweise
als Segmente bezeichnet werden. Auf diese Weise muß ein späterer Archivier/Backupvorgang, wenn
Daten an eine Datei angehängt
werden, die sich bereits im Archiv befindet bzw. gesichert worden ist,
ein späterer
Archivier/Backupvorgang lediglich Segmente erzeugen, die den neuen
Daten entsprechen.
-
Die
vorliegende Erfindung ist zumindest teilweise unter Berücksichtigung
der Nachteile und Einschränkungen
der konventionellen Systeme entwickelt worden.
-
Zusammenfassung
-
Demnach
kann ein System, ein Verfahren und eine Vorrichtung bereitgestellt
werden, um ein Datenobjekt in die Lage zu versetzten, aus einem Speicher
für Einzelinstanzen
von Datenobjekten in einer solchen Weise entfernt zu werden, daß sichergestellt
ist, daß nur
Datenobjekte, auf welche alle Hinweise entfernt worden sind, auch
tatsächlich
aus dem Speicher entfernt werden. Dadurch kann eine Konsistenz und
Zuverlässigkeit
der Speicherung bzw. des Speichers aufrechterhalten werden, während es
erlaubt, daß ein
Datenobjekt, welches wirklich gelöscht werden muß, aus dem
Speicher entfernt wird.
-
Gemäß einem
ersten Aspekt stellt die vorliegende Erfindung ein Backupsystem
bereit, welches in der Lage ist, Dateien oder Dateisegmente unter Verwendung
eines Speicherschemas für
Einzelinstanzen zu verwenden. Das Backup- bzw. Sicherungssystem
kann einen Metadatenspeicher aufweisen, der in der Lage ist, Metadaten
zu speichern, die sich auf eine Datei beziehen, wobei jeder Eintrag
in den Metadatenspeicher einen aus der Datei berechneten Fingerabdruck
umfaßt,
auf welchen der Eintrag sich bezieht und der für den Inhalt dieser Datei einzigartig
bzw. eindeutig ist. Das Backupsystem kann auch einen Inhaltsspeicher
aufweisen, der so betreibbar ist, daß er ein Dateisegment speichert,
welches zu einer Datei gehört,
das in einem Eintrag in dem Metadatenspeicher gekennzeichnet ist,
wobei das Segment unter Verwendung eines Fingerabdrucks identifiziert
werden kann, der aus dem Segment berechnet wird und der für den Inhalt
dieses Segments eindeutig ist, und der Inhaltsspeicher kann auch
in der Lage sein, ein Datenobjekt zu speichern, das eine Datei beschreibt,
welche in dem Metadatenspeicher gekennzeichnet bzw. identifiziert
wird und welcher unter Verwendung des eindeutigen Fingerabdrucks
einer Datei, welche dadurch beschrieben wird, identifizieren kann.
Das Datenobjekt kann eine Liste aufweisen, welche den Segment-Fingerabdruck jedes
Segments der Datei enthält.
Der Inhaltsspeicher kann in der Weise betreibbar sein, daß er Aktionen
auf den Segmenten und den darin gespeicherten Datenobjekten in chronologischer
Reihenfolge des Empfangs der Befehle ausführen kann, um diese Aktionen
durch eine Schlange von Inhaltsspeicheraktionen auszuführen. Das
Backupsystem kann in der Weise betreibbar sein, daß es eine
Datei für
das Löschen
kennzeichnet, den Eintrag für
die Datei in dem Metadatenspeicher für das Löschen markiert, einen Hinweis
auf den Eintrag für
die Datei in dem Metadatenspeicher von dem Datenobjekt entfernt,
und den markierten Metadatenspeichereintrag aus dem Metadatenspeicher
löscht.
Auf diese Weise kann ein Einzelinstanzspeicher eine zuverlässige und
sichere Datenhaltepolitik betreiben, um gespeicherte Daten zu sichern
und zu schützen,
während
außerdem
ermöglicht
wird, daß Daten,
die nicht mehr gehalten werden müssen,
gelöscht
werden.
-
In
einigen Beispielen kann jedes Datenobjekt mehr als eine Datei beschreiben
und kann unter Verwendung des Fingerabdrucks jeder Datei, welcher sie
beschreibt, identifiziert werden. Demnach kann eine einzelne Einheit
verwendet werden, um die fortdauernde Relevanz für eine Mehrzahl von Quelldateien
eines Dateisegments in einem Einzelinstanzsystem zu verfolgen.
-
In
einigen Beispielen kann das System außerdem das Datenobjekt löschen, wenn
als Ergebnis des Entfernens eines Hinweises auf an einen Metadatenspeichereintrag
aus einem Datenobjekt das Datenobjekt keine Datei mehr beschreibt.
Demnach können
Kennungen für
nicht mehr erforderliche Dateien vollständig aus dem Speicher entfernt
werden. In einigen Beispielen kann das System so betrieben werden,
daß es
das Löschen
des Datenobjekts ausführt,
indem es einen Befehl zum Löschen
des Datenobjekts am Ende der Aktionsschlange des Inhaltsspeichers
hinzufügt;
Verstecken des Datenobjekts; Überprüfen, wann
der Befehl zum Löschen
das vordere Ende der Aktionsschlange des Inhaltsspeichers erreicht,
um zu bestimmen, ob das Datenobjekt Gegenstand eines Schreibvorgangs
war, da der zu löschende
Befehl der Befehlsschlange hinzugefügt wurde und, wenn kein solcher
Schreibvorgang aufgetreten ist, Löschen des Datenobjekts. Das
Löschen des
Datenobjekts kann demnach in einer solchen Weise ausgeführt werden,
daß sichergestellt
wird, daß ein
Befehl, der sich auf das Datenobjekt bezieht, nachdem das Datenobjekt
als löschbereit
identifiziert wurde, jedoch bevor es in die Löschschlange eingereiht wurde,
das Löschen
des Datenobjekts verhindern kann, um eine vollständige Datenintegrität aufrecht
zu erhalten.
-
In
einigen Beispielen kann das System im Anschluß an das Entfernen des Hinweises
des Metadatenspeichereintrags für
die Datei aus dem Datenobjekt das Link (die Verknüpfung) zu
irgendeinem Segment entfernen, welches nicht mehr mit irgendeiner
Datei zusammenhängt,
die in dem Datenobjekt beschrieben ist. Demnach kann also das Link
bzw. die Verknüpfung
für ein
Segment, welches nicht mehr für
irgendeine Datei erforderlich ist, die in einem Datenobjekt gekennzeichnet
ist, aus dem Datenobjekt entfernt werden, um die fehlende Relevanz
dieses Segments für
das Datenobjekt anzuzeigen.
-
In
einigen Beispielen kann das System so betreibbar sein, daß es im
Anschluß an
das Entfernen der Segmentverknüpfung
bzw. des Segmentlinks aus dem Datenobjekt das Segment entfernt, wenn
nunmehr kein Datenobjekt ein Link zu diesem Segment hat. Ein Segment,
welches nicht mehr mit irgendeinem Datenobjekt verknüpft ist
und damit keine fortdauernde Relevanz mehr für irgendeine Datei in dem Speicher
hat, kann also insgesamt entfernt werden. In einigen Beispielen
kann das Entfernen des Segments durchgeführt werden durch: Hinzufügen eines
Befehls für
das Löschen
des Segments am Ende der Aktionsschlange des Inhaltsspeichers, Verstecken
des Segments, Überprüfen, wann
der Befehl zum Löschen
das vordere Ende der Aktionsschlange des Inhaltsspeichers erreicht
hat, um festzustellen, ob das Segment Gegenstand eines Schreibvorgangs war,
seit der Löschbefehl
der Befehlsschlange hinzugefügt
worden ist und, falls kein solcher Schreibvorgang aufgetreten ist,
Löschen
des Segments. Das Löschen
des Segments kann demnach in einer solchen Weise durchgeführt werden,
daß sichergestellt wird,
daß ein
Befehl, welcher sich auf das Segment bezieht, nachdem das Segment
für ein
Löschen
markiert bzw. vorgemerkt wurde, jedoch bevor es in die Löschschlange
eingereiht wurde, ein Löschen
des Segments verhindert, um eine vollständige Datenintegrität aufrecht
zu erhalten.
-
Unter
einem zweiten Aspekt gesehen kann die vorliegende Erfindung ein
Verfahren zum Löschen
von Dateien oder Dateisegmenten aus einem Speichersystem, welches
ein Schema der Einzelinstanzenspeicherung verwendet, bereitstellen.
Das Verfahren kann aufweisen: Speichern von Metadaten, die sich
auf eine Datei beziehen, in einem Metadatenspeicher, wobei jeder
Eintrag in den Metadatenspeicher einen Fingerabdruck enthält, der
aus der Datei berechnet wurde, auf welche der Eintrag sich bezieht,
und der für
diese Datei eindeutig ist, Speichern eines Dateisegments, das zu
einer Datei gehört,
die in einem Eintrag in dem Metadatenspeicher identifiziert ist,
in einem Inhaltsspeicher, wobei das Segment unter Verwendung eines
Fingerabdrucks identifiziert werden kann, der aus dem Segment berechnet
wird und für
das Segment eindeutig ist, und Speichern eines Datenobjekts, welches
eine Datei beschreibt, die in dem Metadatenspeicher identifiziert
ist, in dem Datenspeicher, und welches unter Verwendung des eindeutigen
Fingerabdrucks einer Datei identifiziert werden kann, der sie beschreibt und
wobei das Datenobjekt eine Liste aufweist, welche den Fingerabdruck
des Segments für
jedes Segment der Datei enthält.
Das Verfahren kann weiterhin aufweisen, Befehle für Aktionen
mit Segmenten und Datenobjekten, die in dem Inhaltsspeicher gespeichert
sind, zu veranlassen, so daß sie
in chronologischer Reihenfolge oder nach dem Empfang der Befehle
ausgeführt
werden, um diese Aktionen durchzuführen, Kennzeichnen einer Datei
für das
Löschen, Markieren
des Eintrags für
die Datei in dem Metadatenspeicher für das Löschen, Entfernen eines Aufrufs oder
Hinweises auf den Metadatenspeichereintrag für die Datei aus dem Datenobjekt
und Löschen
des markierten Metadatenspeichereintrags aus dem Metadatenspeicher.
-
Weitere
Aspekte und Ausführungsformen der
Erfindung werden deutlich anhand der folgenden Beschreibung verschiedener
spezieller Beispiele.
-
Kurzbeschreibung der Figuren
-
Besondere
Ausführungsformen
der vorliegenden Erfindung werden nun lediglich beispielhaft unter
Bezug auf die anhängenden
Zeichnungen beschrieben, in welchen gleiche Teile durch die gleichen
Bezugszeichen gekennzeichnet sind:
-
1 zeigt
eine schematische Wiedergabe einer verteilten Rechnerumgebung, in
welcher ein Backup-Prozeß für Daten
verwendet werden könnte.
-
2 zeigt
eine schematische Darstellung einer weiteren verteilten Rechnerumgebung,
in welcher ein Backup-Prozeß für Daten
verwendet werden könnte.
-
3 zeigt
eine schematische Darstellung wie eine Datei mit Daten zwischen
zwei Zeitpunkten modifiziert werden könnte.
-
4 zeigt
eine schematische Darstellung eines Einzelinstanz-Backupsystems.
-
5 zeigt
eine schematische Darstellung eines Datenobjekts.
-
6 zeigt
ein Flußdiagramm
für das
Löschen
einer Datei.
-
7 zeigt
ein Flußdiagramm
für das
Löschen
eines Datenobjekts, und
-
8 zeigt
ein Flußdiagramm
für das
Löschen
eines Dateisegments.
-
Während die
Erfindung für
verschiedene Modifikationen und alternative Formen empfänglich ist, werden
in den Figuren beispielhaft spezielle Ausführungsformen dargestellt und
werden nachstehend im einzelnen beschrieben. Es versteht sich jedoch,
daß die
Zeichnungen und die genaue Beschreibung zu diesen nicht die Erfindung
auf die speziell dargestellte Form beschränken sollen, sonder daß im Gegenteil
die Erfindung alle Modifikationen, Äquivalente und Alternativen
abdecken soll, die in den Geist und Schutzumfang der vorliegenden
Erfindung fallen, wie sie durch die anhängenden Ansprüche definiert
wird.
-
Genaue Beschreibung
-
Wie
in 1 dargestellt, kann eine verteilte Rechnerumgebung 10 ein
Zentralbüro 12 aufweisen und
kann auch eines oder mehrere entfernte Büros 14 und/oder einen
oder mehrere Benutzer 16 aufweisen. Das Zentralbüro 12 kann
einen Speicherpool 20 umfassen, in welchem Daten durch
ein Backup gesichert werden können.
Die Verwaltung eines Backupprozesses kann durch einen Backup-Client 22 für eine oder
mehrere lokale Workstations 24 durchgeführt werden. Die Backupdaten können über ein
LAN (local area network – Nahbereichsnetz) 25 an
den Speicherpool 20 weitergeleitet werden.
-
Ein
entfernt gelegenes Büro 14 kann
einen oder mehrere Backup-Clients 26 umfassen, die spezielle
Backup-Koordinatoren sein können,
oder es kann ein Backup-Client auf der Workstation vorgesehen sein.
Mit Hilfe dieses Backup-Clients 26 können Daten durch ein Backup
auf eine entfernt gelegene Backupeinrichtung 28 eines Büros gesichert
werden. Die Backupeinrichtung 28 kann dann die Backupdaten
an den Speicherpool 20 über
ein WAN-Link 29 (wide area network-Link- bzw. Fernbereichsnetzverbindung) übertragen.
-
Ein
mobiler Nutzer 26 kann mit einem Backup-Client 30 ausgestattet
sein, der auf einem entfernten Anschluß bzw. Terminal laufen kann.
Dieser Backup-Client 30 kann Backupdaten an den Speicherpool 20 des
Zentralbüros 12 über die
WAN-Verbindung 29 senden.
-
Im
vorliegenden Beispiel ist die Menge an Backupdaten, die über das
LAN 25 und das WAN 29 übermittelt werden können, dadurch
beschränkt,
daß sichergestellt
wird, daß nur
eindeutige bzw. einzigartige Daten an den Backupspeicherpool 20 gesendet werden.
Techniken, mit denen man dieses erreicht, werden unten noch genauer
erläutert.
-
2 zeigt
eine weitere, beispielhafte Implementierung einer verteilten Rechnerumgebung.
In diesem Beispiel gehören
einige Workstations und mobile Benutzer zu entsprechenden lokalen
Backup-Servern,
von denen jeder so betreibbar ist, daß er mit einem Datenzentrum
kommuniziert, wo die Backup-Speicherung durchgeführt wird.
-
Wie
in 2 dargestellt, läuft in dem vorliegenden Beispiel
auf jedem Computersystem 40, welches in das Backupsystem
einbezogen ist, ein Backup-Client, der auch als ein Agent bezeichnet
werden kann. Jeder lokale Agent identifiziert neue und geänderte Dateien
oder Dateisegmente, wenn sie erzeugt werden und berechnet einen
Fingerabdruck für
jede Datei oder jedes Dateisegment. Die Agenten können so
ausgestaltet sein, daß sie
Dateien ignorieren, die kein Backup bzw. keine Sicherung benötigen, wie zum
Beispiel Printspool-Dateien, Betriebssystemdateien oder zwischengespeicherte
Dateien bzw. Zwischendateien.
-
Im
vorliegenden Beispiel können
Dateien, die größer sind
als ein vorbestimmter Grenzwert, in Segmente aufgeteilt werden.
Dies ermöglicht
es, daß große Dateien
effizienter durch ein Backup gesichert werden. Beispielsweise enthält eine
Datei, wie zum Beispiel eine MSOutlookTM.pst-Datei
typischerweise eine große
Menge an Daten, die konstant bleiben, und sie hat neue Daten, die
daran angehängt
werden, wenn beispielsweise ein Benutzer eine E-Mail sendet oder
empfängt
oder einen Kalendereintrag macht. Wenn also ein Backupvorgang segmentweise durchgeführt wird,
müssen alle
Segmente am Anfang der Datei, die unverändert sind, nicht erneut durch ein
Backup gesichert werden. Dieser Vorgang wird in 3 veranschaulicht.
-
Wie
in 3 dargestellt, wurde eine Datei 70 beim
letzten Backup in Form einer Anzahl von Backupsegmenten 72 gesichert.
Wenn ein nächster
Backupvorgang durchgeführt
wird, so ist die Größe der Datei
angewachsen zu der neuen Datei 74. Während dieses Backupvorgangs
betrachtet ein Backupagent erneut die Datei als eine Anzahl von
Segmenten, von denen jedes einen dafür berechneten Fingerabdruck hat.
Durch Vergleich dieser Fingerabdrücke mit den in vorherigen Backups
enthaltenen Fingerabdrücken kann
festgestellt werden, daß alle
Segmente 76 zuvor bereits gesichert worden sind und damit
kein erneutes Speichern in einem Backupsystem erfordern. Andererseits
sind die neuen Segmente 78 zuvor noch nicht durch ein Backup
gesichert worden und können
daher für
die Backupspeicherung gesendet werden. Durch Verwenden dieser Technik
kann die Menge an Daten, die für
eine Backupspeicherung bei einem Backupvorgang gesendet werden,
gegenüber einem
System, in welchem alle geänderten
Dateien für
die Backupsicherung jedesmal gesendet werden, beträchtlich
reduziert werden.
-
In
der folgenden Beschreibung werden die Worte „Datei" und „Segment" möglicherweise
austauschbar verwendet, um auf Dateneinheiten der Backupsicherung
Bezug zu nehmen. Es versteht, daß dann, wenn eine Datei kleiner
als die vorbestimmte Segmentgröße ist,
die Datei als in ein einziges Segment aufgeteilt betrachtet werden
kann. In den vorliegenden Beispielen kann eine Vielfalt von Segmentgrößen verwendet
werden. Es versteht sich, daß kleinere
Segmentgrößen die
Effizienz des Backupvorgangs erhöhen,
jedoch auch die Arbeitslast zum Verarbeiten durch den Backup-Agenten
vergrößern. In
einigen Beispielen können
Segmentgrößen von
32 Kbyte, 64 Kbyte oder 128 Kbyte verendet werden.
-
Der
durch den Agenten bestimmte Fingerabdruck kennzeichnet die Datei
oder das Dateisegment anhand ihrer Inhalte eindeutig. Dieser Fingerabdruck ist
für die
Inhalte der Datei oder des Dateisegments eindeutig, d. h. er ist
eindeutig für
die Daten innerhalb dieser Datei oder dieses Dateisegments. Zwei
Dateien mit unterschiedlichen Namen werden typischerweise von einem
Benutzer als zwei unterschiedliche Dateien angesehen, jedoch können zwei
derartige Dateien exakt denselben Inhalt (oder im Fall von Dateisegmenten
denselben Teilinhalt) haben. In diesem Fall haben sie denselben
Fingerabdruck. Es können also
keine zwei nicht identische Dateien oder Segmente denselben Fingerabdruck
haben und identische Dateien oder Segmente haben immer denselben
Fingerabdruck. Im vorliegenden Beispiel wird der Fingerabdruck unter
Verwendung einer Hash-Funktion berechnet. Hash-Funktionen sind mathematische Funktionen,
die verendet werden können,
um eine Extraktnachricht fester Länge oder einen Fingerabdruck
von einem Datengegenstand nahezu jeder beliebigen Größe zu bestimmen.
Eine Hash-Funktion ist eine Einwegfunktion, d. h. es ist nicht möglich, den Prozeß umzukehren,
um die ursprünglichen
Daten aus dem Fingerabdruck wieder zu erzeugen. Hash-Funktionen
sind relativ langsam und teuer hinsichtlich der Verarbeitungsleistung,
die erforderlich ist im Vergleich zu anderen Prüfsummentechniken, wie zum Beispiel
CRC-Methoden (zyklische Redundanzüberprüfungsmethoden), Hash-Funktionen
haben jedoch den Vorteil, daß sie
für jeden
einzigartigen Datensatz einen einzigartigen Fingerabdruck erzeugen,
im Gegensatz zu CRC-Methoden, die aus einer Vielfalt unterschiedlicher
Datensätze
dasselbe Ergebnis erzeugen können.
Beispiele von Hash-Funktionen, die verwendet werden können, um den
Fingerabdruck in dem vorliegenden Beispiel zu berechnen, umfassen
MD5, SHA1 und SHA256.
-
Der
Agent bei jeder Workstation 40 identifiziert dann die Dateien
oder Segmente, die für
diese Workstation neu und einzigartig sind. D. h., wenn eine neu
erzeugte Datei oder ein entsprechendes Segment auf der Workstation
tatsächlich
eine genaue Kopie einer Datei oder eines Segments ist, die zuvor
schon gesichert wurde, so weiß der
Agent, daß er
dieses Segment für
ein Backup nicht erneut zu versenden hat.
-
Wenn
der Agent ein einzigartiges Segment auf der Workstation 40 identifiziert
hat, kann der Fingerabdruck für
dieses Segment an den Backup-Server 41 gesendet werden,
wo seine Eindeutigkeit oder Einzigartigkeit erneut überprüft werden
kann. Dieser erneute Test wird durchgeführt um festzustellen, ob die
Datei, die einzigartig für
eine entsprechende Workstation 40 ist, auch für alle Workstations
einzigartig ist, die dieser Backup-Server 42 bedient. Der Backup-Server
kann ein lokaler Backup-Server sein, wie es in dem entfernt gelegenen
Büro 46 gezeigt
ist oder wie es in dem zentralen Netzwerk 48 bezüglich der
in dem zentralen Netzwerks 48 angeordneten Workstations
gezeigt ist. Alternativ kann der Backup-Server ein entfernter Backup-Server
sein, wie es in dem zentralen Netzwerk bezüglich der Workstations 40 dargestellt
ist, die sich in einem entfernten Büro 44 befinden. Wenn
eine Workstation 40 eine mobile Workstation, wie zum Beispiel
ein Laptop, ist, so kann der Backup-Agent auf der mobilen Workstation
so ausgestaltet sein, daß er
eine Verbindung immer zu demselben Backup-Server herstellt oder
eine Verbindung zu dem Backup-Server herstellt, welcher der mobilen
Arbeitsstation zu einem gegebenen Zeitpunkt räumlich am nächsten liegt.
-
Dieser
Vorgang des Sendens eines Fingerabdrucks an eine Autorität auf höherer Ebene
in der Backupstruktur kann fortgesetzt werden, bis die Autorität der höchsten Ebene
erreicht ist. In einem großen
System könnte
dies ein zentraler Backup-Server sein, mit welchem eine Anzahl lokaler
Backup-Server verbunden ist. In einem kleinen System gibt es möglicherweise
nur einen einzelnen BackupServer, um alle Arbeitsstationen zu bedienen.
Wenn das Segment in dem Backupsystem als einzigartig bestimmt worden
ist, so kann der Arbeitsstationsagent, von welchem es stammt, angewiesen
werden, das eigentliche Datensegment für die Backupsicherung zu senden.
Von Segmenten, die nicht einzigartig sind, kann durch einen Backupagenten
deren Fingerabdruck auch an einen Backup-Server gesendet werden.
Dies kann in einem System der Fall sein, in welchem eine Datenhaltepolitik
festgelegt ist, um sicherzustellen, daß eine Datei oder ein Segment
in einem Backup speicher für
eine minimale Zeitdauer gehalten wird, nachdem es zum letzten Mal
auf irgendeiner Arbeitsstation innerhalb der Backup-Umgebung vorhanden
war. In einigen Beispielen kann es auch notwendig sein sicherzustellen,
daß alle
Segmente einer gegebenen Datei in dem Backupsystem vorhanden sind,
bis das Datenhalteerfordernis für
diese Datei abgelaufen ist. Alle Segmente einer Datei müssen also
möglicherweise
gehalten werden, bis zum Ende der Zeitdauer entsprechend der Datenhaltepolitik, und
nicht nur die zuletzt modifizierten Segmente derselben.
-
Es
versteht sich, daß die
Arbeitsstationen 40 des vorliegenden Beispiels Datei- oder
Anwendungsserver enthalten können,
auf welchen Daten, die eine Backupsicherung erfordern, gespeichert
sind. Beispielsweise kann der Fall vorliegen, daß Dateiserver verwendet werden,
um viele Datendateien zu speichern, so daß deren Inhalt möglicherweise
durch Backup gesichert werden muß. In dem Beispiel eines Anwendungsservers,
wie zum Beispiel eines MSExchangeTM-Servers,
kann der Anwendungsserver Daten speichern, die sich auf die Anwendung
beziehen und die demzufolge eine Backupsicherung erfordern. Auch
Anwendungsdateien, ob sie sich nun an einer Arbeitsstation oder
auf einem Server befinden, können
Schutz durch eine Backupsicherung erfordern, um beispielsweise eine
direkte Methode für
das Wiedergewinnen maßgeschneiderter
Einstellungen oder für
die Wiederherstellung einer Arbeitsstation oder eines Servers nach
einem Systemausfall bereitzustellen.
-
Wie
oben erwähnt,
kann eine Datenhaltepolitik auf Daten innerhalb eines Computersystems
anzuwenden sein. Eine solche Politik kann eine Politik bzw. Strategie
sein, die durch eine Firma festgelegt wurde, oder sie kann durch
eine entsprechende Regeln aufstellende Autorität auferlegt sein. Eine durch einen
Regulierer auferlegte Politik kann beispielsweise in Bezug auf Finanzinformation
und rechtliche Information anzuwenden sein. Aus diesem Grund kann es
wünschenswert
sein, daß der
Backupagent einer Arbeitsstation gelöschte Dateien in den Backupvorgang
einbezieht, um sicherzustellen, daß eine Datei, die auf einer
Arbeitsstation für
weniger als ein Backupintervall existierte, noch immer in den Backup-Prozeß einbezogen
ist.
-
Es
versteht sich, daß durch
Ausführen
des Backup-Prozesses hinsichtlich der Verwendung eines Fingerabdrucks,
der typischerweise in der Größenordnung
von einigen zehn bzw. zig Bits ist, um festzustellen, welche Segmente
tatsächlich
eine Backup-Sicherung benötigen,
die Menge an Daten, die über
die Netzwerkverbindungen zwischen den Arbeitsstationen und den Backup-Servern übertragen
werden, im Vergleich zu einem System, in welchem Daten, die für ein Backup
markiert sind, für
die Speicherung gesendet werden, bevor festgestellt wird, ob eine
Speicherung dieser Daten tatsächlich erforderlich
ist, beträchtlich
reduziert wird.
-
Wiederum
gemäß 2 können die
Backup-Server 42 bewirken, daß die Daten für das Backup
in einer Speicheranordnung, wie zum Beispiel einem Speicherserver 50,
gespeichert werden. Die Speicherserver 50 können eigene
Speicherserver sein oder sie können
Teil einer Speicherinfrastruk tur, wie zum Beispiel ein SAN (storage
area network – Speicherbereichsnetzwerk) 52 sein.
In alternativen Beispielen kann der Backup-Server 42 den
Speicher für
die gesicherten Daten umfassen.
-
Um
eine Redundanz und größere Sicherheit und
Verfügbarkeit
für durch
Backup gesicherte Daten bereitzustellen, kann ein Speicherserver 42 aus
einem gespiegelten Paar von Speicherservern bestehen, wobei der
eine aktiv ist und der andere in ständiger Bereitschaft ist und
bereit ist, im Fall eines Fehlers des aktiven Backup-Servers dessen
Aufgabe zu übernehmen.
Es kann auch ein entfernter Spiegel 54 vorgesehen sein,
beispielsweise an einem entfernten Ort 56, um einen Puffer
gegenüber
Fehlern vorzusehen, welche den Ort des aktiven Backup-Servers betreffen.
Ein solcher entfernter Ort kann auch verwendet werden, um Backupkopien
der durch Backup gesicherten Daten herzustellen und/oder aufzubewahren,
beispielsweise in magnetischen Backup-Anordnungen oder unter Verwendung
konventioneller Backup-Techniken, wie zum Beispiel eines Bandgeräts 58.
-
Demnach
ist also eine Anzahl von Beispielen von Backup-Umgebungen für die Verwendung
von Fingerabdrücken
von Daten beschrieben worden, um Daten und/oder Segmente für ein Backup
zu identifizieren und um nur einzigartige Dateien und Segmente durch
Backup zu sichern, um auf diese Weise eine maximale Effizienz bei
dem Gebrauch bzw. der Ausnutzung des Backup-Speichervolumens zu erzielen.
-
Um
eine Einrichtung für
das Zugreifen auf die Dateien und Segmente in dem Backupsystem bereitzustellen,
können
die Dateien und Segmente in einem mit Index versehenen Dateisystem
oder einer Datenbankstruktur gespeichert werden, die es erlauben,
eine Datei oder ein Segment zu identifizieren und durch Suche nach
dem Fingerabdruck wiederzugewinnen. Der Fingerabdruck kann auch
als eine „Signatur" der Datei oder des
Segments angesehen werden. Dadurch kann ein einfaches Dateisystem oder
eine Datenbankstruktur für
die Dateien und Segmente verwendet werden, was einen schnellen Such-
und Wiederbeschaffungsprozeß erlaubt.
-
Um
das Suchen nach Inhalten eines Backupspeichers des oben beschriebenen
Typs zu erleichtern bzw. zu ermöglichen
jeweils den Inhalt des Speichers zu erfassen, und auch um Daten
aus dem Speicher wiederzuholen, kann eine Datenbank aus Metadaten
bereitgestellt werden. Die Datenbank aus Metadaten oder die „Metadatenbank" kann Daten speichern,
welche jede Datei, die in dem Backup-System gespeichert ist, beschreiben.
Derartige Daten können
Informationen, wie zum Beispiel einen Dateinamen, das letzte Bearbeitungsdatum,
das Erzeugungsdatum, den Autor, die Dateigröße und Schlüsselworte, welche für den Inhalt
der Datei repräsentativ
sind, enthalten. In der Metadatenbank können auch der Fingerabdruck
(oder Fingerabdrücke)
für die
Datei (oder jedes Segment der Datei) gespeichert sein. Ein Benutzer,
welcher die Metadatenbank nach Dateien durchsucht, die an einem
bestimmten Datum bearbeitet wurden, kann dadurch eine Anfrage in
der Datenbank laufen lassen und alle zurückgelieferten Ergebnisse können es
ermöglichen,
daß die Dateien
in dem Backup-System mit Hilfe ihres eindeutig identifizierenden
Fingerabdrucks wiedergewonnen werden. Ein System, welches auf diese
Weise aufgebaut ist, ermöglicht
es, daß die Metadatenbank
Suchfähigkeiten
mit hoher Geschwindigkeit hat, da die Datenbankgröße im Vergleich
zu den tatsächlich
durch Backup gesicherten Dateigrößen klein
ist und die Verwendung einer einfachen Suchprozedur in der Datei-/Segment-Datenbank
erlaubt.
-
In
einem anderen Bespiel sind die Datei-/Segment- und Metadatenbank
zu einer einzigen Datenbank kombiniert. Ein solches System bietet eine
vereinfachte Struktur in dem Sinne, daß nur eine einzige Datenbank
erforderlich ist.
-
Wenn
wir nun zu dem Beispiel der getrennten Metadatenbank und des Datei-/Segmentspeichers
zurückkehren,
so kann man dieses als einen Speicher mit Einzelinstanzen laufen
lassen, indem man mehr als einen Eintrag in der Metadatenbank zuläßt, um denselben
Fingerabdruck aufzunehmen bzw. zu enthalten. Dies ist in 4 dargestellt.
-
In
jeder der drei Computereinrichtungen: Terminal 90, Dateiserver 92 und
mobiler Anschluß bzw. mobiles
Terminal 94 wird eine identische Übersichtsdatei „Budget2005.xls" gespeichert. In
dem Endgerät 19 wurde
die Datei 96 in dem Ordner „C.\MyDocuments\SalesDocs\" am 19. März 2005
und mit einer Größe von 293
kB gespeichert. Auf dem Dateiserver 92 wurde die Datei 98 in
dem Ordner „X:\Public\Public" am 22. März 2005
mit einer Größe von 293
kB gespeichert. Auf dem mobilen Endgerät 94 wurde die Datei 100 in
dem Ordner „C:\MyDocuments\" am 14. April 2005
mit einer Größe von 293
kB gespeichert. Wenn die Dateien 96, 98, 100 identisch
sind, haben sie allesamt dieselbe Größe, haben denselben Inhalt (102A, 1026 bzw. 102C)
und führen
zu demselben Fingerabdruck FP (104A, 1048, 104C),
der während der
Zeit der Backupsicherung erzeugt wird.
-
Backupsicherungsvorgänge auf
jedem der Geräte,
nämlich
dem Endgerät 90,
dem Dateiserver 92 und dem mobilen Endgerät 94 können zu
unterschiedlichen Zeitpunkten durchgeführt werden, wobei die Ergebnisse
der Backupsicherung für
jedes Gerät
an den entsprechenden unterschiedlichen Zeiten dem Backup-System
hinzugefügt
werden. Beispielsweise kann ein Backupvorgang für das mobile Endgerät 94 zu
einem Zeitpunkt ausgeführt
werden, der sich von dem Backupvorgang für das Endgerät 90 oder
den Dateiserver 92 unterscheidet, wenn das mobile Endgerät 94 für eine Zeitdauer,
während
welcher ein geplanter Backupvorgang für das Endgerät 90 und
den Dateiserver 92 stattfand, nicht angeschlossen ist bzw.
bleibt.
-
Für die Durchführung eines
Backupvorgangs für
das Endgerät 90 wird
der Fingerabdruck 104A für die Datei 96 berechnet,
wobei dieser Fingerabdruck 104A mit dem Teil 116 des
Inhaltsspeichers des Backup-Systems verglichen wird. Wenn der Fingerabdruck
in dem Backup-System einzigartig ist, so muß der Inhalt 102A der
Datei 96 in dem Inhaltsspeicher 116 gespeichert
werden, der als Inhalt 102 dargestellt ist, der zu dem
Fingerabdruck 104 gehört. Wenn
der Fingerabdruck in dem Inhaltsspeicher nicht einzigartig ist (d.
h. wenn diese Datei bereits zuvor durch Backup gesichert wurde),
so muß der
Inhalt nicht erneut gespeichert werden. Parallel zu der Feststellung,
ob der In halt 104A gespeichert werden muß, werden
die Metadaten 106 für
die Datei 96 in der Metadatenbank 114 gespeichert,
wenn die Datei 96 nicht schon zuvor durch Backup gesichert
wurde. Die Metadaten 106 werden in Verbindung mit dem Fingerabdruck 104 gespeichert,
welcher den Inhalt 102 kennzeichnet bzw. identifiziert,
der in dem Inhaltsspeicher 116 gespeichert wurde.
-
Ähnliche
Vorgänge
werden ausgeführt,
wenn die Datei 98 auf dem Dateiserver 92 und die
Datei 100 auf dem mobilen Endgerät 90 für eine Backupsicherung
ausgewählt
werden. Wenn also die Dateien 96, 98, 100 jeweils
in einen Backup-Prozeß einbezogen
sind, enthält
die Metadatenbank einen Eintrag für jede der Dateien, da jede
unterschiedliche Metadaten hat, jedoch hat der Inhaltsspeicher nur
eine einzige Kopie der Datei. In einer alternativen Implementierung
könnte
die Metadatenbank eine einzelne Aufzeichnung für jeden Fingerabdruck haben,
wobei die Aufzeichnung die Metadaten für alle ursprünglichen Instanzen
der Datei, welche den Fingerabdruck erzeugt hat, speichert.
-
Eine
Metadatenbank, welche Metadaten für alle ursprünglichen
Instanzen einer Datei enthält, kann
dadurch bereitgestellt werden, um eine durchsuchbare Umgebung für das Beschaffen
bzw. Wiedergewinnen von Dateien/Segmenten vorzusehen, die in dem
Inhaltsspeicher gespeichert sind. In der Zwischenzeit enthält der Inhaltsspeicher
nur eine Instanz jeder Datei/jedes Segments, um auf diese Weise
den Speicherraum, der für
den Inhaltsspeicher erforderlich ist, zu begrenzen. Die Aufzeichnungen
der Metadatenbank sind mit den Inhaltsaufzeichnungen in dem Inhaltsspeicher
durch den Fingerabdruck für jede
entsprechende Inhaltsaufzeichnung verknüpft.
-
Um
die Verwaltung von Dateien und Segmenten innerhalb des Inhaltsspeichers
zu unterstützen,
kann eine Datenobjekteinheit eingeführt werden. Das Datenobjekt
kann in die Verwaltung von Segmenten innerhalb einer Datei erleichtern
bzw. ermöglichen
ohne eine große
Anzahl von Segmentverknüpfungen,
die für
jeden Metadatenbankeintrag benötigt
werden. Außerdem
können
die Datenobjekte ermöglichen,
daß Dateien
in dem Backup-System zu Gruppen zusammengefaßt werden.
-
Gemäß 5 ist
ein Datenobjekt 110 dargestellt. Das Datenobjekt verknüpft die
ursprüngliche Datei
mit all ihren Segmenten, indem es eine Liste 112 aller
Segmente bereitstellt, welche diese Datei bilden. Das Datenobjekt 110 kann
in dem Inhaltsspeicher zusammen mit den Segmenten gespeichert werden.
Um in der Lage zu sein, das Datenobjekt in dem Speicher zu identifizieren
und darauf zuzugreifen, kann es dem Fingerabdruck der Ursprungsdatei als
Ganzes zugeordnet sein. Im Fall einzelner Segmentdateien erzeugt
das System nach dem vorliegenden Beispiel ein Segmentobjekt für das Segment (da
andere Dateien mit mehreren Segmenten dieses Segment als eines ihrer
Segmente enthalten könnten).
Das System erzeugt auch ein Datenobjekt, jedoch enthält in diesem Fall
die Segmentliste in dem Datenobjekt nur ein Segment. Sowohl das
Datei- als auch das Segmentobjekt haben denselben Fingerabdruck
(und sind unter diesem gespeichert). Durch das Datenobjekt 110 kann
die Ursprungsdatei wiederhergestellt werden, indem die Segmente 112,
auf welche in dem Datenobjekt 110 Bezug genommen wird,
wiedergewonnen bzw. beschafft oder herangeholt werden und indem
sie eines nach dem anderen in der Reihenfolge aneinandergehängt werden,
in welcher sie in dem Datenobjekt erscheinen.
-
Für jedes
Segment kann eine Liste von Datenobjekten, denen es zugeordnet ist,
in dem Inhaltsspeicher mit dem Segment gespeichert werden. Die Datenobjektliste
wird als ein Anhang oder in Form von Metadaten für das Segment gespeichert und
wird nicht als Teil des Segments angesehen. Der Fingerabdruck des
Segments wird also nicht durch die Datenobjektliste geändert. Die
Datenobjektliste eines Segments überwacht
in effizienter Weise die Information für das Segment und wird nicht
als Teil der Segmentdaten angesehen. Da der Fingerabdruck des Segments
ausschließlich
aus den Segmentdaten berechnet wird, ist der Fingerabdruck des Segments unabhängig von
irgendwelcher Überwachung-
oder Verwaltungsinformation zu dem Segment, wie zum Beispiel der
Datenobjektliste.
-
Dies
gewährleistet
die Verknüpfung
von Segmenten mit Dateien. Oben ist beschrieben worden, daß einzigartige
Segmente nur einmal in dem Inhaltsspeicher gespeichert werden, um
eine unnötige
Duplizierung von Segmenten in dem Dateispeicher zu vermeiden. Wie
oben beschrieben, ist es notwendig, eine solche Einzelinstanzverarbeitung
aktiv auszuführen,
da in der Praxis zwei Dateien verschieden sein können, aber dennoch eines oder
mehrere Segmente gemeinsam haben können. Ein solches gemeinsames
Segment wird einmal gespeichert, jedoch haben die beiden Dateien
unterschiedliche Datenobjekte, welche beide in dem Inhaltsspeicher
gespeichert werden. Beide Datenobjekte beziehen sich daher auf ein
oder mehrere gemeinsame Segmente. Um eine Art der Verknüpfung eines
Segments mit allen Datenobjekten bereitzustellen, die sich auf dieses beziehen
(und damit auf alle Dateien, welche das Segment enthalten), wird
eine Liste dieser Datenobjekte für
jedes Segment aufgezeichnet. Diese Liste enthält demnach die Datenobjekthinweise
auf das Segment.
-
Während Backup-Sicherungsvorgängen, wenn
ein Backup-Client eine Backup-Sicherung eines Segments (als Teil
einer Datei-Backupsicherung) durchführen möchte, befragt er demnach den
Inhaltsspeicher, um zu verifizieren, ob dieses Segment sich bereits
in dem Inhaltsspeicher befindet. Wenn der Inhaltsspeicher auf diese
Anfrage bestätigend
antwortet, fordert der Client den Inhaltsspeicher auf, eine Verknüpfung von
dem Segment zu dem Datenobjekt hinzuzufügen, welches der Datei entspricht,
für welche
der Client eine Backup-Sicherung durchführt, anstatt dann das eigentliche
Segment an den Inhaltsspeicher zu senden.
-
Um
den Kreis der Beziehungen zwischen den verschiedenen Teilen und
Deskriptoren für
eine Datei zu vollenden, sind Verknüpfungen vorgesehen zwischen
den Aufzeichnungen der Datei-Metadaten in der Metadatenbank und
den Datenobjekten in dem Inhaltsspeicher. In ihrer einfachsten Form
können diese
verwirklicht werden, indem man den Fingerabdruck der Datei in die
Aufzeichnung der Metadaten einbezieht und indem man umgekehrt eine
Verknüpfung
zu der Metadatenaufzeichnung in das Datenobjekt aufnimmt. In einigen
Beispielen ist es eventuell wünschenswert,
Dateien entsprechend einem bestimmten Kriterium zu gruppieren. Beispiele
von Gruppierungskriterien sind: das Datum der Backup-Sicherung (d.
h. Gruppierung aller Dateien, für
die ein Backup am selben Tag durchgeführt wurde), oder die Quelle
des Backups (beispielsweise Gruppierung aller Dateien, für die ein
Backup von derselben Computereinrichtung durchgeführt wurde,
oder aller Dateien, die zu einem bestimmten Benutzer aus einer Gruppe
von Benutzern gehören).
In dem Rest dieser Beschreibung wird dieses allgemeine Beispiel
angenommen, und eine durch einen Benutzer definierte Gruppe von
Dateien wird als eine Dateigruppe bezeichnet. Unter dieser Annahme
wird die Verknüpfung
von einer Metadatenaufzeichnung zu dem entsprechenden Datenobjekt
dennoch über
den Fingerabdruck der Datei vorgesehen. Zusätzlich kann jedoch ein Datenobjekt
mit den Metadatenaufzeichnungen, die sich auf dieses Datenobjekt
beziehen, verknüpft
werden, indem zusammen mit dem Datenobjekt die Dateigruppe oder
-gruppen verknüpft
werden, welche eine oder mehrere Metadatenaufzeichnungen halten.
Es sei beispielsweise angenommen, daß drei Dateigruppen existieren,
wobei die Dateigruppe 1 zwei Metadatenaufzeichnungen hält, die
sich auf das Datenobjekt X beziehen, Dateigruppe 2 eine Metadatenaufzeichnung
hält, die
sich auf das Datenobjekt X bezieht, und die Datengruppe 3 keine
Metadatenaufzeichnung hält,
die sich auf das Datenobjekt X bezieht. Dann enthält die Liste
der Datengruppenverknüpfungen,
die auf dem Inhaltsspeicher für
das Datenobjekt X aufgezeichnet werden, die Gruppenkennungen bzw.
-identifikationen 1 und 2. Die Verwendung von Verknüpfungen
zu Dateigruppen anstatt von Verknüpfungen zu individuellen Metadatenaufzeichnungen
gewährleistet,
daß die
Anzahl von für
das Datenobjekt aufgezeichneten Verknüpfungen begrenzt werden kann.
Während
Backup-Sicherungsvorgängen
fordert ein Client, wenn er Dateien für eine Dateigruppe 1 durch
Backup sichert, den Inhaltsspeicher auf, jedes gesicherte Datenobjekt
mit der Dateigruppe 1 zu verknüpfen,
unabhängig
davon, ob das Datenobjekt bereits auf dem Inhaltsspeicher gespeichert
war oder effektiv durch diesen Client gespeichert wurde.
-
Es
ist damit ein System zum Bereitstellen einer bezüglich des Inhalts optimierten
Backup- und/oder Archivierlösung
für Datennetzwerke
beschrieben worden. Das System stellt sicher, daß alle einzigartigen Daten
gespeichert werden, während eine
unnötige
Speicherung von nicht einzigartigen Daten vermieden wird. Durch
Analysieren bzw. Zerlegen großer
Datenobjekte in Segmente wird diese Optimierung weiter verbessert.
-
Wie
aus 4 deutlich wird, kann ein gegebener Inhaltsgegenstand
Verknüpfungen
(Links) zu mehreren Einträgen
in dem Metadatenspeicher (oder der „Metadatenbank") haben. In einigen
Bei spielen wird deutlich, daß jeder
gegebene Inhaltsgegenstand Verknüpfungen
bzw. Links zu einem, einigen wenigen oder vielen Metadatenbankgegenständen haben könnte. Beispielsweise
kann ein Dokument von einer einzelnen Person geschaffen worden sein,
bevor es einem Empfänger
außerhalb
der Einheit, in welcher es erzeugt wurde, zugeführt wird. Dies würde demnach
wahrscheinlich nur einen einzigen Metadatenbankeintrag pro Eintrag
in den Inhaltsspeicher haben. In einem anderen Beispiel könnte ein
Dokument von mehreren Autoren in einem kleinen Team geschaffen worden
sein oder könnte
durch eine Person erzeugt und per E-Mail an andere Mitglieder des Teams
gesendet worden sein. In einer solchen Situation ist zu erwarten,
daß ein
Inhaltsgegenstand einige wenige Metadatenbankeinträge pro Eintrag
im Inhaltsspeicher hat. In anderen Beispielen können ein Dokument durch ein
einzelnes Individuum erzeugt und dann an viele oder alle Personen
innerhalb einer Organisation oder Abteilung kopiert werden. In diesem
Beispiel kann jeder Inhaltsgegenstand Hunderte oder sogar Tausende
von Metadatenbankeinträgen für jeden
Eintrag im Inhaltsspeicher haben.
-
Wenn
hierauf ein Segmentierungsschema angewendet wird, könnte die
Situation noch extremer werden. Unter Annahme des Beispiels eines
Dokuments, welches an eine komplette Organisation oder Abteilung
verteilt worden ist, so kann das Dokument, wenn es ein großes Dokument
ist, viele Segmente enthalten. Als nächstes sei angenommen, daß das Dokument
eines ist, welches von einem der Empfänger an Individuen außerhalb
der Organisation gesendet wird. Außerdem enthält das ursprüngliche
Dokument einige Druckfehler. Einige der Empfänger korrigieren keinen der
Druckfehler bevor sie das Objekt weiterleiten. Einige korrigieren
einen Teilsatz der Fehler, einige korrigieren sämtliche Fehler und andere korrigieren
andere Teilsätze
der Fehler. Dies führt dazu,
daß die
von einigen Benutzern gehaltenen Kopien mit dem Original identisch
sein können,
und die durch andere Benutzer gehaltenen Kopien gegenüber dem
Original in irgendeiner Weise modifiziert worden sind. Die Segmentierung
der geänderten
Dokumente kann also neue Dokumente erzeugen, die ebenfalls gespeichert
werden müssen.
Aufgrund der Art der Änderungen,
die durch unterschiedliche Benutzer vorgenommen werden bzw. wurden,
können viele
Benutzer unabhängig
voneinander identische Dateien erzeugen oder Dateien haben, die
identische Segmente erzeugen. Daher entstehen aus dem einen ursprünglichen
Dokument möglicherweise
viele ähnliche
und miteinander zusammenhängende
Segmente, die jeweils über
viele verschiedene Metadatenbankeinträge mit verschiedenen Gruppen
von Benutzern verknüpft
sind. Wenn die verschiedenen Änderungen
durch die verschiedenen Benutzer in einem Zeitraum von einigen wenigen
Monaten oder Jahren vorgenommen werden, kann das Netz von Segmenten
und Metadatenbankeintragen noch viel verwickelter werden.
-
Wenn
es demnach erwünscht
ist, Daten aus dem Inhaltsspeicher zu entfernen, beispielsweise nach
Ablauf einer Datenhaltedauer, die gemäß einer Datenhaltepolitik festgelegt
wurde, so kann es sehr schwierig werden festzustellen, welche Einträge im Inhaltsspeicher
und welche Metadatenbankein träge in
sicherer Weise gelöscht
werden können,
während spätere Versionen
eines Dokuments intakt und wiederaufrufbar belassen werden.
-
Außerdem kann
es schwierig sein, zu irgendeinem gegebenen Zeitpunkt einen definitiven Zustand
der Datenbank festzustellen. Beispielsweise könnte ein gegebener Gegenstand
des Inhaltsspeichers für
das Löschen
vorgesehen sein, nachdem ein vorbestimmter Grenzwert erreicht worden
ist, nachdem der Gegenstand zuletzt auf einem durch das Archiv-/Backup-System
im Quellcomputer identifiziert worden ist. Demnach wird der Gegenstand
gelöscht. Unmittelbar
bevor jedoch der Gegenstand gelöscht wird,
wird eine Anfrage von einem Backup-Agenten empfangen, der danach
fragt, ob ein Segment, welches eine Übereinstimmung im Fingerabdruck
mit dem des nunmehr gelöschten
Gegenstandes hat, sich in dem Speicher befindet. Da der Gegenstand
zu diesem Zeitpunkt noch immer vorhanden ist, hat der Backup-Agent
eine positive Antwort erhalten und sendet demnach das Segment nicht
für die
Speicherung. Unmittelbar nachdem jedoch die Anfrage beantwortet
worden ist, wird der Gegenstand nach dem Datenhalteschema gelöscht. Damit
können
Daten unbeabsichtigt verloren gehen.
-
Diese
Situation kann man berücksichtigen, indem
man eine Datenbeseitigungspolitik implementiert, die dafür ausgelegt
ist, die Möglichkeit,
daß eine solche
Situation auftritt, zu vermeiden. Ein solches System wird nun genauer
beschrieben.
-
In
der folgenden Beschreibung sei angenommen, daß die oben unter Bezug auf 5 beschriebene
Einheit eines Datenobjekts in dem Backup-System implementiert ist.
Es sei weiterhin angenommen, daß der
Inhaltsspeicher eine serialisierte Aktionsschlange für empfangene
Aktionsbefehle verwendet. Diese zwei Merkmale des Backup-Systems
können genutzt
werden, um eine Datenbeseitigung zu ermöglichen, ohne einen zufälligen Datenverlust.
-
In
den vorliegenden Beispielen ist ein Schlangen- bzw. Aufreihungsmechanismus
implementiert, um die mit dem Inhaltsspeicher ausgeführten Aktionen
der Reihe nach zu ordnen (zu serialisieren). Alle Aktionen mit dem
Inhaltsspeicher werden dieser Schlange hinzugefügt und auf Basis eines „wer zuerst
kommt, wird zuerst bedient"-Schemas ausgeführt, und
keine Aktion bzw. kein Vorgang darf die Schlange umgehen. Beispiele
möglicher
Aktionen sind: speichere ein neues Segment, speichere ein neues
Datenobjekt, füge
eine Verknüpfung
(Link) von einem vorhandenen Segment einem neuen Datenobjekt hinzu,
füge eine
Verknüpfung
(Link) von einem existierenden Datenobjekt zu einer Dateigruppe hinzu,
entferne eine Verknüpfung
(Link) von einem Datenobjekt zu einer Dateigruppe, entferne eine
Verknüpfung
(Link) von einem Segment zu einem Datenobjekt, entferne ein Datenobjekt,
entferne ein Segment. Es versteht sich, daß gewisse Anfragen und nachfolgende
Aktionen von Backup-Clients unteilbare Operationen bzw. Vorgänge sein
müssen.
Wenn beispielsweise ein Backup-Client den Inhaltsspeicher anfragt,
ob ein bestimmtes Segment sich bereits in dem Speicher befindet
und daraufhin (nachdem er eine positive Antwort erhalten hat) eine
Verknüpfungsaktion
für dieses
Segment anfordert, so muß sichergestellt
sein, daß keine
andere Aktion zwischen der Anfrage und der Aktionsanforderung in
die Schlange eintreten kann. Ansonsten könnten Daten unabsichtlich verlorengehen,
wie es oben bereits erläutert
wurde.
-
Mit
der Bereitstellung von Datenobjekten und der Verwendung einer serialisierten
Aktionsschlange, wie oben beschrieben, kann der Datenbeseitigungsprozeß so fortschreiten,
wie es unten erläutert
wird. Der Prozeß besteht
aus zwei Hauptphasen, wobei die erste Phase auf der Metadatenbank
abläuft
und die zweite Phase auf dem Inhaltsspeicher stattfindet.
-
Der
Prozeß wird
auf der Metadatenbank ausgelöst
und beginnt mit einer Liste von Dateien, die zu entfernen sind.
Die Liste kann irgendeine Anzahl von Dateien in dem Bereich einer
einzelnen Datei bis hin zu sämtlichen
Dateien in dem Speicher enthalten. Die Liste kann entsprechend einer
Datenhalte- und -ablaufpolitik bestimmt werden, beispielsweise können alle
Daten, die älter
sind als ein gewisses Alter (möglicherweise
ein Alter, welches durch ein Gesetz oder durch Regeln, welche das
Datenhalten bestimmen, definiert werden) für eine Beseitigung gekennzeichnet
werden.
-
Das
Verfahren wird in 6 veranschaulicht. Zunächst werden
in Schritt S6-1 die Metadatenaufzeichnungen für die zu entfernenden Dateien
in der Metadatenbank identifiziert und in der Metadatenbank als
erloschen markiert. Sobald eine Aufzeichnung als erloschen markiert
ist, kann ein Backup-Client diese nicht mehr als einen Eintrittspunkt
zum Beschaffen der Datei, auf welche sie sich bezieht, verwenden.
Als nächstes
fordert in Schritt S6-3 die Metadatenbank den Inhaltsspeicher auf,
die Verknüpfung
der Datenobjekte mit den Aufzeichnungen der Metadatenbank, die als
erloschen markiert sind, aufzulösen.
In einem Beispiel, in welchem jedes Datenobjekt sich auf eine einzelne
Datei bezieht, ist dies eine Angelegenheit, bei welcher die Auflösung der eins-zu-eins-Verknüpfung zwischen
diesen Aufzeichnungen durchgeführt
wird. In einem allgemeineren Beispiel, wie es oben erläutert wurde,
ist dieser Schritt komplizierter, da Datenobjekte mit Dateigruppen
und nicht direkt mit Metadatenaufzeichnungen verknüpft sind,
so daß es
möglicherweise
keine eins-zu-eins-Beziehung
zwischen Metadatenaufzeichnungen und Datenobjekten gibt. Wenn also
(die Metadatenaufzeichnung) eine(r) Datei A, die zu einer Dateigruppe
1 gehört,
erloschen ist, zeigt dies nicht unmittelbar an, daß die Verknüpfung zur
Dateigruppe 1 auf dem betreffenden Datenobjekt entfernt werden kann.
In der Tat ist es vorstellbar, daß innerhalb der Dateigruppe
1 eine zweite Datei mit dem Namen Datei B existiert, die einen Fingerabdruck
hat, der derselbe ist, wie der zumindest eine Fingerabdruck der Datei
A, und sich damit auf dasselbe Datenobjekt auf dem Inhaltsdatenspeicher
bezieht wie die Datei A. In einem solchen Fall darf die Verknüpfung zu
der Dateigruppe 1 auf dem Datenobjekt nicht entfernt werden. Als
generelle Regel gilt, daß die
Metadatenbank die Verknüpfung
eines bestimmten Datenobjekts zu einer Datengruppe dann und nur
dann auflösen
darf, wenn alle Metadatenaufzeichnungen innerhalb der Dateigruppe,
die sich auf dasselbe Datenobjekt beziehen, als erloschen markiert
sind. Wenn diese Bedingung erfüllt
ist, so daß die
Dateigruppe keinerlei Aufrufe bzw. Hinweise auf das betrachtete
Datenobjekt hat, so kann die Verknüpfung effektiv entfernt werden.
-
Wenn
die Datenobjekte entsprechend den Erfordernissen aktualisiert worden
sind, können
die erloschenen Metadatenaufzeichnungen in Schritt S6-5 sicher aus
der Metadatenbank entfernt werden. In einem Beispiel kann diese
Beseitigung unmittelbar abgeschlossen werden. In einem anderen Beispiel können die
erloschenen Aufzeichnungen für
eine gewisse Zeitdauer in der Metadatenbank gehalten werden. Dies
kann dem Zweck dienen, daß eine
Historie oder die Möglichkeit
der Nachverfolgung ermöglicht wird,
wobei in diesem Beispiel das Entfernen stattfinden kann, nachdem
eine vorbestimmte weitere Zeitdauer verstrichen ist.
-
In
Schritt S6-3 bearbeitet der Inhaltsspeicher die Aktionen der Verknüpfungsauflösung, die
durch die Metadatenbank angefordert wurde. Die Aktionen der Auflösung der
Verknüpfung
von Datenobjekten werden allesamt in der Schlange für die Inhaltsspeicher
angeordnet und werden in der Reihenfolge verarbeitet, in welcher
sie der Schlange hinzugetreten sind. Jede Aktion der Auflösung einer
Verknüpfung entfernt
eine Dateigruppe aus der Liste von Dateigruppen, die an dem Datenobjekt
anhängt.
Im Ergebnis ist das Datenobjekt nicht mehr Teil der Dateigruppe.
-
In
einem besonderen Fall kann die Aktion der Auflösung der Verknüpfung die
letzte Verknüpfung der
Dateigruppe von einem Datenobjekt entfernen. Dies ist eine Anzeige
dafür,
daß das
Datenobjekt durch keine Dateigruppe mehr benötigt wird und daher gelöscht werden
kann, es sei denn, die Aktionsschlange enthält noch eine Verknüpfungsanforderung
von einem Client für
dieses spezielle Datenobjekt. Wenn eine solche Aktion vorhanden
sein sollte, könnte
ein Datenverlust auftreten, wenn das Datenobjekt unmittelbar beseitigt
werden würde.
Der Prozeß,
um einen solchen Datenverlust zu vermeiden, ist genauer in 7 dargestellt.
Daher wird in dem vorliegenden Beispiel das Datenobjekt nicht unmittelbar
entfernt, sondern es wird stattdessen eine Aktion, das Datenobjekt
zu entfernen, in Schritt S7-1 der Schlange für den Inhaltsdatenspeicher
hinzugefügt. Gleichzeitig
macht der Inhaltsspeicher in Schritt S7-3 das Datenobjekt unzugänglich bzw.
verhindert einen Zugriff darauf oder versteckt die Existenz des
Datenobjekts auf andere Weise. Die Arbeitsweise des First-in-First-Out (wer zuerst kommt,
wird zuerst bedient) der Schlange des Inhaltsspeichers stellt damit sicher,
daß jede
Aktion, die dem betrachteten Datenobjekt eine Verknüpfung hinzufügt, zu dem
Zeit Punkt, zu welchem der Beseitigungsvorgang für die Verarbeitung bereit ist,
bereits bearbeitet worden ist. Weiterhin sind keine neuen Verknüpfungsanforderungen
für das
Datenobjekt der Schlange hinzugefügt worden, da das Datenobjekt
nicht mehr verfügbar
war, nachdem die Beseitigungsaktion der Schlange hinzugefügt worden
ist. In der Tat reagiert der Inhaltsspeicher, wenn ein Backup-Client
anfordert, dem Speicher eine Verknüpfung zu diesem Datenobjekt
hinzuzufügen,
in der Weise, daß er
das Datenobjekt noch nicht hält
und damit wird der Client gezwungen, von dem Inhaltsspeicher anzufordern,
daß er
ein neues Datenobjekt erzeugt.
-
Wenn
also der Inhaltsspeicher bereit ist, die Beseitigungsaktion zu verarbeiten,
ist jegliche Aktion, die eine Verknüpfung zu dem Datenobjekt hinzufügt, bereits
bearbeitet worden, und es sind keine neuen derartigen Aktionen in
der Schlange anhängig.
Dementsprechend verifiziert der Inhaltsspeicher, bevor er die Beseitigungsaktion
verarbeitet, in Schritt S7-5, ob irgendeine Verknüpfung zu
dem Datenobjekt hinzugefügt
worden ist. Wenn dies der Fall ist, so wird in Schritt S7-7 die
Beseitigungsaktion gelöscht
(da das Datenobjekt noch in Gebrauch ist), ansonsten wird in Schritt
S7-9 die Beseitigungsaktion verarbeitet.
-
Wenn
eine Beseitigungsaktion für
ein Datenobjekt (wie in Schritt S7-9) verarbeitet wird, so entfernt
der Inhaltsspeicher das Datenobjekt. Wenn ein Datenobjekt entfernt
bzw. beseitigt wird, sind die Verknüpfungen von den Segmenten dieses
Datenobjekts zu dem Datenobjekt nicht mehr erforderlich und können in
Schritt S7-11 beseitigt werden. Demnach fügt der Inhaltsspeicher für jedes
dieser Segmente seiner Schlange eine Aktion zur Auflösung der
Verknüpfung
hinzu. Diese Aktionen werden der Schlange hinzugefügt (anstatt
daß sie
unmittelbar ausgeführt
werden), um zu ermöglichen,
daß irgendeine Aktion,
die bereits für
eines der betreffenden Segmente geplant war, zuerst abgearbeitet
wird. Wenn ein solcher Vorgang zur Auflösung einer Verknüpfung verarbeitet
wird, ist das Segment nicht mehr mit dem Datenobjekt verknüpft.
-
In ähnlicher
Weise wie Aktionen zur Auflösung
von Verknüpfungen
von Datenobjekten gibt es Fälle,
in welchen eine Aktion zur Auflösung
einer Verknüpfung
die letzte Verknüpfung
eines Segments zu einem Datenobjekt beseitigt. Dies ist ein Zeichen
dafür,
daß das
Segment von keinem Datenobjekt mehr benötigt wird und gelöscht werden
kann, es sei denn, die Aktionsschlange würde noch immer eine Verknüpfungsanforderung
von einem Client für
dieses betreffende Segment enthalten. Wenn eine solche Aktion existieren
würde,
würde ein
unmittelbares Entfernen des Segments zu einem Datenverlust führen. Das
Vorhandensein der Verknüpfungsaktion
würde in der
Tat bedeuten, daß ein
Client die Absicht hatte, das Segment durch Backup zu sichern, diesem
jedoch durch den Inhaltsspeicher mitgeteilt wurde, daß das Segment
bereits existiert, so daß stattdessen
in der Schlange eine Verknüpfungsaktion
angeordnet wurde. Wenn sich diese Aktion in der Schlange befindet,
vertraut der Client darauf, daß das
Segment effektiv gesichert und aufbewahrt wurde. Demnach könnte entsprechend
der früheren
Feststellung das Entfernen eines Segments unmittelbar nach dem Entfernen
der letzten Verknüpfung
auf bzw. zu diesem Segment zu einem Datenverlust führen. Der Prozeß, um einen
solchen Datenverlust zu vermeiden, ist im einzelnen in 8 dargestellt.
Das Segment wird deshalb nicht unmittelbar entfernt, sondern es
wird stattdessen der Schlange des Inhaltsspeichers in Schritt S8-1
eine Segmententfernungsaktion hinzugefügt, und der Inhaltsspeicher
versteckt das Segment für
die übrige
Welt (tatsächlich
gegenüber den
Backup-Clients) in Schritt S8-3. Wenn diese Segmententfernungsaktion
das Ende der Schlange erreicht und für die Verarbeitung bereit ist,
ist jede andere Aktion, die dieses Segment hätte betreffen können und
in der Schlange war, verarbeitet worden und es können keine neuen Aktionen für dieses
Segment der Schlange hinzugefügt
worden sein. Wenn also der Inhaltsspeicher für die Bearbeitung der Aktion
der Segmentbeseitigung bereit ist, so verifiziert er in den Schritten
S8-5, ob dem Segment irgendeine Verknüpfung hinzugefügt worden
ist. Wenn dies der Fall ist, so wird die Beseitigungsaktion in Schritt
S8-7 gelöscht,
da das Segment noch benötigt
wird, ansonsten wird in Schritt S8-9 die Beseitigungsaktion ausgeführt.
-
Wie
es sich aus der obigen Beschreibung des Beseitigungsprozesses ergibt,
wird ein Datenobjekt, welches aus einer Dateigruppe entfernt wird,
tatsächlich
nicht aus dem Inhaltsspeicher gelöscht, es sei denn, es wird
durch keine weitere Dateigruppe mehr aufgerufen bzw. ist mit keiner
weiteren Dateigruppe mehr verknüpft.
In ähnlicher
Weise wird auch ein gespeichertes Segment tatsächlich nicht aus dem Inhaltsspeicher
gelöscht,
es sei denn, es ist nicht mehr mit irgendeinem Datenobjekt verknüpft. Dies
ist Ergebnis der Tatsache, daß der
Inhaltsspeicher die Einzelinstanzspeicherung verwendet, um eine
effiziente Speichergröße beizubehalten.
-
Demnach
kann ein Backup-System, welches die Einzelinstanzspeicherung von
Dateisegmenten implementiert, um eine effiziente Speicherraumausnutzung
zu erreichen, so ausgestaltet werden, daß es das Löschen von Dateien und Segmenten
entsprechend einem Datenhalteschema ermöglicht, ohne daß die Gefahr
eines Datenverlustes besteht, welcher durch Lösch- und Schreibaktionen verursacht
wird, die sich zeitlich überlappen.
-
Viele
Veränderungen,
Modifikationen und Ergänzungen
und deren Äquivalente
zu den beschriebenen Beispielen liegen für Fachleute, welche diese Beschreibung
lesen, auf der Hand und können
implementiert werden, ohne vom Geist und Schutzumfang der vorliegenden
Erfindung abzuweichen.