DE102008015662A1 - Beseitigung - Google Patents

Beseitigung Download PDF

Info

Publication number
DE102008015662A1
DE102008015662A1 DE102008015662A DE102008015662A DE102008015662A1 DE 102008015662 A1 DE102008015662 A1 DE 102008015662A1 DE 102008015662 A DE102008015662 A DE 102008015662A DE 102008015662 A DE102008015662 A DE 102008015662A DE 102008015662 A1 DE102008015662 A1 DE 102008015662A1
Authority
DE
Germany
Prior art keywords
file
segment
data object
metadata
store
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102008015662A
Other languages
English (en)
Other versions
DE102008015662B4 (de
Inventor
Kristof De Spiegeleer
Nick Cremelie
Koen D'hondt
Bastiaan Stougie
Mark Vertongen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NortonLifeLock Inc
Original Assignee
Symantec Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Symantec Corp filed Critical Symantec Corp
Publication of DE102008015662A1 publication Critical patent/DE102008015662A1/de
Application granted granted Critical
Publication of DE102008015662B4 publication Critical patent/DE102008015662B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations

Abstract

Es können ein System, ein Verfahren und eine Vorrichtung bereitgestellt werden, um zu ermöglichen, dass ein Datenobjekt aus einem Datenobjektspeicher mit Einzelinstanzspeicherung derart beseitigt wird, dass sichergestellt ist, dass nur Datenobjekte, zu welchen auch alle Hinweise bzw. Bezugnahmen entfernt worden sind, tatsächlich aus dem Speicher entfernt werden. Damit kann man eine Konsistenz und Zuverlässigkeit des Speichers aufrecht erhalten, während ermöglicht wird, dass ein Datenobjekt, das tatsächlich gelöscht werden sollte, auch aus dem Speicher entfernt wird.

Description

  • 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.

Claims (14)

  1. Backup-System, welches so betreibbar ist, daß es Dateien oder Dateisegmente unter Verwendung eines Einzelinstanzspeicherschemas speichert, wobei das Backup-System aufweist: einen Metadatenspeicher, der in der Weise betreibbar ist, daß er Metadaten, die sich auf eine Datei beziehen, speichert, wobei jeder Speichereintrag von Metadaten einen Fingerabdruck aufweist, der aus der Datei, auf welche der Eintrag sich bezieht, berechnet wurde und der für diese Datei eindeutig ist, und einen Inhaltsspeicher, der so betreibbar ist, daß er: ein Dateisegment speichert, welches sich auf eine Datei bezieht, die in einem Speichereintrag von Metadaten identifiziert bzw. gekennzeichnet ist, wobei das Segment unter Verwendung eines Fingerabdrucks identifiziert werden kann, der aus dem Segment berechnet wurde und der für dieses Segment eindeutig ist, ein Datenobjekt speichert, welches eine Datei beschreibt, die in dem Metadatenspeicher gekennzeichnet bzw. identifiziert ist und das unter Verwendung des eindeutigen Fingerabdrucks der Datei, auf welche es sich bezieht, identifiziert werden kann, und wobei dieses Datenobjekt eine Liste aufweist, welche den Segmentfingerabdruck jedes Segments der Datei aufweist, und Aktionen mit Segmenten und Datenobjekten, die darin gespeichert sind, in chronologischer Reihenfolge des Empfangs von Befehlen ausführt, um diese Aktionen durch eine Schlange von Inhaltsspeicheraktionen auszuführen, wobei das Backup-System in der Weise betreibbar ist, daß es eine zu löschende Datei identifiziert, den Speichereintrag der Metadaten für diese Datei zum Löschen markiert, einen Hinweis bzw. Aufruf auf den Speichereintrag der Metadaten für die Datei aus dem Datenobjekt entfernt und den markierten Speichereintrag der Metadaten aus dem Metadatenspeicher löscht.
  2. System nach Anspruch 1, wobei jedes Datenobjekt mehr als eine Datei beschreiben kann und unter Verwendung des Fingerabdrucks für jede Datei, die es beschreibt, identifiziert werden kann.
  3. System nach Anspruch 2, wobei das System so betreibbar ist, daß es, als Ergebnis der Beseitigung eines Hinweises von einem Datenobjekt auf einen Metadatenspeichereintrag, das Datenobjekt keinerlei Datei mehr beschreibt, das Datenobjekt löscht.
  4. System nach Anspruch 3, wobei das System so betreibbar ist, daß es: einen Befehl zum Löschen des Datenobjekts am Ende der Aktionsschlange des Inhaltsspeichers hinzufügt, das Datenobjekt versteckt, prüft, wann der Löschbefehl das vordere Ende der Aktionsschlange des Inhaltsspeichers erreicht, um dann festzustellen, ob das Datenobjekt Gegenstand eines Schreibvorgangs war, seitdem der Löschbefehlt der Befehlsschlange hinzugefügt worden ist und, falls kein solcher Schreibvorgang aufgetreten ist, das Datenobjekt löscht.
  5. System nach einem der vorstehenden Ansprüche, wobei das System in der Weise betreibbar ist, daß es im Anschluß an das Entfernen des Hinweises auf den Metadatenspeichereintrag aus dem Datenobjekt, die Verknüpfung zu irgendeinem Segment, welche sich nicht mehr auf irgendeine in dem Datenobjekt beschriebene Datei bezieht, aus dem Datenobjekt entfernt.
  6. System nach Anspruch 5, wobei das System so betreibbar ist, daß es im Anschluß an das Entfernen der Segmentverknüpfung aus dem Datenobjekt das Segment entfernt, wenn nunmehr kein Datenobjekt mehr eine Verknüpfung zu diesem Segment hat.
  7. System nach Anspruch 6, wobei das System in der Weise betreibbar ist, daß es einen Befehl zum Löschen des Segments dem Ende der Aktionsschlange des Inhaltsspeichers hinzufügt, das Segment versteckt, überprüft, wann der Befehl zum Löschen das vordere Ende der Aktionsschlange des Inhaltsspeichers erreicht, um dann festzustellen, ob das Segment Gegenstand eines Schreibvorgangs war, seit der Befehl zum Löschen desselben der Befehlsschlange hinzugefügt worden ist und, falls kein solcher Schreibvorgang aufgetreten ist, das Segment löscht.
  8. Verfahren zum Löschen von Dateien oder Dateisegmenten aus einem Speichersystem, welches ein Speicherschema der Einzelinstanzspeicherung hat, wobei das Verfahren aufweist: Speichern von Metadaten, die sich auf eine Datei beziehen, in einem Metadatenspeicher, wobei jeder Eintrag in dem Metadatenspeicher einen Fingerabdruck umfaßt, der aus der Datei, auf welche der Eintrag sich bezieht, berechnet wurde und der für diese Datei eindeutig ist, Speichern eines Dateisegments, welches zu einer Datei gehört, die in einem Eintrag eines Metadatenspeichers identifiziert bzw. gekennzeichnet ist, in einem Inhaltsspeicher, wobei das Segment unter Verwendung eines Fingerabdrucks identifiziert werden kann, der aus dem Segment berechnet wurde und für das Segment eindeutig ist, Speichern eines Datenobjekts, welches eine Datei beschreibt, die in einem Eintrag eines Metadatenspeichers identifiziert bzw. gekennzeichnet ist und welches unter Verwendung des eindeutigen Fingerabdrucks der Datei, welche es beschreibt, identifiziert werden kann, in dem Inhaltsspeicher, wobei das Datenobjekt eine Liste aufweist, welches den Segmentfingerabdruck jedes Segments der Datei enthält; Veranlassen, daß Befehle zu Aktionen mit Segmenten und Datenobjekten, die in dem Inhaltsspeicher gespeichert werden, in chronologischer Reihenfolge nach dem Empfang der Befehle ausgeführt werden, um diese Aktionen auszuführen, und Identifizieren einer zu löschenden Datei, Markieren des Eintrags für die Datei im Metadatenspeicher für das Löschen, Entfernen eines Hinweises auf den Eintrag für die Datei im Metadatenspeicher aus dem Datenobjekt, und Löschen des markierten Eintrags im Metadatenspeicher aus dem Metadatenspeicher.
  9. Verfahren nach Anspruch 8, wobei jedes Datenobjekt mehr als eine Datei beschreiben kann und unter Verwendung des Fingerabdrucks für jede Datei identifiziert werden kann, die es beschreibt.
  10. Verfahren nach Anspruch 9, welches weiterhin aufweist: Falls als Ergebnis des Beseitigens eines Hinweises auf einen Eintrag im Metadatenspeicher aus dem Datenobjekt das Datenobjekt keinerlei Datei mehr beschreibt, Löschen des Datenobjekts.
  11. Verfahren nach Anspruch 10, wobei das Löschen des Datenobjekts aufweist: Hinzufügen eines Befehls zum Löschen des Datenobjekts am Ende der Aktionsschlange des Inhaltsspeichers, Verstecken des Datenobjekts, Überprüfen, wenn der Befehl zum Löschen das vordere Ende der Aktionsschlange des Inhaltsspeichers erreicht, um dann festzustellen, ob das Datenobjekt Gegenstand eines Schreibvorgangs war, seitdem der Befehl zum Löschen der Befehlsschlange hinzugefügt wurde, und falls kein solcher Schreibvorgang aufgetreten ist, Löschen des Datenobjekts.
  12. Verfahren nach einem der Ansprüche 8 bis 11, welches weiterhin aufweist: Im Anschluß an die Beseitigung des Hinweises auf den Eintrag für die Datei im Metadatenspeicher aus dem Datenobjekt, Entfernen der Verknüpfung zu irgendeinem Segment, das sich nicht mehr auf irgendeine Datei bezieht, die einen Hinweis in dem Datenobjekt hat, aus dem Datenobjekt.
  13. Verfahren nach Anspruch 12, welches weiterhin aufweist: Im Anschluß an das Beseitigen der Segmentverknüpfung aus dem Datenobjekt Entfernen des Segments, wenn nunmehr kein Datenobjekt eine Verknüpfung zu diesem Segment hat.
  14. Verfahren nach Anspruch 13, wobei das Beseitigen des Segments aufweist: Hinzufügen eines Befehls zum 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 Aktionsschlage des Inhaltsspeichers erreicht hat, um dann festzustellen, ob das Segment Gegenstand eines Schreibvorgangs war, seitdem der Befehl zum Löschen der Befehlsschlange hinzugefügt worden war, und, falls kein solcher Schreibvorgang aufgetreten ist, Löschen des Segments.
DE102008015662A 2007-03-29 2008-03-25 Beseitigung von Daten Expired - Fee Related DE102008015662B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/731,572 2007-03-29
US11/731,572 US20080243878A1 (en) 2007-03-29 2007-03-29 Removal

Publications (2)

Publication Number Publication Date
DE102008015662A1 true DE102008015662A1 (de) 2008-10-02
DE102008015662B4 DE102008015662B4 (de) 2010-06-24

Family

ID=39386788

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102008015662A Expired - Fee Related DE102008015662B4 (de) 2007-03-29 2008-03-25 Beseitigung von Daten

Country Status (6)

Country Link
US (1) US20080243878A1 (de)
JP (1) JP2008251010A (de)
CN (1) CN101393532A (de)
AU (1) AU2008201421A1 (de)
DE (1) DE102008015662B4 (de)
GB (1) GB2448065B (de)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080250085A1 (en) * 2007-04-09 2008-10-09 Microsoft Corporation Backup system having preinstalled backup data
US8266430B1 (en) * 2007-11-29 2012-09-11 Emc Corporation Selective shredding in a deduplication system
JP2009239855A (ja) * 2008-03-28 2009-10-15 Mitsubishi Electric Corp メタデータ管理装置
US8086502B2 (en) 2008-03-31 2011-12-27 Ebay Inc. Method and system for mobile publication
US9098495B2 (en) * 2008-06-24 2015-08-04 Commvault Systems, Inc. Application-aware and remote single instance data management
US20090319570A1 (en) * 2008-06-24 2009-12-24 Mahesh Subramanian Consolidating duplicate item images using an image identifier
US9483743B1 (en) * 2008-06-30 2016-11-01 Sprint Communications Company L.P. System and method for improving recovery of a telecommunications network from an unscheduled loss of service using repeatable requirements for applications by design criticality classification
US8818978B2 (en) 2008-08-15 2014-08-26 Ebay Inc. Sharing item images using a similarity score
US7991646B2 (en) 2008-10-30 2011-08-02 Ebay Inc. Systems and methods for marketplace listings using a camera enabled mobile device
US8055614B1 (en) * 2008-12-23 2011-11-08 Symantec Corporation Method and apparatus for providing single instance restoration of data files
US9483486B1 (en) * 2008-12-30 2016-11-01 Veritas Technologies Llc Data encryption for a segment-based single instance file storage system
US8397051B2 (en) 2009-02-23 2013-03-12 Autonomy, Inc. Hybrid hash tables
US8090683B2 (en) * 2009-02-23 2012-01-03 Iron Mountain Incorporated Managing workflow communication in a distributed storage system
US8145598B2 (en) * 2009-02-23 2012-03-27 Iron Mountain Incorporated Methods and systems for single instance storage of asset parts
US20100215175A1 (en) * 2009-02-23 2010-08-26 Iron Mountain Incorporated Methods and systems for stripe blind encryption
US8825660B2 (en) 2009-03-17 2014-09-02 Ebay Inc. Image-based indexing in a network-based marketplace
US8255366B1 (en) 2009-03-25 2012-08-28 Symantec Corporation Segment-based method for efficient file restoration
US8762348B2 (en) * 2009-06-09 2014-06-24 Emc Corporation Segment deduplication system with compression of segments
US8731190B2 (en) * 2009-06-09 2014-05-20 Emc Corporation Segment deduplication system with encryption and compression of segments
US8401181B2 (en) * 2009-06-09 2013-03-19 Emc Corporation Segment deduplication system with encryption of segments
US8615498B1 (en) * 2009-06-19 2013-12-24 Symantec Corporation Systems and methods for migrating an object from a deduplication store to an external domain
US8478799B2 (en) 2009-06-26 2013-07-02 Simplivity Corporation Namespace file system accessing an object store
BRPI1013794A8 (pt) * 2009-06-26 2017-10-10 Simplivity Corp Método de adaptar um processo de indexação de acesso uniforme com uma memória de acesso não uniforme e sistema de computador
JP5254141B2 (ja) * 2009-07-14 2013-08-07 富士通株式会社 アーカイブ装置、データ格納プログラムおよびデータ格納方法
JP5500932B2 (ja) * 2009-09-30 2014-05-21 富士フイルム株式会社 内視鏡検査情報管理システム、内視鏡検査情報管理方法、内視鏡検査情報管理プログラム
US8762338B2 (en) 2009-10-07 2014-06-24 Symantec Corporation Analyzing backup objects maintained by a de-duplication storage system
US8914324B1 (en) 2009-10-16 2014-12-16 Symantec Corporation De-duplication storage system with improved reference update efficiency
US20110093439A1 (en) * 2009-10-16 2011-04-21 Fanglu Guo De-duplication Storage System with Multiple Indices for Efficient File Storage
US8121993B2 (en) * 2009-10-28 2012-02-21 Oracle America, Inc. Data sharing and recovery within a network of untrusted storage devices using data object fingerprinting
EP2548122B1 (de) * 2010-03-16 2021-06-09 BlackBerry Limited In hohem masse skalierbare und verteilte datenentduplikation
US8650159B1 (en) * 2010-08-26 2014-02-11 Symantec Corporation Systems and methods for managing data in cloud storage using deduplication techniques
CN102147711B (zh) * 2010-12-31 2014-04-02 华为数字技术(成都)有限公司 一种基于数据内容识别的存储方法及装置
CN102098339A (zh) * 2011-01-26 2011-06-15 广州酷狗计算机科技有限公司 一种音频文件传输方法及其系统
US20120271823A1 (en) * 2011-04-25 2012-10-25 Rovi Technologies Corporation Automated discovery of content and metadata
CN102368268B (zh) * 2011-10-25 2013-06-12 无锡城市云计算中心有限公司 一种实现多元数据一致性的方法
US9087010B2 (en) 2011-12-15 2015-07-21 International Business Machines Corporation Data selection for movement from a source to a target
US8914338B1 (en) 2011-12-22 2014-12-16 Emc Corporation Out-of-core similarity matching
US8667032B1 (en) * 2011-12-22 2014-03-04 Emc Corporation Efficient content meta-data collection and trace generation from deduplicated storage
US8868520B1 (en) * 2012-03-01 2014-10-21 Netapp, Inc. System and method for removing overlapping ranges from a flat sorted data structure
US9934522B2 (en) 2012-03-22 2018-04-03 Ebay Inc. Systems and methods for batch- listing items stored offline on a mobile device
US10275397B2 (en) 2013-02-22 2019-04-30 Veritas Technologies Llc Deduplication storage system with efficient reference updating and space reclamation
US20140310385A1 (en) * 2013-04-16 2014-10-16 Tencent Technology (Shenzhen) Company Limited Method and server for pushing media file
CN103559106B (zh) * 2013-10-14 2016-03-02 华为技术有限公司 一种数据的备份方法、装置及系统
US9575680B1 (en) 2014-08-22 2017-02-21 Veritas Technologies Llc Deduplication rehydration
US10423495B1 (en) 2014-09-08 2019-09-24 Veritas Technologies Llc Deduplication grouping
US9866634B1 (en) * 2014-09-26 2018-01-09 Western Digital Technologies, Inc. Managing and accessing data storage systems
WO2016191152A1 (en) * 2015-05-27 2016-12-01 Google Inc. System and method for automatic cloud-based full-data backup and restore on mobile devices
WO2017024288A1 (en) 2015-08-05 2017-02-09 Chita Inc. Managing regulated content items stored on non-regulated storage platforms
US10601863B1 (en) 2016-03-25 2020-03-24 Fireeye, Inc. System and method for managing sensor enrollment
US10785255B1 (en) 2016-03-25 2020-09-22 Fireeye, Inc. Cluster configuration within a scalable malware detection system
US10476906B1 (en) 2016-03-25 2019-11-12 Fireeye, Inc. System and method for managing formation and modification of a cluster within a malware detection system
US10671721B1 (en) * 2016-03-25 2020-06-02 Fireeye, Inc. Timeout management services
CN106407040B (zh) 2016-09-05 2019-05-24 华为技术有限公司 一种远程数据复制方法及系统
US11301419B2 (en) * 2018-03-02 2022-04-12 Salesforce.Com, Inc. Data retention handling for data object stores
CN110874182B (zh) * 2018-08-31 2023-12-26 杭州海康威视系统技术有限公司 一种条带索引的处理方法、装置及设备
CN109710615B (zh) * 2018-12-29 2021-08-03 江苏满运软件科技有限公司 数据库的访问管理方法、系统、电子设备和存储介质
CN109787835B (zh) * 2019-01-30 2021-11-19 新华三技术有限公司 一种会话备份方法及装置
CN114489483A (zh) * 2021-12-24 2022-05-13 深圳市捷顺科技实业股份有限公司 一种基于对象储存的磁盘管理方法及对象存储模组

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5644698A (en) * 1996-05-30 1997-07-01 International Business Machines Corporation Configurable reuse delay criterion for storage volumes
US6038639A (en) * 1997-09-09 2000-03-14 Storage Technology Corporation Data file storage management system for snapshot copy operations
US7010554B2 (en) * 2002-04-04 2006-03-07 Emc Corporation Delegation of metadata management in a storage system by leasing of free file system blocks and i-nodes from a file system owner
US6782389B1 (en) * 2000-09-12 2004-08-24 Ibrix, Inc. Distributing files across multiple, permissibly heterogeneous, storage devices
US6865655B1 (en) * 2002-07-30 2005-03-08 Sun Microsystems, Inc. Methods and apparatus for backing up and restoring data portions stored in client computer systems
US7430570B1 (en) * 2003-04-28 2008-09-30 Ibrix, Inc. Shadow directory structure in a distributed segmented file system
US20070067332A1 (en) * 2005-03-14 2007-03-22 Gridiron Software, Inc. Distributed, secure digital file storage and retrieval
US7685175B2 (en) * 2005-08-12 2010-03-23 Michael Lee Carroll Content manager
US20070198659A1 (en) * 2006-01-25 2007-08-23 Lam Wai T Method and system for storing data

Also Published As

Publication number Publication date
AU2008201421A1 (en) 2008-10-16
GB0805503D0 (en) 2008-04-30
CN101393532A (zh) 2009-03-25
JP2008251010A (ja) 2008-10-16
DE102008015662B4 (de) 2010-06-24
GB2448065B (en) 2009-03-04
GB2448065A (en) 2008-10-01
US20080243878A1 (en) 2008-10-02

Similar Documents

Publication Publication Date Title
DE102008015662B4 (de) Beseitigung von Daten
DE102013215535B4 (de) Sicherung oder wiederherstellung von daten mit hilfe eines hauptspeichers und nichtflüchtiger speichermedien
DE4435751B4 (de) Dateiname- und Verzeichnis- Erfassungsverfahren zur Verwendung mit einem Betriebssystem
DE112010004947B4 (de) Wiederherstellung einer vollständigen Systemsicherung und inkrementeller Sicherungen unter Verwendung von mehreren gleichzeitigen Datenströmen von Einheiten
DE60113586T2 (de) Übertragen von miteinander verbundenen Datenobjekten in einer verteilten Datenspeicherumgebung
DE69907631T2 (de) Netzzugang zu inhaltsadressierbaren daten
DE112011100534B4 (de) Mehrstufiger Sicherungsprozess
DE102013204972B4 (de) Hybride Sicherung und Wiederherstellung eines sehr grossen Dateisystems unter Verwendung von Metadaten-Abbildsicherung und herkömmlicher Sicherung
DE112010004931B4 (de) Mehrphasige Wiederherstellung von Dateisystemen mit Selektiver Bedarfsweiser Verfügbarkeit von Daten
DE202010018481U1 (de) Asynchroner verteilter Objekt-Upload für replizierte Assoziativspeichercluster
DE102018002884A1 (de) Komponentenbasierte Synchronisierung von Digitalassets
DE112017005868T5 (de) Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem
DE10112941A1 (de) System und Verfahren für das parallele Lesen von primären und sekundären Sicherungen zur Wiederherstellung mehrerer gemeinsam benutzter Datenbankdateien
DE202009019149U1 (de) Asynchron verteilte Speicherbereinigung für replizierte Speichercluster
DE112018004008B4 (de) Auf dateisysteminhalten beruhende sicherheit
DE102006055964A1 (de) Verfahren und Vorrichtung zur Datensicherung
DE112019000143T5 (de) Versionierungsvalidierung für die datenübertragung zwischen heterogenen datenspeichern
EP3084638A1 (de) Posix-kompatibles dateisystem, verfahren zum erzeugen einer dateiliste und speichervorrichtung
DE112017000190T5 (de) Durchgehende Verschlüsselung und Backup in Datenschutzumgebungen
DE4420451A1 (de) Sperrmechanismus für ein CHECK-IN/CHECK-OUT-Modell
DE19964236C2 (de) Produkt zur schnellen Datensicherung und Datenübertragung
DE112015000222T5 (de) Zusammenführen von mehreren Zeitpunktkopien zu einer zusammengeführten Zeitpunktkopie
DE112019006676T5 (de) Blockchaintechnologie zur Regelung der Datenintegrität und zum Existenzbeweis bei Datenschutzsystemen
DE112020003437T5 (de) Hyper-scale p2p-dedupliziertes speichersystem unter verwendung einesdistributed ledger
DE102021125630A1 (de) Datensynchronisation in einem datenanalysesystem

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20111001