DE112010002938B4 - Eine integrierte Herangehensweise zur Deduplizierung von Daten in einer verteiltenUmgebung, die eine Quelle und ein Ziel umfasst - Google Patents

Eine integrierte Herangehensweise zur Deduplizierung von Daten in einer verteiltenUmgebung, die eine Quelle und ein Ziel umfasst Download PDF

Info

Publication number
DE112010002938B4
DE112010002938B4 DE112010002938.5T DE112010002938T DE112010002938B4 DE 112010002938 B4 DE112010002938 B4 DE 112010002938B4 DE 112010002938 T DE112010002938 T DE 112010002938T DE 112010002938 B4 DE112010002938 B4 DE 112010002938B4
Authority
DE
Germany
Prior art keywords
deduplication
computer system
data
destination
source
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.)
Active
Application number
DE112010002938.5T
Other languages
English (en)
Other versions
DE112010002938T5 (de
Inventor
James Patrick Smith
David Maxwell Cannon
David Gregory Van Hise
Mark Yakushev
Matthew Anglin
Avishai Hochberg
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112010002938T5 publication Critical patent/DE112010002938T5/de
Application granted granted Critical
Publication of DE112010002938B4 publication Critical patent/DE112010002938B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • 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
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • 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/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • G06F16/1752De-duplication implemented within the file system, e.g. based on file segments based on file chunks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Human Computer Interaction (AREA)

Abstract

Verfahren zur Ermöglichung einer Deduplizierung einer Datei sowohl an einem Quell- als auch an einem Zielort in einem verteilten Speichermanagementsystem, wobei das Speichermanagementsystem ein Quellcomputersystem umfasst, das mit einem Zielcomputersystem und einem Zieldatenspeicher verbunden ist, der sich innerhalb des Zielcomputersystemes befindet, wobei das Verfahren ferner umfasst: Bereitstellen eines Deduplizierungsprozesses zur Deduplizierung von Datenchunks, die in deduplizierter Form innerhalb des Zieldatenspeichers gespeichert werden sollen, wobei ermöglicht wird, Deduplizierungsinstruktionen durch das Zielcomputersystem auszuführen und Deduplizierungsinstruktionen durch das Quellcomputersystem auszuführen; Deduplizierung einer Datei in einen Satz von deduplizierten Datenchunks unter Verwendung des Deduplizierungsprozesses, wobei der Deduplizierungsprozess einen Satz von Deduplizierungsinstruktionen umfasst, die entweder durch das Quellcomputersystem oder das Zielcomputersystem ausgeführt werden; und Speichern des Satzes der deduplizierten Datenchunks innerhalb des Zieldatenspeichers; gekennzeichnet durch Verwalten eines Indexes, der zur Nachverfolgung von deduplizierten Datenchunks dient, die innerhalb des Zieldatenspeichers gespeichert sind, wobei das Quellcomputersystem und das Zielcomputersystem sich den Index teilen, so dass sowohl das Quellcomputersystem als auch das Zielcomputersystem auf den Index zugreifen können; und Aktualisieren der Deduplizierungsinformationen für den Satz der deduplizierten Datenchunks innerhalb des geteilten Indexes.

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung bezieht sich im Allgemeinen auf Datenspeicherung- und Wartungsfunktionen, die innerhalb eines Datenspeicherungssystems durchgeführt werden. Die vorliegende Erfindung bezieht sich im Speziellen auf eine integrierte Herangehensweise zur effizienten Deduplizierung von Daten in einem Speichermanagementsystem durch Durchführung von Deduplikationsaktivitäten sowohl an der Quelle als auch am Ziel der Daten.
  • Hintergrundinformationen
  • Datendeduplizierung, der Prozess der Eliminierung von redundanten Daten, ist eine wichtige in Speichersystemen angewandte Technologie geworden. Deduplizierung ermöglicht die Verringerung der benötigten Speicherkapazität, weil nur einfach vorhandene Datenteile gespeichert werden. In einer typischen Konfiguration hat ein datenträgerbasiertes Speichersystem, wie zum Beispiel ein Speichermanagementserver oder VTL (Virtuelle Bandbibliothek, „Virtual Tape Library”) die Fähigkeit, redundante „Datenumfänge” (auch bekannt als „chunks”) zu detektieren und die Duplizierung zu verringern durch Vermeidung der redundanten Speicherung solcher Umfänge. Das Deduplizierungsspeichersystem könnte zum Beispiel die Datei A in Chunks a–h aufteilen, detektieren, dass die Chunks d und e redundant sind und die redundanten Chunks nur einmal speichern. Die Redundanz könnte innerhalb der Datei A oder mit anderen im Speichersystem gespeicherten Dateien auftreten.
  • Bekannte Techniken zur Deduplizierung von Datenobjekten existieren. Allerdings ermöglichen existierende Deduplizierungslösungen kein Teilen der Datenchunks, die durch eine Deduplizierungsoperation erzeugt wurden, die entweder an der Quelle oder an dem Ziel durchgeführt wurde. Kunden sind dazu gezwungen, entweder eine ineffiziente und unvollständige Deduplizierungsanwendung einzusetzen oder eine Deduplizierung bei zwei Produkten einzusetzen, die keine deduplizierten Daten teilen können.
  • Die Veröffentlichung „Evaluating Data Deduplication Solutions” betrifft ein Data Management Tool, Deduplizierung und einen Überblick von dafür geeigneten Lösungen (IBM: Evaluating Data Deduplication Solutions. Evaluating Data Deduplication Solutions, 2008. Im Internet: <URL: http://www.csiltd.co.uk/PDFS/IBM%20Nseries%20Data%20Deduplication.pdf> [recherchiert am 08.07.2013]).
  • Die US 2008/0 034 012 A1 betrifft ein Verfahren zum Entscheiden, ob eine bestimmte Datei auf einem Zielcomputer in einem zentralen Speichersystem gesichert werden soll, und ein System zum Ausführen des Verfahren, wobei das Verfahren die Schritte aufweist: Berechnen eines bestimmten Hashkeys aus dem Inhalt der bestimmten Datei, Verifizieren, ob der bestimmte Hashkey sich bereits in einer lokalen Datenbank auf einem Zielcomputer befindet, wobei für jede Computerdatei auf dem Zielcomputer, welche zuvor bereits gesichert worden ist, die lokale Datenbank eine Aufzeichnung aufweist, welche umfasst: einen Dateihashkey, der aus der Computerdatei berechnet wurde, und einen lokalen Dateipfad in dem Zielcomputer, wo die Computerdatei gespeichert sein sollte, wobei dem Dateipfad der Dateihashkey zugeordnet ist, falls der bestimmte Hashkey nicht in der lokalen Datenbank vorhanden ist, Sichern der bestimmten Datei durch Durchführen der Schritte: A. Erzeugen einer Sicherungsdatei (Backup-Datei), die ein Duplikat der bestimmten Datei ist, B. Umbenennen der Sicherungsdatei durch den bestimmten Hashkey, C. Speichern der umbenannten Backup-Datei in einem zentralen Speichersystem, und Speichern einer neuen Aufzeichnung in der lokalen Datenbank, welche den bestimmten Hashkey und einen bestimmten Pfad in dem Zielcomputer umfasst, wo die bestimmte Datei gegebenenfalls wiederhergestellt werden soll, und falls der bestimmte Hashkey in der lokalen Datenbank vorhanden ist, nicht Sichern der bestimmten Datei in dem zentralen Speichersystem.
  • Zusammenfassung
  • Aufgabe der Erfindung ist es, ein Speichermanagementsystem sowie ein Verfahren zur integrierten Deduplizierung mit verbesserter Flexibilität und Unabhängigkeit von dem Ort (Quelle oder Ziel) bereitzustellen.
  • Die der Erfindung zugrunde liegenden Aufgaben werden mit den Merkmalen der unabhängigen Patentansprüche gelöst. Ausführungsformen der Erfindung sind in den abhängigen Ansprüchen angegeben.
  • Ein Aspekt der vorliegenden Erfindung umfasst eine Lösung, um den oben erwähnten Problemen mit einer integrierten Herangehensweise zur Durchführung von Deduplizierungen zu begegnen. In einer Ausführungsform ermöglicht eine Systemkonfiguration ein nahtloses Schalten zwischen Quell-(Client) und Ziel(Server)-Deduplizierungsaktivitäten (ein Client ist eine Quelle und ein Server ist ein Ziel, diese Begriffe werden hier austauschbar verwendet). Das Umschalten kann auf Dateiebene oder auf Knotenebene geschehen (ein Knoten ist eine Darstellung aller Daten von einem Quell-Client, wie sie innerhalb des Zielspeicherservers gesehen werden). Daher kann der Clientknoten A dazu ausgebildet sein, eine quellseitige Deduplizierung durchzuführen, wobei der Clientknoten B dazu ausgebildet ist, eine zielseitige Deduplizierung durchzuführen. Zusätzlich können Chunks, die durch entweder beim Ziel oder bei der Quelle durchgeführte Deduplizierungsaktivitäten erzeugt wurden, zwischen mehreren Knoten und zwischen mehreren unterschiedlichen Dateien wiederverwendet werden.
  • In einer Implementierung der vorliegenden Erfindung wird diese integrierte Deduplizierungsfunktionalität dadurch erreicht, dass derselbe Deduplizierungsprozess verwendet wird und dass der Deduplizierungsindex zwischen der Quelle und dem Ziel geteilt wird. Jegliche Datentransformierung, wie zum Beispiel Komprimierung und Verschlüsselung, wird nach einem Fingerprinting und Hash-Identifizierung der Datenchunks durchgeführt, um sicherzustellen, dass die innerhalb irgendeines Teiles des Speichermanagementsystemes gespeicherten Datenchunks zueinander identisch sind. In zusätzlichen Implementierungen werden Policies bereitgestellt, um den Ort der Deduplizierung zu bestimmen, um eine automatisierte und granulare Definition des Bereichs der durchzuführenden Deduplizierung beim Client gegenüber der Serverumgebung zu ermöglichen.
  • Obwohl die vorliegende Beschreibung verschiedene Aspekte der vorliegenden Erfindung mit den Begriffen eines Clients und eines Servers beschreibt, ist die Erfindung nicht auf eine Client-Server-Implementierung beschränkt. Vielmehr können die offenbarten Funktionsweisen auf irgendeine Lösung angewendet werden, die die Speicherung und das Abrufen von deduplizierten Daten zwischen einer Quelle und einem Ziel umfasst.
  • Eine Ausführungsform der vorliegenden Erfindung ermöglicht die Deduplizierung einer Datei entweder an einem Quell- oder an einem Zielort in einem verteilten Speichermanagementsystem. Das Speichermanagementsystem hat ein Quellcomputersystem, das mit einem Zielcomputersystem verbunden ist, und der Zieldatenspeicher ist innerhalb des Zielcomputersystems angeordnet. Das Speichermanagementsystem verwaltet ferner einen geteilten Index zur Nachverfolgung der deduplizierten Datenchunks, die innerhalb des Zieldatenspeichers gespeichert sind.
  • In einer Ausführungsform wird der geteilte Index als Datenbank geteilt und sowohl die Quellrechenmaschine als auch die Zielrechenmaschine können auf ihn zugreifen. Alternativ kann auf den geteilten Index über ein Client-Server-Protokoll zugegriffen werden, das eine Kommunikation von Datenchunkinformationen zwischen der Quelle und dem Ziel ermöglicht.
  • Ein Deduplizierungsprozess zur Deduplizierung von Datenchunks, die innerhalb des Zieldatenspeichers gespeichert werden sollen, wird bereitgestellt. Die Deduplizierung wird durch die Ausführung von Deduplizierungsinstruktionen entweder beim Zielcomputersystem oder beim Quellcomputersystem durchgeführt. Die Datei wird also durch Verwendung des Deduplizierungsprozesses in einen Satz von deduplizierten Datenchunks transformiert. Nach der Deduplizierung wird der Satz der deduplizierten Datenchunks innerhalb des Zieldatenspeichers gespeichert und die Deduplizierungsinformationen für den Satz von deduplizierten Datenchunks wird innerhalb des geteilten Indexes aktualisiert. Dieser Satz von deduplizierten Datenchunks kann später an der Quelle wieder hergestellt werden.
  • Weitere Ausführungsformen verwenden einen Fingerprinting-Algorithmus, um die Chunks zu definieren, obwohl jeglicher gewählter Mechanismus zur Definition der Chunks funktioniert, solange sowohl die Quelle als auch das Ziel denselben Mechanismus benutzt. In einer Ausführungsform umfasst der Deduplizierungsprozess einen Fingerprinting-Algorithmus zur Teilung der Daten in Chunks variabler Größe und einen Hashingalgorithmus, der zur Identifizierung deduplizierter Chunks sowohl beim Quellcomputersystem als auch beim Zielcomputersystem verwendet wird. Alternativ kann der Deduplizierungsprozess einen ersten Satz von Fingerprinting- und Hashingalgorithmen, die für Deduplizierungsaktivitäten verwendet werden, die auf dem Quellcomputersystem ausgeführt werden, und einen zweiten Satz von Fingerprinting- und Hashingalgorithmen umfassen, die für Deduplizierungsaktivitäten verwendet werden, die auf dem Zielcomputersystem ausgeführt werden.
  • Auch werden im Weiteren Ausführungsformen, Datentransformationen nach Fingerprinting und Hash-Identifizierung durchgeführt. Diese Datentransformationen können Kompression und/oder Verschlüsselungen umfassen. Die Datentransformationen können durch die Quellrechenmaschine für jeden Chunk in Abhängigkeit von einer Wiederherstellung des Satzes der deduplizierten Datenchunks an der Quellrechenmaschine rückgängig gemacht werden. Alternativ können die Transformationen durch die Zielrechenmaschine vor einer Wiederherstellung des Satzes der deduplizierten Datenchunks an der Quellrechenmaschine wiederhergestellt werden.
  • Eine andere Ausführungsform der vorliegenden Erfindung ermöglicht die Deduplikation einer Datei, entweder an einem Quell- oder an einem Zielort in einem verteilten Speichermanagementsystem entsprechend der Benutzung einer ausgewählten Policy.
  • Dieses Speichermanagementsystem ist auch dazu ausgebildet, ein Quellcomputersystem, das mit einem Zielcomputersystem verbunden ist, zu unterstützen, wobei der Zieldatenspeicher innerhalb des Zielcomputersystemes angeordnet ist und innerhalb des Zieldatenspeichers gespeicherte Deduplizierungsinformationen der Daten durch einen geteilten Index gemanagt werden. In dieser Ausführungsform wird ein Hashingalgorithmus für eine Deduplizierung einer Datei verwendet, die innerhalb des Zieldatenspeichers gespeichert wird.
  • In dieser Ausführungsform wird eine ausgewählte Policy aus einer Vielzahl von definierten Policies angewendet, um den Ort der Deduplizierungsaktivitäten entweder an der Quellrechenmaschine oder an der Zielrechenmaschine zu bestimmen. Die Datei wird an dem bestimmten Ort unter Verwendung des ausgewählten Deduplizierungsprozesses dedupliziert und die Deduplizierungsinformationen für die Datei wird innerhalb des geteilten Indexes aktualisiert. In weiteren Ausführungsformen kann die ausgewählte Policy basierend auf der Zeit, der Systemauslastung, des Dateityps, der Dateicharakteristiken, des Clientknoten oder der Policy Domain und anderen Faktoren ausgewählt werden.
  • Kurze Beschreibung der Figuren
  • Die vorliegende Erfindung wird nun lediglich beispielhaft unter Bezugnahme auf bevorzugte Ausführungsformen, wie sie in den folgenden Figuren dargestellt sind, beschrieben:
  • 1a1c stellen beispielhafte Konfigurationen eines Speichermanagementsystems dar, das Deduplizierungsaktivitäten jeweils bei einer Quelle, einem Ziel und einer Vorrichtung wie aus dem Stand der Technik bekannt, durchführt;
  • 2a stellt eine beispielhafte Konfiguration eines Speichermanagementsystems dar, das integrierte Deduplizierungsaktivitäten bei einer Quelle nach einer Ausführungsform der vorliegenden Erfindung durchführt;
  • 2b stellt eine beispielhafte Konfiguration eines Speichermanagementsystems dar, das integrierte Deduplizierungsaktivitäten bei einem Ziel nach einer Ausführungsform der vorliegende Erfindung durchführt;
  • 3 stellt ein Flussdiagramm dar, das abbildet, wie Datendeduplizierungsaktivitäten bei einer Quelle nach einer Ausführungsform der vorliegenden Erfindung durchgeführt werden; und
  • 4 stellt ein Flussdiagramm dar, das eine beispielhafte Funktionsweise darstellt, wie eine Deduplizierung bei einer Quelle und einem Ziel innerhalb eines Speichersystems nach einer Ausführungsform der vorliegenden Erfindung durchgeführt wird.
  • Detaillierte Beschreibung der Erfindung
  • Die verschiedenen Ausführungsformen der vorliegenden Erfindung ermöglichen eine optimierte Steuerung von Deduplizierungsaktivitäten, die innerhalb eines Speichermanagementsystems durchgeführt werden. Existierende Speichersysteme führen Deduplizierungsaktivitäten an einem einzigen Ort aus. Im Gegensatz dazu, ermöglicht die vorliegend offenbarte Konfiguration einen integrierten und optimierten Deduplizierungsprozess, der an Datenquell- und/oder Zielorten durchgeführt werden kann.
  • In existierenden Speichermanagementkonfigurationen werden eine Vielzahl von Kompromissen eingegangen durch die exklusive Durchführung von Deduplizierungsaktivitäten bei der Quelle, dem Ziel oder einen externen Speichervorrichtung. Die unterschiedlichen Ausführungsformen der vorliegenden Erfindung treten diesen Limitierungen entgegen, dadurch dass sie die Ausführung von Deduplizierungsprozessen entweder an der Quelle oder dem Ziel ermöglichen. Dies schafft die Möglichkeit, passende Chunks, die in einem Speichersystem mit entweder Client- oder Server-seitiger Deduplizierung erzeugt wurden, erfolgreich zu speichern, zu finden und zu verwenden.
  • Die unterschiedlichen Ausführungsformen der vorliegenden Erfindung ermöglichen ferner eine erweiterte Steuerung von Deduplizierungsaktivitäten in Abhängigkeit von einer Vielzahl von Faktoren. Der Ort der Deduplizierungsaktivitäten, die innerhalb des gesamten Speichermanagementsystems ausgeführt werden können, kann auf einer granularen Ebene nach spezifischen Policies, Dateitypen, Bedingungen oder anderer definierter Einstellungen gesteuert werden.
  • In einem typischen Deduplizierungsprozess, der für die Deduplizierung eines Datenobjektes verwendet wird, wird das Objekt erst unter Verwendung eines Verfahrens wie zum Beispiel Rabin Fingerprinting in Chunks geteilt. Redundante Chunks werden unter Verwendung einer Hashfunktion wie zum Beispiel MD5 oder SHA-1 detektiert, um einen Hash-Value für jeden Chunk zu erzeugen. Dann wird dieser Wert mit Werten für schon auf dem System gespeicherten Chunks verglichen.
  • Der Hashwert für diese gespeicherten Chunks wird in einem Index festgehalten. Wenn ein redundanter Chunk identifiziert wird, kann dieser Chunk mit einem Konter auf den passenden Chunk ersetzt werden.
  • In einem Client-Server-Speichermanagementsystem hängt der Ort der Deduplizierungsaktivitäten (das heißt der Ort, wo die redundanten Datenchunks identifiziert und entfernt werden) von der Konfiguration des spezifischen Systems ab. Mit existierenden Konfigurationen kann die Deduplizierung an der Datenquelle (dem Client; dem Ziel (dem Speicherserver); oder an einer mit dem Speicherserver verbundenen Deduplizierungsvorrichtung durchgeführt werden. Es gibt eine Vielzahl von Vorteilen und Nachteilen, die mit dem Ort der Deduplizierungsoperation wie folgt zusammenhängen:
  • Durchführung der Deduplikation an der Datenquelle
  • Einige der Vorteile, die Deduplizierungsaktivitäten an der Datenquelle durchzuführen, bevor die Daten an das Ziel übermittelt werden, umfassen: Netzwerkeinsparungen; Datenspeichereinsparungen und Verwendung von CPU-Zyklen hauptsächlich an der Quellhardware im Vergleich zum Ziel. Einige der Nachteile umfassen: Die Möglichkeit von Hashkollisionen, die in unwiederherstellbaren Daten resultieren; es werden CPU-Zyklen der Quelle benötigt, selbst wenn die Quellhardware für andere Zwecke genutzt wird oder das Ziel verfügbare Zyklen hat; und die Deduplizierung kann nicht auf schon auf dem Zielspeicherserver gespeicherte Daten angewendet werden.
  • 1a zeigt eine Beispielkonfiguration eines Speichermanagementsystems 100, das Deduplizierungsaktivitäten am Quellort durchführt wie aus dem Stand der Technik bekannt ist. Das Speichersystem umfasst einen Client (die Datenquelle) 120 und einen Server (das Datenziel) 140, die über ein Netzwerk 130 miteinander verbunden sind. Bei normaler Funktionsweise des Speichersystems werden Daten von verschiedenen Clientknoten, wie zum Beispiel Client 120, an die Datenablage 145 innerhalb des Servers 140 übertragen, um gesichert, aktiviert, migriert oder in anderer Weise gemanagt zu werden.
  • Wie gezeigt wird die Datei 105 durch den Client 120 aufgenommen. Wenn die Datei 105 gelesen wird, wird sie in eine Vielzahl von Blöcken oder Chunks aufgeteilt, die als Chunks A 110, B 111, B 112, A 113, C 114 dargestellt sind. In diesem Beispiel ist Chunk A 110 ein Duplikat von Chunk A 113 und B 111 ist ein Duplikat von Chunk B 112. Bei dieser Funktionsweise wartet der Client 120 typischerweise nicht bis die gesamte Datei aufgenommen wurde, bevor er Chunks an den Server 140 sendet (mit der Ausnahme von besonders kleinen Dateien, die in einem oder nur wenigen Chunks resultieren, abhängig von der Client-Konfiguration). Der Client 120 liest Daten von einem Dateiort oder wenn die Dateien in einem Pufferspeicher durch eine Fremdanwendung wie einem E-Mail- oder Datenbankserver. Während der Client 120 die Daten der Datei 105 liest, führt ein Deduplizierungsprozess 122 Fingerprinting, Hashing, Identifikationen von Duplikatchunks und Senden der Chunks, die einmalig sind, an den Server aus. Die Datendeduplizierung der Datei 105 wird daher durch den Client 120 durchgeführt, bevor irgendwelche relevanten deduplizierten Daten eventuell an den Speicherablageserver 140 übertragen wurden.
  • Obwohl 1a eine in-band-Deduplizierung darstellt (Deduplizierung, die während der Aufnahme der Datei auf den Client-Datenspeicher geschieht), die bei Datei 105 angewendet wird, würden Fachleute erkennen, dass auch eine out-of-band-Deduplizierung (Deduplizierung, die nach Aufnahme der Datei an dem Client geschieht) bei der Datei 105 mit ähnlichen clientseitigen Deduplizierungsfunktionsweisen durchgeführt werden könnte.
  • Der Satz der Datenchunks 151, 152, 153 stellt dar, welche Datenchunks von dem Client an den Speicherserver über das Netzwerk 130 gesendet werden. Weil die Chunks der Datei 105 auf dem Clientsystem 120 dedupliziert wurden, werden nur drei deduplizierte Chunks im Gegensatz zu den fünf Datenchunks der originalen Datei 105 an den Speicherserver 140 übertragen. Allerdings existieren die Chunks A' 161 und C'' 162 schon auf dem Speicherserver Datenspeicher 145 wie gezeigt. In diesem Beispiel sind die Chunks A' 161 und A 151 und C' 162 und C 152 duplizierte Chunks, die jeweils identischen Inhalt umfassen. Weil die Deduplizierung nicht auf dem Server durchgeführt wird, werden die Chunks A' 161 und C' 162 zusätzlich zu den neu zu dem Datenspeicher hinzugefügten Chunks A 162, B 164 und C 165 existieren.
  • Durchführung der Deduplizierung am Datenziel
  • Einige der Vorteile der Durchführung von Deduplizierungsaktivitäten beim Ziel der Daten (das heißt beim Speicherserver) umfassen: Datenspeichereinspeicherungen beim Speicherserver; und Aufwendung von CPU-Zyklen eher bei der Zielhardware als bei der Quelle. Einige der Nachteile umfassen: Redundante, duplizierte Daten müssen über das Netzwerk gesendet werden, wenn die Daten an das Ziel übertragen werden; und CPU-Zyklen werden beim Ziel verwendet, selbst wenn sie zur Verwendung an der Quelle verfügbar sind.
  • 1b zeigt eine Beispielkonfiguration eines Speichermanagementsystems 100, das Deduplizierungsaktivitäten an einem Zielspeicherort durchführt wie aus dem Stand der Technik bekannt. Die Konfiguration des Clients 120, des Ziels 140 und der Netzwerkverbindung 130 sind der in 1a dargestellten ähnlich. In ähnlicher Weise wird die Datei 105 am Client 120 eingegeben. Bei der zielseitigen Deduplizierung ist es möglich, dass der Client 120 nicht einmal bemerkt, dass die Datei 105 aus Chunks besteht, da die Datei innerhalb des Clients einfach als ein Bitstrom 125 behandelt werden kann.
  • Der Client 120 fügt keinerlei Art von Chunkbegrenzern in die Datei ein, die an das Ziel 140 gesendet wird. Eine Kopie der Datei 150 wird an den Zielspeicherserverablagerung 140 über das Netzwerk 130 in einer nicht deduplizierten Form übertragen. Was bedeutet, dass die ganze Datei, wie sie original am Client 120 eingegeben wurde, übertragen wird. Daher ist es wahrscheinlich, dass einige Teile der übertragenen Datei 150 wahrscheinlich Chunks umfassen, die ein Duplikat voneinander sind.
  • Die übertragene Datei wird am Ziel nach der Funktionsweise einer Deduplizierungskomponente 142 dedupliziert. Bei diesem out-of-band-Deduplizierungsbeispiel, bei dem die gesamte Datei 150 das Ziel 140 erreicht, werden die unterschiedlichen Chunks, die die Datei 150 umfassen, Chunks A 151, B 152, B 153, A 154, C 155 gemäß der schon auf dem Datenspeicher 145 existierenden Daten dedupliziert. Die Chunks A' 161 und C' 162 sind jeweils Duplikate der Chunks A 151 und A 154 und C 155. Es gibt kein Duplikat des Chunks B. Daher werden die Chunks A 151, B 153, A 154 und C 155 von dem Datenspeicher entfernt, wohingegen nur B 152 von diesen neu hinzugefügten Chunks im Datenspeicher 145 nach der Deduplizierung verbleiben wird (gezeigt als B 163). Vielmehr wird nur eine Kopie jedes einzelnen Chunks auf dem Zieldatenspeicher 145 nach Durchführung der Deduplizierungsoperation verbleiben.
  • Durchführung der Deduplizierung an einer Vorrichtung
  • Es existieren Vorrichtungen, die WAN-Deduplizierungen oder speicherbasierte Deduplizierungen auf Zielspeicherservern durchführen können. Der Begriff Vorrichtung bezieht sich hier im Allgemeinen auf ein spezialisiertes stand-alone System, das Software ausführen kann, um Datenmanagementoperationen innerhalb eines Speichernetzwerkes durchzuführen. Typischerweise sind Vorrichtungen dazu ausgebildet, eine Deduplizierung von auf einem Zielspeicherserver gespeicherten Daten durchzuführen, nachdem die Vorrichtung zu dem Speichernetzwerk hinzugefügt wurde. Zum Beispiel kann die Vorrichtung eine Virtual Tape Library unterhalten, die Daten auf einen Satz von virtuellen Bändern dedupliziert.
  • Einige Vorteile der Durchführung von Deduplizierungsaktivitäten auf einer Vorrichtung umfassen: Einsatz einer separaten Komponente, die nicht von der Backup-Software oder Backup-Funktionsweisen des Speichersystems abhängt; und Aufwendung von CPU-Zyklen auf einer separaten Vorrichtungshardware im Gegensatz zur Ziel- oder Quellhardware. Einige der Nachteile umfassen: Bei Verwendung einer speicherbasierten Deduplizierungsvorrichtung werden redundante Daten über das Netzwerk an das Ziel gesendet; bei der Verwendung einer WAN-basierten Deduplizierungsvorrichtung existieren redundante Daten im Speicher; wenn speicherbasierte und WAN-basierte Deduplizierungsvorrichtungen gemeinsam verwendet werden, kann es sehr schwierig sein, irgendeine Granularität für die Auswahl der zu deduplizierenden Daten bereitzustellen; CPU-Zyklen werden immer noch an der Zielhardware aufgewendet, die Vorrichtung führt ihre Deduplizierungsoperationen datenagnostisch durch; und die Vorrichtung versucht oft, Daten zu deduplizieren, die nicht dedupliziert werden sollten – zum Beispiel Header, kombinierte oder verschlüsselte Daten.
  • 1c zeigt eine Beispielkonfiguration eines Speichermanagementsystems 100, das Deduplizierungsaktivitäten durch Verwendung einer Deduplizierungsvorrichtung 170 wie aus dem Stand der Technik bekannt durchführt. Wiederum verbleibt die Konfiguration der Quelle 120, des Netzwerks 130 und des Ziels 140 die gleiche wie in 1a und 1b dargestellt. Die Vorrichtung 170 ist auch über das Netzwerk 130 mit dem Ziel 140 verbunden. Die Vorrichtung 170 führt die Deduplizierungsoperationen auf dem Ziel 140 unter Verwendung ihrer eigenen selbst mitgebrachten Prozessorleistungen und Ressourcen durch. Die Vorrichtung führt daher die Pflege einer Ablagerung für deduplizierte Daten durch Entfernen von redundant in ihrem Datenspeicher gespeicherten Daten gemäß der Deduplizierungsfähigkeiten und Prozesse der Vorrichtung durch.
  • Die Datei 105 wird wie dargestellt in den Client 120 eingegeben und dann in ihrer Gesamtheit an den Server 140 übertragen. Die Datei, die aus den Chunks A 151 und 154, B 152 und 153 und C 155 besteht, wird dann in ihrer Gesamtheit an die Vorrichtung 170 übertragen. Am Datenspeicher 175 werden viele der sich innerhalb des Datenspeichers befindenden Datenchunks (wie zum Beispiel A 161, 163 und 166; B 164 und 165; und C 162 und 167) Duplikate voneinander sein.
  • 1c zeigt ferner Deduplizierungsoperationen auf dem Datenspeicher der Vorrichtung vor der Deduplizierung 175 und nach der Deduplizierung 175' mit einem out-of-band-Deduplizierungsprozess. Der Datenspeicher 175' zeigt die innerhalb des Servers gespeicherten Datenchunks nachdem die Deduplizierung auf dem Server unter Verwendung der Deduplizierungsfunktionalität 172 innerhalb der Vorrichtung 170 durchgeführt wurde. Die Vorrichtung führt eine Entfernung aller redundanten Datenchunks auf der Vorrichtung durch, was in nur einer einzigartigen Kopie von jedem Datenchunk A' 181, C' 182 und B 183 resultiert. Der Deduplizierungsprozess 172 wird mittels auf der Vorrichtung 170 ausgeführter Prozesse durchgeführt, sodass die Resultate der Deduplizierungsaktivitäten transparent für den Server 140 sind. Die Deduplizierungsvorrichtung kann dann die Daten an den Server ausgeben, als ob sie nicht dedupliziert wären.
  • Obwohl jede dieser existierenden Losungen nominell in der erfolgreichen Deduplizierung von Daten resultiert, gibt es eine Vielzahl von Kompromissen und Komplikationen, die durch die Durchführung der Deduplizierungsaktivitäten entweder beim Client oder beim Ziel oder bei einer Speichervorrichtung wie aus dem Stand der Technik bekannt, ausgelöst werden können. Die Kombination von zielseitigen und quellseitigen Deduplizierungen kann Lösungen einführen, um Komplikationen zu verringern oder komplett auszumerzen, besonders wenn der Ort der Deduplizierungsaktivitäten dynamisch gemanagt wird.
  • Die folgende Offenbarung beschreibt die Vorteile und Risiken, die typischerweise während einer Deduplizierung auftreten, und erklärt wie die verschiedenen Ausführungsformen der vorliegenden Erfindung diese Risiken dynamisch verringern kann.
  • Hashkollisionen
  • Eine zielseitige Deduplizierung kann das Risiko von Datenverlust wegen undetektierter Hashkollisionen mittels Techniken wie dem Herstellen einer Kopie der Daten vor der Durchführung der Deduplizierung oder einem zeitweisen Vergleich verringern. Im Gegensatz dazu kann eine quellseitige Deduplizierung anfälliger gegenüber dem Datenverlust wegen undetektierter Hashkollisionen sein, wenn die Daten vom Client empfangen werden. Wenn dieses Risiko nicht akzeptabel ist, kann die serverseitige Deduplizierung vorzuziehen sein mit geeigneten Verfahren das Risiko zu mildern (wie zum Beispiel Kopien der Daten in einen Kopierspeicherpool vor der Deduplizierung). Ein Beispiel wäre eine Fall, wo die Firmenpolitik verlangt, dass vertrauliche E-Mails auf dem Server dedupliziert werden.
  • Auslastungsausgleich
  • Die ultimative Herangehensweise zum Auslastungsausgleich ist eine optimierte Entscheidung einzurichten, wo Deduplizierungen vorgenommen werden sollen, um die Netzwerke und CPU-Nutzung auszugleichen. Wenn das Netzwerk der Bottleneck ist, wird optimaler Weise eine Client-Deduplizierung durchgeführt; anderenfalls sollte die Deduplizierung am Server stattfinden. Dies kann eine Runtime-Entscheidung sein oder sie kann geplant sein. Zum Beispiel wenn es am Wochenende nicht viel Netzwerkverkehr gibt, sollte eine serverseitige Deduplizierung verwendet werden. Während der Wochentage mag das Netzwerk ein Performance-Bottleneck werden und der Client würde in optimaler Weise die Deduplizierung durchführen. Historische Daten können verwendet werden, um zu bestimmen, wann die Deduplizierung an dem Client oder an dem Server durchgeführt werden soll. Andere relevanten Regeln können die Deduplizierung von großen Dateien auf dem Server umfassen, nur weil eine Client-Deduplizierung den Backup-Prozess so weit verlangsamen würde, dass ein Backup-Fenster verpasst werden würde, zum Beispiel wenn die Dateigröße größer als 5 Gigabyte ist.
  • Integrierte Deduplizierungsaktivitäten
  • Optimaler Weise wird eine Deduplizierung das Format der Daten bestimmen. In verschiedenen Ausführungsform der vorliegenden Erfindung ist dieser Mechanismus ein Teil des Client-Server-Backup-Produkts im Gegensatz zu einer externen Lösung. Integration mit einem Backup-Produkt ermöglicht es, das Wissen des Produktes (das heißt das Datenformat) zu nutzen, um die Datendeduplizierung zu optimieren. Das Wissen des Datenformates ermöglicht eine Optimierung basierend auf Dateitypen – verschiedene Deduplizierungsalgorithmen, die für bestimmte Falltypen optimiert sind, können verwendet werden. Zum Beispiel kann ein Rabin-Karp-Algorithmus als ein Basisalgorithmus verwendet werden, wohingegen anderen Fingerprinting-Algorithmen verwendet werden, wenn sie für bestimmte Dateitypen besser funktionieren. Ein anderes Beispiel ist die Deduplizierung von komprimierten Daten, wie zum Beispiel MP3 und PDF-Dateien, die dazu spezifiziert sein können, nur am Server dedupliziert zu werden.
  • Wiederverwendung von Altdaten
  • Optimalerweise werden schon auf dem Server gespeicherte Altdaten unter Verwendung von serverseitiger Deduplizierung dedupliziert, wohingegen neue Backups Vorteil ziehen können aus einer entweder server- oder clientseitigen Deduplizierung. Dies ist durch existierende Systeme nicht möglich, die lediglich dazu in der Lage sind, eine clientseitige Deduplizierung anzuwenden und daher keine Deduplizierung für clientseitige Altdaten anzuwenden. Die verschiedenen Ausführungsformen der vorliegenden Erfindung ermöglichen eine clientseitige Deduplizierung, um gemeinsame Chunks mit Altdaten, die auf dem Server dedupliziert wurden, zu teilen. Dies ist ein Vorteil gegenüber ausschließlichen Clientlösungen, da Altdaten jetzt ohne Rücksicht auf ihren Board dedupliziert werden können.
  • Der Schlüssel zur erfolgreichen Deduplizierung sowohl bei der Quelle (Client) als auch beim Ziel (Server) umfasst eine Nutzung desselben Deduplizierungsprozessalgorithmuses und Deduplizierungsindexes an beiden Orten. Zusätzlich werden jegliche Datentransformationsaktivitäten, wie zum Beispiel Komprimierung und Verschlüsselung, nach Fingerprinting und Hashidentifizierung durchgeführt, um präzise Deduplizierungsergebnisse an den verschiedenen Orten zu erhalten.
  • Als ein Beispiel einer Deduplizierungskonfiguration, die durch eine Ausführungsform durchgeführt wird, verwenden die Deduplizierungsfunktionen dieselben Hashingalgorithmen für Blöcke verschiedener Größe für sowohl quellseitige als auch zielseitige Deduplizierungen. Alternativ können mehrere Algorithmen gemischt werden, wie zum Beispiel die Verwendung von Hashing von Blöcken unterschiedlicher Größe für einige Dateien und Single Instance Store für andere, unter der Voraussetzung, dass dieselben Algorithmusauswahlregeln für quellseitige und zielseitige Deduplizierungen verwendet werden.
  • Derselbe Deduplizierungsindex wird innerhalb des Speichersystems für die Nachverfolgung existierender Chunks und für die Reassemblierung deduplizierter Objekte verwendet, egal ob die Deduplizierung an der Quelle oder am Ziel durchgeführt wird, wodurch es ermöglicht wird, dass die quell- und zielseitige Deduplizierung gemeinsame Daten teilen. Dieser Index kann durch die Verwendung einer geteilten Datenbank implementiert werden, oder er kann durch die Verwendung eines Client-Server-Protokolls implementiert werden, das eine Kommunikation von Chunkinformationen zwischen der Quelle und dem Ziel erlaubt (das heißt durch die Weiterleitung von passenden Chunkinformationen von dem Ziel zur Quelle).
  • Wenn Datentransformationen nur nach der Identifizierung von deduplizierten Chunks durchgeführt werden, verhindert dies die Möglichkeit, dass die Transformation mit der Erkennung von duplizierten Chunks interferiert. Wenn die Daten wiederhergestellt werden, werden die Transformationen durch den Client (Quelle) auf Chunkebene rückgängig gemacht. Dies ermöglicht dem Client, einen Strom gemischter Chunks (komprimiert, nicht komprimiert und verschlüsselt) zu empfangen. Alternativ können die Transformationen durch den Server (Ziel) vor einer Wiederherstellung rückgängig gemacht werden.
  • 2a stellt die Funktionsweise einer beispielhaften Konfiguration eines Speichermanagementsystems 200 dar, das die integrierten Deduplizierungsaktivitäten an einer Clientquelle nach einer Ausführungsform der vorliegenden Erfindung durchführt. Der Client 220 (die Datenquelle) ist mit dem Server 240 (das Datenziel) über das Netzwerk 230 wie dargestellt verbunden. Im normalen Betriebsverlauf des Speichersystems werden die Daten durch den Client 220 wiederum empfangen, um an die Datenablage 245 innerhalb des Servers 240 als Backup, Archivierung, Migration oder anderen Managmentmaßnahmen übertragen zu werden.
  • Die Datei wird mit der Deduplizierungskomponente 222 dedupliziert, sobald sie durch den Client 220 empfangen wurde und vor der eventuellen Übertragung der Dateijunks an den Server 240. Dieser Deduplizierungsschritt wird durchgeführt durch eine Kontrolle, welche Chunks noch nicht auf dem Server 240 vorhanden sind. Der Deduplizierungsprozess wird daher verifizieren, welche Chunks auf dem Ziel gespeichert sind, anstatt die Datei basierend auf den beim Client existierenden Chunks zu deduplizieren. In einer Ausführungsform wird dies durch Abfrage eines Index 241, der sich innerhalb des Ziels 240 befindet, durchgeführt, wobei der Index nachverfolgt, welche Chunks innerhalb des Serverdatenspeichers 245 gespeichert sind.
  • In dem in 2a dargestellten Beispiel, bei dem die Deduplizierungsfunktion am Client durchgeführt wird, wird der Client bestimmen, dass nur die Chunks „A”, „B” und „C” einzigartig sind. Zusätzlich werden Deduplizierungsinformationen 242 innerhalb dieses Indexes an den Client übertragen, wenn der Index 241 auf dem Speichersystem nachgefragt wird, um den Client ferner darüber zu informieren, dass die Chunks A' 261 und C' 262 (Kopien der Datenchunks „A” und „C”) gegenwärtig auf dem Serverdatenspeicher 245 existieren. Daher wird der Client als ein Ergebnis der Informationen aus dem Index 241 entdecken, dass nur der einzigartige Chunk, der nicht auf dem Serverdatenspeicher 245 gespeichert ist, eine Kopie des Chunks „B” ist. Der einzige Chunk, der an den Server zur Speicherung gesendet wird, wird Chunk B 251 sein, der auf dem Datenspeicher 245 als Chunk 263 gespeichert wird.
  • 3 stellt ein Flussdiagramm dar, das weiter erklärt, wie die Datendeduplizierung auf dem Client nach Ausführungsformen der vorliegenden Erfindung funktioniert. Dieses Flussdiagramm stellt ein Implementierungsbeispiel der clientseitige Deduplizierungsaktivitäten dar, auf die in den Schritten 431434 von 4 Bezug genommen wird. Wie in 3 gezeigt, wird der Deduplizierungsprozess durch den Client eingeleitet, wenn eine Datei/Objekt „F” auf dem Speicherablageserver wie in Schritt 310 als Backup gespeichert werden soll.
  • Wenn die Datendeduplizierung auf dem Client wie in Schritt 320 geschehen kann, dann wird eine Vielzahl von Schritten während des Deduplizierungsprozesses auf dem Client durchgeführt. Wenn eine Datendeduplizierung nicht durch den Client durchgeführt werden kann, dann werden normale Nicht-Deduplizierungsprozesse auf dem Client wie in Schritt 330 ausgeführt, was wahrscheinlicherweise eine Deduplizierung der Datei auf dem Server umfasst.
  • In dem Fall, dass die Deduplizierungsaktivitäten durch den Client ausgeführt werden sollen, wird die Datei/das Objekt „F” wie in Schritt 341 einem Fingerprintingprozess unterzogen. Dies resultiert in einer Vielzahl von Chunks, die für die Datei/das Objekt „F” erzeugt werden. Der nächste Chunk (der erste Chunk) der Datei Dj wird wie in Schritt 342 abgerufen und ein Hash wird für diesen Chunk hj (Dj), Länge lj (Dj) wie in Schritt 343 erzeugt. In einer alternativen Implementierung einer Ausführungsform, die in 3 nicht dargestellt ist, geschieht das Fingerprinting als Teil dieser Schleife. Anstatt die gesamte Datei einem Fingerprintingprozess zu unterziehen und dann jeden Chunk zu verarbeiten, wird daher jeder Chunk wie er während des Fingerprintings identifiziert wird, verarbeitet.
  • Als Nächstes wird der Deduplizierungsprozess bestimmen, ob der durch die Werte [hj, lj] identifizierte Chunk auf dem Server wie in Schritt 350 angeordnet ist. Wenn der Chunk schon auf dem Server gespeichert ist, dann wird nur eine Referenz auf den Chunk [hj, lj] innerhalb des Servers wie in Schritt 370 erzeugt, daher wird auch nur eine Chunkreferenz an den Server gesendet. Wenn der Chunk sich nicht auf dem Server befindet, müssen die Chunkdaten an den Server gesendet werden.
  • Abhängig davon, ob der Chunk in Schritt 360 komprimiert wird, wird der Chunk dafür vorbereitet, an den Server gesendet zu werden. Wenn die Daten innerhalb des Chunks nicht komprimiert werden, wird der Chunk Dj, Hash hj und Länge lj an den Server wie in Schritt 380 gesendet. Der Chunk Dj wird auf dem Serverdatenspeicher gespeichert und der Hash hj und die Länge lj wird in den Deduplizierungsindex gespeichert. Wenn die Daten innerhalb des Chunks komprimiert werden sollen, wird der Chunk Dj in den Chunk C (Dj) wie in Schritt 361 komprimiert. Der komprimierte Chunk C(Dj) wird an den Server wie im Schritt 362 zusammen mit dem Hash hj und der Menge lj gesendet, wobei der Chunk in der Serverdatenablage und der Hash und die Länge in dem Deduplizierungsindex gespeichert sind.
  • Der Prozess der Lokalisierung des Chunks innerhalb des Servers wird für jeden zusätzlichen Chunk in der Datei/in dem Objekt „F” wie in Schritt 385 wiederholt. Sobald alle Chunks komplett sind, wird eine MD5-Signatur MD5(F) für die gesamte Datei erzeugt und an den Server in Schritt 395 gesendet. Die MD5-Zusammenfassung kann optional während einer Dateiwiederherstellungsoperation genutzt werden, um die Datenintegrität zu verifizieren.
  • Ein Fachmann wird auch erkennen, dass die serverseitigen Deduplizierungstechniken, die innerhalb dieser Offenbarung beschrieben sind, durch den Server ausgeführt werden können, aber auch mit verschiedenen Permutationen, wie zum Beispiel die Durchführung einer in-band-Deduplizierung, einer out-of-band-Deduplizierung oder die Durchführung einer Deduplizierung zu verschiedenen Zeiten auf dem Serverdatenspeicher. In jeglicher Permutation zeigt diese Technik, wie Dateien durch Verwendung eines Deduplizierungsindexes nach der vorliegenden Erfindung entweder durch den Quellclient oder den Zielserver dedupliziert werden können und trotzdem effizient innerhalb eines Deduplizierungsdatenspeichers gemanagt werden können.
  • Gegeben sei eine Speichersysteminfrastruktur, die das Teilen gemeinsamer Daten, die durch quell- und zielseitige Deduplizierungsaktivitäten erzeugt wurden (wie zum Beispiel unter Verwendung der oben beschriebenen Konfigurationen), ermöglicht. Verschiedene Techniken können dazu verwendet werden, wann und in welchem Ausmaß die Quelldeduplizierung bei spezifischen Clientmaschinen durchgeführt werden soll und wann eine Zieldeduplizierung genutzt werden soll. In einer Ausführungsform werden regelbasierte Policies definiert, um dem Speichermanagementsystem zu ermöglichen, wo die Deduplizierung nach einem Satz von Regeln oder Systembedingungen durchgeführt werden soll. Im Folgenden wird ein Satz nicht eingrenzender Beispiele solcher Policies angegeben.
  • Die Policy kann auf dem Clientknoten basieren, das heißt die Maschine, deren Daten dedupliziert werden. Alternativ kann die Policy auf einer Policy-Domain basieren, die eine Gruppe von Chipkarten mit denselben Policy-Anforderungen definiert. Wenn beispielsweise ein Satz von Maschinen als hochsensible Daten umfassend bezeichnet wird, wird eine Deduplizierung nicht an der Quelle durchgeführt. Dies ermöglicht es, dass die Datei an den Server übertragen wird und dort wenn nötig als Backup gespeichert wird. Und nur dann wird die Deduplizierung durchgeführt, um redundante Chunks der Daten zu entfernen.
  • Die Policy kann auf Datei(Objekt)charakteristiken, wie zum Beispiel dem Dateisystem, auf dem die Datei gespeichert ist, dem Pfad der Datei, dem Dateinamen, dem Dateitypen oder der Dateigröße basieren. Diese Policy kann durch Verwendung von Auswahlregeln implementiert werden, um zu bestimmen, wo die Deduplizierung optimaler Weise basierend auf den Charakteristiken der Datei an sich durchgeführt wird.
  • Die Policy kann auch auf der Zeit basieren. Zeitpläne können implementiert werden, um die oben beschriebenen Policies nach einer zeitbezogenen Messung zu ändern. Zum Beispiel können am Wochenende andere Policies verwendet werden als an Wochentagen.
  • Die Policy kann auf einer Systemauslastung basieren. Durch Überwachung der Auslastung auf geschützten Clientmaschinen, dem Serversystem und dem Netzwerk kann eine Entscheidung getroffen werden, die besten verfügbaren Ressourcen zu schonen und/oder sie zu verwenden. Zum Beispiel könnte während Zeiten von exzessivem Netzwerkdatenverkehr die quellseitige Deduplizierung verwendet werden, um unnötige Datentransfers an das Ziel zu vermeiden.
  • Die Policies können individuell auf einer granularen Ebene, für bestimmte Knoten oder Quellsysteme oder für spezifische Dateien, Dateitypen, Geräte oder Subsysteme innerhalb des Quellsystems definiert werden. Ein Fachmann würde erkennen, dass eine Vielfalt der hier beschriebenen Policy-Techniken kombiniert und integriert werden können, um ein erweitertes System zu erzeugen, das ein robustes Schalten der Deduplizierung zwischen der Quelle und dem Ziel ermöglicht, aber immer noch ansprechbar und einstellbar ist, die Deduplizierung nur an einem Ort unter bestimmten Umständen durchzuführen. Ferner würde ein Fachmann erkennen, dass die hier beschriebenen Policies über einen Teilabschnitt oder das gesamte Netzwerk manuell oder automatisch implementiert werden können.
  • 4 stellt ein Flussdiagramm einer Betriebsart dar, um eine integrierte Deduplizierung von Daten nach Ausführungsformen der vorliegenden Erfindung durchzuführen. Die Betriebsart wird in Schritt 410 begonnen, wo die Deduplizierung für ein Datenobjekt durchgeführt werden soll. Die nachfolgenden Aktivitäten werden dadurch bestimmt, ob die Deduplizierungsaktivitäten an der Quelle oder an dem Ziel durchgeführt werden sollen. Demnach wird dieser Ort nach einer Policy wie in Schritt 420 ausgewählt, was konsistent mit einer Vielzahl von Policy-Beobachtungen ist (wie zum Beispiel Zeit, Systemauslastung, Dateicharakteristiken, der Clientknoten oder die Policy-Domain).
  • In dem Falle, dass die clientseitige Deduplizierung durchgeführt wird, werden die verschiedenen Algorithmen des Deduplizierungsprozesses, wie zum Beispiel die Fingerprinting- und Hashingalgorithmen, angewendet, um die Charakteristiken der Datenchunks zu identifizieren, die das Datenobjekt wie im Schritt 431 umfasst. Hier wird der Deduplizierungsprozess entsprechend der Datenchunks durchgeführt, die gegenwärtig auf dem Ziel gespeichert sind. Es wird also auf den Deduplizierungsprozess wie er durch das Ziel verwaltet wird, zugegriffen, um diese Information wie in Schritt 432 zu bestimmen. Hashing und Identifizierung eines bestimmten Datenchunks muss typischerweise durchgeführt werden, bevor auf diese Indexinformation für diesen bestimmten Datenjunk zugegriffen werden kann. Als Nächstes wird jegliche Datentransformation (wie zum Beispiel Verschlüsselung) für die Datenchunks wie in Schritt 433 durchgeführt. Die deduplizierten Chunks des Datenobjekts werden dann von dem Client an den Server zur Speicherung wie in Schritt 434 übertragen.
  • Die für die serverseitige Deduplizierung nötigen Schritte sind ähnlich. Der erste Schritt umfasst das Empfangen des Datenobjektes von dem Client wie in Schritt 441. Sobald die Datenchunks empfangen wurden, werden die Deduplizierungsalgorithmen auf dem Server durchgeführt, was eine Anwendung der Fingerprinting- und Hashingalgorithmen auf das Datenobjekt und seiner Chunks wie in Schritt 442, den Zugriff auf die Deduplizierungsindexinformationen der Datenobjektjunks wie in Schritt 443, und letztendlich die Durchführung jeglicher Datentransformation wie in Schritt 444 umfasst.
  • Zu der Zeit, wenn die Datenobjekte wie in Schritt 450 von dem Server abgefragt werden müssen, werden die folgenden Schritte durchgeführt. Die Chunks des deduplizierten Datenobjektes werden von dem Server wie in Schritt 461 abgefragt. In einer Ausführungsform kann die Umkehrung der Datentransformationen wie zum Beispiel Entschlüsselung oder Dekomprimierung der Chunks wie in Schritt 462 vor der Datenübertragung an den Client durchgeführt werden. Diese Übertragung der Daten an den Client erfolgt mittels eines Datenchunkstroms wie in Schritt 463. Der Datenchunkstrom wird an dem Client von dem Server wie in 471 empfangen, und dieser Strom kann Chunks mit gemischten Transformationstypen wie zum Beispiel komprimierte, nicht komprimierte und verschlüsselte Chunks umfassen. In einer anderen Ausführungsform können Datentransformationen an dem Client rückgängig gemacht werden, wenn sie noch nicht auf dem Server rückgängig gemacht wurden, sobald die Daten komplett wie in Schritt 472 empfangen wurden. Zuletzt werden die Datenchunks wie in Schritt 473 wiederhergestellt. Wie der Fachmann wahrnehmen wird, können Aspekte der vorliegenden Erfindung als ein System, ein Verfahren oder ein Computerprogrammprodukt ausgeführt werden. Demnach können Aspekte der vorliegenden Erfindung die Form einer ganzheitlichen Hardware-Ausführungsform, einer ganzheitlichen Software-Ausführungsform (umfassend Firmware, residente Software, Microcode usw.) oder eine Ausführungsform, die Software- und Hardwareaspekte kombiniert, annehmen, die alle hier im Allgemeinen als ein „Schaltkreis”, „Modul” oder „System” bezeichnet werden. Ferner können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien ausgeführt ist, auf dem sich computerlesbare Programmcodes befinden.
  • Jegliche Kombination einer oder mehrerer lesbarer Computermedien kann verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann zum Beispiel unter anderem ein elektronisches, magnetisches, optisches, elektromagnetisches, infrarotes oder Halbleitersystem, Apparat oder Vorrichtung oder irgendeine passende Kombination davon sein. Spezifischere Beispiele (eine nicht erschöpfende Liste) der computerlesbaren Speichermedien würden die folgenden umfassen: Eine elektrische Verbindung mit einem oder mehreren Drähten, eine tragbare Computerdiskette, eine Festplatte, ein Random Access Memory (RAM), ein Read Only Memory (ROM), ein auslöschbarer programmierbarer Read Only Memory (EPROM oder Flash Memory), eine optische Faser, eine tragbare Compact Disc Read Only Memory (CD-ROM), eine optische Speichervorrichtung, eine magnetische Speichervorrichtung oder irgendeine passende Kombination davon. Im Zusammenhang mit diesem Dokument kann ein computerlesbares Speichermedium irgendein materielles Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit einem Instruktionsausführungssystem, Apparat oder Vorrichtung umfassen oder speichern kann.
  • Ein computerlesbares Signalmedium kann ein propagiertes Datensignal umfassen, in dem sich ein computerlesbarer Programmcode befindet, wie zum Beispiel in Baseband oder als Teil einer Trägerwelle. Solch ein propagiertes Signal kann irgendeine einer Vielzahl von Formen annehmen, umfassend aber nicht ausschließlich eine elektromagnetische, optische oder irgendeine passende Kombination daraus. Ein computerlesbares Signalmedium kann irgendein computerlesbares Medium sein, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem Instruktionsausführungssystem, Apparat oder Vorrichtung kommunizieren, propagieren oder transportieren kann.
  • Ein sich auf einem computerlesbaren Medium befindender Programmcode kann unter Verwendung irgendeines passenden Mediums einschließlich aber nicht nur drahtlos, drahtgebunden, optisches Faserkabel, RF, usw. oder irgendeine passende Kombination daraus übertragen werden. Computerprogrammcode zur Ausführung von Funktionen für Aspekte der vorliegenden Erfindung kann in irgendeiner Kombination aus einer oder mehrerer Programmiersprachen geschrieben sein, was eine objektorientierte Programmiersprache wie zum Beispiel JAVA, Smalltalk, C++ oder ähnliche und konventionelle prozedurale Programmiersprachen umfassen, wie zum Beispiel die „C” Programmiersprache oder ähnliche Programmiersprachen. Der Programmcode kann komplett auf dem Computer eines Nutzers, teilweise auf dem Computer eines Nutzers, als ein stand-alone-Softwarepaket, teilweise auf dem Computer des Nutzers und teilweise auf einem Remotecomputer oder komplett auf dem Remotecomputer oder Server ausgeführt werden. Im letzteren Szenario kann der Remotecomputer mit dem Computer des Nutzers über irgendeine Art von Netzwerk verbunden sein, Wegskala ein lokales Netzwerk (LAN) oder ein Wide Area Network (WAN) umfasst, oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet Service Providers).
  • Aspekte der vorliegenden Erfindung werden mit Bezugnahme auf die Flussdiagrammdarstellungen und/oder Blockdiagramme der Verfahren, des Apparates (Systems) und der Computerprogrammprodukte nach Ausführungsformen der Erfindung beschrieben. Es ist verständlich, dass jeder Block der Flussdiagrammdarstellungen und/oder der Blockdiagramme und der Kombinationen der Blöcke in den Flussdiagrammdarstellungen und/oder der Blockdiagramme durch Computerprogramminstruktionen implementiert werden kann. Diese Computerprogramminstruktionen können für einen Mehrzweckcomputer, einen Spezialzweckcomputer oder andere programmierbare Datenverarbeitungsapparaturen zur Verfügung gestellt werden, um eine Maschine zu erzeugen, sodass die Instruktionen, die durch den Prozessor des Computers oder des anderen programmierbaren Datenverarbeitungsapparates ausgeführt werden, Mittel zur Implementierung der Funktionen, Durchführungen erzeugen, die in dem Flussdiagramm und/oder Blockdiagramm, Block oder Blöcken spezifiziert sind.
  • Diese Computerprogramminstruktionen können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, einen anderen programmierbaren Datenverarbeitungsapparat oder eine andere Vorrichtung dazu veranlasst, in einer bestimmten Weise zu funktionieren, sodass die in dem Computer lesbaren Medium gespeicherten Instruktionen eine Vorrichtung erzeugen, die Instruktionen umfasst, die die Funktion/Durchführung implementiert, die in dem Flussdiagramm und/oder Blockdiagramm, Block oder Blöcken spezifiziert wurden.
  • Die Computerprogramminstruktionen können auch auf einem Computer, einem anderen programmierbaren Datenverarbeitungsapparat oder eine andere Vorrichtung geladen werden, um eine Serie von Betriebsschritten auszulösen, die auf dem Computer, dem anderen programmierbaren Apparat oder der anderen Vorrichtung durchgeführt werden, um einen computerimplementierten Prozess zu erzeugen, sodass die Instruktionen, die auf dem Computer oder dem anderen programmierbaren Apparat ausgeführt werden, Prozesse bereitstellen zur Implementierung der Funktionen/Durchführungen, die in dem Flussdiagramm und/oder Blockdiagramm, Block oder Blöcken spezifiziert wurden.
  • Die Fluss- und Blockdiagramme der Figuren stellen die Architektur, Funktionalität und Betriebsweise möglicher Implementationen von Systemen, Verfahren und Computerprogrammprodukten nach verschiedenen Ausführungsformen der vorliegenden Erfindung dar. Im Hinblick darauf kann jeder Block der Fluss- oder Blockdiagramme ein Modul, Segment oder ein Teil eines Codes darstellen, der eine oder mehrere ausführbare Instruktionen zur Implementierung der spezifischen logischen Funktion umfasst. Es sollte auch beachtet werden, dass in einigen Alternativimplementierungen die in den Blöcken dargestellten Funktionen nicht nach der Reihenfolge, wie sie in den Figuren dargestellt wurden, ausgeführt werden. Zum Beispiel können zwei nacheinander abgebildete Blöcke im Wesentlichen gleichzeitig ausgeführt werden oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, abhängig von der betroffenen Funktionalität. Es wird auch beachtet werden, dass jeder Block der Blockdiagramme und/oder der Flussdiagrammdarstellung und Kombinationen der Blöcke in den Blockdiagrammen und/oder der Flussdiagrammdarstellung durch Spezialzweck-Hardware basierte Systeme oder Kombinationen von Spezialzweck-Hardware und Computerinstruktionen implementiert werden kann, die die spezifischen Funktionen oder Durchführungen ausführen.
  • Obwohl eine Vielzahl von repräsentativen Ausführungsformen dieser Erfindung oben mit einem bestimmten Grad von Genauigkeit beschrieben wurden, kann ein Fachmann eine Vielzahl von Abwandlungen der offenbarten Ausführungsformen schaffen, ohne vom Geist oder Bereichs des erfinderischen Gegenstandes, wie er in der Beschreibung und den Ansprüchen ausgeführt wurde, abzuweichen.

Claims (21)

  1. Verfahren zur Ermöglichung einer Deduplizierung einer Datei sowohl an einem Quell- als auch an einem Zielort in einem verteilten Speichermanagementsystem, wobei das Speichermanagementsystem ein Quellcomputersystem umfasst, das mit einem Zielcomputersystem und einem Zieldatenspeicher verbunden ist, der sich innerhalb des Zielcomputersystemes befindet, wobei das Verfahren ferner umfasst: Bereitstellen eines Deduplizierungsprozesses zur Deduplizierung von Datenchunks, die in deduplizierter Form innerhalb des Zieldatenspeichers gespeichert werden sollen, wobei ermöglicht wird, Deduplizierungsinstruktionen durch das Zielcomputersystem auszuführen und Deduplizierungsinstruktionen durch das Quellcomputersystem auszuführen; Deduplizierung einer Datei in einen Satz von deduplizierten Datenchunks unter Verwendung des Deduplizierungsprozesses, wobei der Deduplizierungsprozess einen Satz von Deduplizierungsinstruktionen umfasst, die entweder durch das Quellcomputersystem oder das Zielcomputersystem ausgeführt werden; und Speichern des Satzes der deduplizierten Datenchunks innerhalb des Zieldatenspeichers; gekennzeichnet durch Verwalten eines Indexes, der zur Nachverfolgung von deduplizierten Datenchunks dient, die innerhalb des Zieldatenspeichers gespeichert sind, wobei das Quellcomputersystem und das Zielcomputersystem sich den Index teilen, so dass sowohl das Quellcomputersystem als auch das Zielcomputersystem auf den Index zugreifen können; und Aktualisieren der Deduplizierungsinformationen für den Satz der deduplizierten Datenchunks innerhalb des geteilten Indexes.
  2. Verfahren nach Anspruch 1, wobei die Deduplizierungsinstruktionen einen Hashingalgorithmus für Blöcke unterschiedlicher Größe umfasst, der für die Deduplizierung sowohl beim Quellcomputersystem als auch beim Zielcomputersystem verwendet wird.
  3. Verfahren entweder nach Anspruch 1 oder 2, wobei die Deduplizierungsinstruktionen einen ersten Satz von Fingerprinting- und Hashingalgorithmen, die für Deduplizierungsaktivitäten verwendet werden, die auf dem Quellcomputersystem ausgeführt werden, und einen zweiten Satz von Fingerprinting- und Hashingalgorithmen umfasst, die für Deduplizierungsaktivitäten genutzt werden, die auf dem Zielcomputersystem ausgeführt werden.
  4. Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend eine Wiederherstellung des Satzes der deduktierten Datenchunks zur Quelle.
  5. Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend die Durchführung von Datentransformationen nach einer Fingerprinting- und Hashidentifizierung, wobei die Fingerprinting- und Hashidentifizierung innerhalb des Deduplizierungsprozesses abläuft.
  6. Verfahren nach Anspruch 5, wobei die Datentransformationen eine Komprimierung und/oder eine Verschlüsselung umfasst.
  7. Verfahren entweder nach Anspruch 5 oder 6, ferner umfassend das Rückgängigmachen der Datentransformationen durch das Quellcomputersystem für jeden Chunk, abhängig von einer Wiederherstellung des Satzes der deduplizierten Datenchunks auf dem Quellcomputersystem.
  8. Verfahren nach einem der Ansprüche 5 bis 7, ferner umfassend eine Rückgängigmachung der Transformationen durch das Zielcomputersystem, bevor der Satz der deduplizierten Datenchunks auf dem Quellcomputersystem wiederhergestellt wird.
  9. Verfahren nach einem der vorhergehenden Ansprüche, wobei der geteilte Index als eine Datenbank innerhalb des Speichermanagementsystems geteilt wird, auf die sowohl durch das Quellcomputersystem als auch durch das Zielcomputersystem zugegriffen werden kann.
  10. Verfahren nach einem der vorhergehenden Ansprüche, wobei auf den geteilten Index über ein Client-Server-Protokoll zugegriffen werden kann, das eine Kommunikation von Datenchunkinformationen zwischen der Quelle und dem Ziel ermöglicht.
  11. Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend: Anwendung einer ausgewählten Policy aus einer Vielzahl von definierten Policies, um einen Ort zur Ausführung des Deduplizierungsprozesses entweder an dem Quellcomputersystem oder an dem Zielcomputersystem zu bestimmen; Deduplizierung einer Datei an dem bestimmten Ort durch Ausführung des Deduplizierungsprozesses; und Aktualisieren der Deduplizierungsinformationen für die Datei.
  12. Verfahren nach Anspruch 11, wobei die ausgewählte Policy basierend auf einer Zeit, einer Systemauslastung, einer Dateicharakteristik, einem Clientknoten und/oder einer Policy Domain ausgewählt wird.
  13. Ein Speichermanagementsystem umfassend: ein Quellcomputersystem; ein Zielcomputersystem, das mit dem Quellcomputersystem verbunden ist; einen Zieldatenspeicher, der innerhalb des Zielcomputersystems angeordnet ist; zumindest ein Prozessor innerhalb des Speichermanagementsystems; und zumindest einen Speicherbereich innerhalb des Speichermanagementsystems, der Instruktionen speichert, die durch den zumindest einen Prozessor ausgeführt werden können, zur Ermöglichung der Deduplizierung einer Datei sowohl an einem Quell- als auch an einem Zielort in dem Speichermanagementsystem, wobei die Instruktionen für das folgende ausgeführt werden: Bereitstellen eines Deduplizierungsprozesses zur Deduplizierung von Datenchunks, die in deduplizierter Form innerhalb des Zieldatenspeichers gespeichert werden sollen, wobei ermöglicht wird, Deduplizierungsinstruktionen durch das Zielcomputersystem und Deduplizierungsinstruktionen durch das Quellcomputersystem auszuführen; Deduplizierung einer Datei in einen Satz von deduplizierten Datenchunks unter Verwendung des Deduplizierungsprozesses, wobei der Deduplizierungsprozess einen Satz von Deduplizierungsinstruktionen umfasst, die entweder durch das Quellcomputersystem oder das Zielcomputersystem ausgeführt werden; Speichern des Satzes der deduplizierten Datenchunks innerhalb des Zieldatenspeichers; Verwalten eines geteilten Indexes zur Nachverfolgung von deduplizierten Datenchunks, die innerhalb des Zieldatenspeichers gespeichert sind; wobei das Quellcomputersystem und das Zielcomputersystem sich den Index teilen, so dass sowohl das Quellcomputersystem als auch das Zielcomputersystem auf den Index zugreifen können; und Aktualisieren der Deduplizierungsinformationen für den Satz der deduplizierten Datenchunks innerhalb des geteilten Indexes.
  14. Speichermanagementsystem nach Anspruch 13, wobei die Deduplizierungsinstruktionen einen Hashingalgorithmus für Blöcke unterschiedlicher Größe umfassen, der für die Deduplizierung sowohl beim Quellcomputersystem als auch beim Zielcomputersystem verwendet wird.
  15. Speichermanagementsystem entweder nach Anspruch 13 oder 14, wobei die Deduplizierungsinstruktionen einen ersten Satz von Fingerprinting- und Hashingalgorithmen, die für Deduplizierungsaktivitäten verwendet werden, die auf dem Quellcomputersystem ausgeführt werden, und einen zweiten Satz von Fingerprinting- und Hashingalgorithmen umfassen, die für Deduplizierungsaktivitäten verwendet werden, die auf dem Zielcomputersystem ausgeführt werden.
  16. Speichermanagementsystem nach einem der Ansprüche 13 bis 15, ferner umfassend die Wiederherstellung des Satzes von deduplizierten Datenchunks zur Quelle.
  17. Speichermanagementsystem nach einem der Ansprüche 13 bis 16, ferner umfassend Instruktionen, die zur Ausführung von Datentransformationen nach Fingerprinting- und Hashidentifizierung ausgeführt werden, wobei die Fingerprinting- und Hashidentifizierung innerhalb des Deduplizierungsprozesses auftritt, wobei die Datentransformationen Komprimierung und/oder Verschlüsselung umfassen.
  18. Speichermanagementsystem nach einem der Ansprüche 13 bis 17, wobei der geteilte Index als eine Datenbank innerhalb des Speichermanagementsystems geteilt wird, auf die sowohl durch das Quellcomputersystem als auch durch das Zielcomputersystem zugegriffen werden kann.
  19. Speichermanagementsystem nach einem der Ansprüche 13 bis 18, ferner umfassend: Anwendung einer ausgewählten Policy aus einer Vielzahl von definierten Policies, um einen Ort zur Ausführung des Deduplizierungsprozesses entweder an dem Quellcomputersystem oder an dem Zielcomputersystem zu bestimmen; Deduplizierung einer Datei an dem bestimmten Ort durch Ausführung des Deduplizierungsprozesses; und Aktualisieren der Deduplizierungsinformationen für die Datei.
  20. Speichermanagementsystem nach Anspruch 19, wobei die ausgewählte Policy basierend auf einer Zeit, einer Systemauslastung, einer Dateicharakteristik, einem Clientknoten und/oder einer Policy Domain ausgewählt wird.
  21. Computerprogrammprodukt gespeichert auf einem computerlesbaren Medium und ladbar in einen internen Speicherbereich eines digitalen Computers umfassend Softwarecodeabschnitte, wobei die Softwarecodeabschnitte dazu ausgebildet sind, wenn das Programm auf einem Computer ausgeführt wird, das Verfahren nach einem der Ansprüche 1 bis 12 auszuführen.
DE112010002938.5T 2009-07-16 2010-07-12 Eine integrierte Herangehensweise zur Deduplizierung von Daten in einer verteiltenUmgebung, die eine Quelle und ein Ziel umfasst Active DE112010002938B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/504,083 2009-07-16
US12/504,083 US9058298B2 (en) 2009-07-16 2009-07-16 Integrated approach for deduplicating data in a distributed environment that involves a source and a target
PCT/EP2010/059965 WO2011006859A1 (en) 2009-07-16 2010-07-12 An integrated approach for deduplicating data in a distributed environment that involves a source and a target

Publications (2)

Publication Number Publication Date
DE112010002938T5 DE112010002938T5 (de) 2012-09-20
DE112010002938B4 true DE112010002938B4 (de) 2018-02-01

Family

ID=42751627

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010002938.5T Active DE112010002938B4 (de) 2009-07-16 2010-07-12 Eine integrierte Herangehensweise zur Deduplizierung von Daten in einer verteiltenUmgebung, die eine Quelle und ein Ziel umfasst

Country Status (6)

Country Link
US (1) US9058298B2 (de)
JP (1) JP5571786B2 (de)
CN (1) CN102473127B (de)
DE (1) DE112010002938B4 (de)
GB (1) GB2484019B (de)
WO (1) WO2011006859A1 (de)

Families Citing this family (109)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8938595B2 (en) * 2003-08-05 2015-01-20 Sepaton, Inc. Emulated storage system
CA2759682C (en) * 2008-04-21 2017-10-24 Matthew Gibson System, method and computer program for conducting transactions remotely
WO2011018852A1 (ja) * 2009-08-13 2011-02-17 株式会社日立ソリューションズ 重複排除機能付きデータ格納装置及び当該データ格納装置の検索インデックスを作成する制御装置
US8037349B2 (en) * 2009-08-28 2011-10-11 International Business Machines Corporation Data replication based on capacity optimization
US8572163B1 (en) * 2009-08-31 2013-10-29 Symantec Corporation Systems and methods for deduplicating data based on performance of a deduplication system
US8458144B2 (en) * 2009-10-22 2013-06-04 Oracle America, Inc. Data deduplication method using file system constructs
US8825969B2 (en) * 2009-11-30 2014-09-02 Netapp, Inc. Eliminating duplicate data by sharing file system extents
US8447741B2 (en) * 2010-01-25 2013-05-21 Sepaton, Inc. System and method for providing data driven de-duplication services
US8401185B1 (en) * 2010-02-01 2013-03-19 Symantec Corporation Systems and methods for securely deduplicating data owned by multiple entities
JP5434705B2 (ja) * 2010-03-12 2014-03-05 富士通株式会社 ストレージ装置、ストレージ装置制御プログラムおよびストレージ装置制御方法
US20120011101A1 (en) * 2010-07-12 2012-01-12 Computer Associates Think, Inc. Integrating client and server deduplication systems
GB2470498B (en) * 2010-07-19 2011-04-06 Quantum Corp Establishing parse scope
US10394757B2 (en) 2010-11-18 2019-08-27 Microsoft Technology Licensing, Llc Scalable chunk store for data deduplication
US9442806B1 (en) * 2010-11-30 2016-09-13 Veritas Technologies Llc Block-level deduplication
US9824091B2 (en) 2010-12-03 2017-11-21 Microsoft Technology Licensing, Llc File system backup using change journal
US8849898B2 (en) * 2010-12-09 2014-09-30 Jeffrey Vincent TOFANO Adaptive collaborative de-duplication
US20120150824A1 (en) * 2010-12-10 2012-06-14 Inventec Corporation Processing System of Data De-Duplication
US8620894B2 (en) 2010-12-21 2013-12-31 Microsoft Corporation Searching files
US9280550B1 (en) * 2010-12-31 2016-03-08 Emc Corporation Efficient storage tiering
US8886901B1 (en) 2010-12-31 2014-11-11 Emc Corporation Policy based storage tiering
US10049116B1 (en) * 2010-12-31 2018-08-14 Veritas Technologies Llc Precalculation of signatures for use in client-side deduplication
US9122639B2 (en) 2011-01-25 2015-09-01 Sepaton, Inc. Detection and deduplication of backup sets exhibiting poor locality
US8527472B2 (en) * 2011-03-29 2013-09-03 Kaseya International Limited Method and apparatus of securely processing data for file backup, de-duplication, and restoration
US8539008B2 (en) 2011-04-29 2013-09-17 Netapp, Inc. Extent-based storage architecture
US8812450B1 (en) 2011-04-29 2014-08-19 Netapp, Inc. Systems and methods for instantaneous cloning
US8745338B1 (en) 2011-05-02 2014-06-03 Netapp, Inc. Overwriting part of compressed data without decompressing on-disk compressed data
US8612392B2 (en) * 2011-05-09 2013-12-17 International Business Machines Corporation Identifying modified chunks in a data set for storage
US8868882B2 (en) * 2011-06-08 2014-10-21 Microsoft Corporation Storage architecture for backup application
US20150142756A1 (en) * 2011-06-14 2015-05-21 Mark Robert Watkins Deduplication in distributed file systems
US8600949B2 (en) * 2011-06-21 2013-12-03 Netapp, Inc. Deduplication in an extent-based architecture
US9229818B2 (en) 2011-07-20 2016-01-05 Microsoft Technology Licensing, Llc Adaptive retention for backup data
US8965856B2 (en) * 2011-08-29 2015-02-24 Hitachi, Ltd. Increase in deduplication efficiency for hierarchical storage system
US20130054919A1 (en) * 2011-08-30 2013-02-28 International Business Machines Corporation Methods and physical computer storage media for transferring de-duplicated data organized in virtual volumes to a target set of physical media
US8990171B2 (en) * 2011-09-01 2015-03-24 Microsoft Corporation Optimization of a partially deduplicated file
JP5780067B2 (ja) * 2011-09-01 2015-09-16 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御方法
US20140156607A1 (en) * 2011-10-18 2014-06-05 Hewlett-Packard Developement Company, L.P. Index for deduplication
US9047304B2 (en) 2011-11-28 2015-06-02 International Business Machines Corporation Optimization of fingerprint-based deduplication
CN103262071A (zh) * 2011-12-08 2013-08-21 华为技术有限公司 一种在分布式存储系统中删除数据的方法、装置及系统
WO2013115822A1 (en) 2012-02-02 2013-08-08 Hewlett-Packard Development Company, L.P. Systems and methods for data chunk deduplication
US8805797B2 (en) * 2012-02-22 2014-08-12 International Business Machines Corporation Optimizing wide area network (WAN) traffic by providing home site deduplication information to a cache site
US20150088840A1 (en) * 2012-05-01 2015-03-26 Kave Eshghi Determining segment boundaries for deduplication
EP3196781A1 (de) 2012-05-04 2017-07-26 Huawei Technologies Co., Ltd. Verfahren und vorrichtung zum löschen duplizierten daten
US9086819B2 (en) * 2012-07-25 2015-07-21 Anoosmar Technologies Private Limited System and method for combining deduplication and encryption of data
JPWO2014030252A1 (ja) * 2012-08-24 2016-07-28 株式会社日立製作所 ストレージ装置及びデータ管理方法
AU2012389110B2 (en) * 2012-12-12 2016-03-17 Huawei Technologies Co., Ltd. Data processing method and apparatus in cluster system
US8954392B2 (en) * 2012-12-28 2015-02-10 Futurewei Technologies, Inc. Efficient de-duping using deep packet inspection
CN103049391B (zh) * 2012-12-29 2014-05-07 华为技术有限公司 数据处理方法和设备
US20140214775A1 (en) * 2013-01-29 2014-07-31 Futurewei Technologies, Inc. Scalable data deduplication
US9766832B2 (en) 2013-03-15 2017-09-19 Hitachi Data Systems Corporation Systems and methods of locating redundant data using patterns of matching fingerprints
US9639577B1 (en) * 2013-03-27 2017-05-02 Symantec Corporation Systems and methods for determining membership of an element within a set using a minimum of resources
US10339112B1 (en) * 2013-04-25 2019-07-02 Veritas Technologies Llc Restoring data in deduplicated storage
WO2014185916A1 (en) 2013-05-16 2014-11-20 Hewlett-Packard Development Company, L.P. Selecting a store for deduplicated data
WO2014185918A1 (en) * 2013-05-16 2014-11-20 Hewlett-Packard Development Company, L.P. Selecting a store for deduplicated data
US9256611B2 (en) 2013-06-06 2016-02-09 Sepaton, Inc. System and method for multi-scale navigation of data
US9552370B1 (en) * 2013-06-27 2017-01-24 EMC IP Holding Company LLC Signaling impending out of storage condition from a virtual tape drive
US9892127B2 (en) 2013-07-15 2018-02-13 International Business Machines Corporation Global digests caching in a data deduplication system
US10339109B2 (en) 2013-07-15 2019-07-02 International Business Machines Corporation Optimizing hash table structure for digest matching in a data deduplication system
US9836474B2 (en) 2013-07-15 2017-12-05 International Business Machines Corporation Data structures for digests matching in a data deduplication system
US9891857B2 (en) 2013-07-15 2018-02-13 International Business Machines Corporation Utilizing global digests caching in similarity based data deduplication
US9892048B2 (en) 2013-07-15 2018-02-13 International Business Machines Corporation Tuning global digests caching in a data deduplication system
US9594766B2 (en) 2013-07-15 2017-03-14 International Business Machines Corporation Reducing activation of similarity search in a data deduplication system
US9286314B2 (en) 2013-07-15 2016-03-15 International Business Machines Corporation Applying a maximum size bound on content defined segmentation of data
US9268786B2 (en) 2013-07-15 2016-02-23 International Business Machines Corporation Applying a minimum size bound on content defined segmentation of data
US10133502B2 (en) 2013-07-15 2018-11-20 International Business Machines Corporation Compatibility and inclusion of similarity element resolutions
US9922042B2 (en) 2013-07-15 2018-03-20 International Business Machines Corporation Producing alternative segmentations of data into blocks in a data deduplication system
US10229132B2 (en) 2013-07-15 2019-03-12 International Business Machines Corporation Optimizing digest based data matching in similarity based deduplication
US9244830B2 (en) 2013-07-15 2016-01-26 Globalfoundries Inc. Hierarchical content defined segmentation of data
US10789213B2 (en) 2013-07-15 2020-09-29 International Business Machines Corporation Calculation of digest segmentations for input data using similar data in a data deduplication system
US10229131B2 (en) 2013-07-15 2019-03-12 International Business Machines Corporation Digest block segmentation based on reference segmentation in a data deduplication system
US10296598B2 (en) 2013-07-15 2019-05-21 International Business Machines Corporation Digest based data matching in similarity based deduplication
US10296597B2 (en) 2013-07-15 2019-05-21 International Business Machines Corporation Read ahead of digests in similarity based data deduplicaton
US10073853B2 (en) 2013-07-17 2018-09-11 International Business Machines Corporation Adaptive similarity search resolution in a data deduplication system
US9916112B1 (en) * 2013-09-30 2018-03-13 EMC IP Holding Company LLC Efficient file copy that avoids data duplication
US9678973B2 (en) 2013-10-15 2017-06-13 Hitachi Data Systems Corporation Multi-node hybrid deduplication
CN104572788B (zh) * 2013-10-29 2017-10-17 上海征途信息技术有限公司 一种游戏用户数据的数据存储方法
KR102187127B1 (ko) * 2013-12-03 2020-12-04 삼성전자주식회사 데이터 연관정보를 이용한 중복제거 방법 및 시스템
US20150207742A1 (en) * 2014-01-22 2015-07-23 Wipro Limited Methods for optimizing data for transmission and devices thereof
US9514000B2 (en) * 2014-01-31 2016-12-06 Western Digital Technologies, Inc. Backup of baseline installation
US10374807B2 (en) 2014-04-04 2019-08-06 Hewlett Packard Enterprise Development Lp Storing and retrieving ciphertext in data storage
CN104978239B (zh) * 2014-04-08 2019-02-19 重庆邮电大学 一种实现多备份数据动态更新的方法、装置及系统
US9659047B2 (en) * 2014-12-03 2017-05-23 Netapp, Inc. Data deduplication utilizing extent ID database
CN107113314B (zh) * 2015-01-19 2020-06-19 诺基亚技术有限公司 用于云计算中的异构数据存储管理的方法和装置
US20170288861A1 (en) * 2015-01-30 2017-10-05 Hewlett Packard Enterprise Development Lp Data encryption
US10621143B2 (en) * 2015-02-06 2020-04-14 Ashish Govind Khurange Methods and systems of a dedupe file-system garbage collection
US10650014B2 (en) 2015-04-09 2020-05-12 International Business Machines Corporation Data ingestion process
US10152389B2 (en) 2015-06-19 2018-12-11 Western Digital Technologies, Inc. Apparatus and method for inline compression and deduplication
US9552384B2 (en) 2015-06-19 2017-01-24 HGST Netherlands B.V. Apparatus and method for single pass entropy detection on data transfer
CN105069111B (zh) * 2015-08-10 2018-09-18 广东工业大学 云存储中基于相似性的数据块级数据去重方法
DE102015117353A1 (de) * 2015-10-12 2017-04-13 Turgay Coruh Optimierte Übertragung elektronischer Dokumente mittels verteilter Netzwerk-Ressourcen
CN105681273B (zh) * 2015-12-17 2018-11-20 西安电子科技大学 客户端重复数据删除方法
US10235396B2 (en) 2016-08-29 2019-03-19 International Business Machines Corporation Workload optimized data deduplication using ghost fingerprints
WO2019094556A1 (en) * 2017-11-08 2019-05-16 Massachusetts Institute Of Technology System for de-duplicating network coded distributed storage and related techniques
US10719251B2 (en) * 2018-01-31 2020-07-21 Nutanix, Inc. System and method for recursive de-duplication
JP7075077B2 (ja) * 2018-03-13 2022-05-25 Necソリューションイノベータ株式会社 バックアップサーバ、バックアップ方法、プログラム、ストレージシステム
US11263087B2 (en) * 2018-07-05 2022-03-01 EMC IP Holding Company LLC Methods and systems for serverless data deduplication
US11042519B2 (en) 2019-01-15 2021-06-22 Cisco Technology, Inc. Reinforcement learning for optimizing data deduplication
US11221778B1 (en) 2019-04-02 2022-01-11 Pure Storage, Inc. Preparing data for deduplication
US11989124B2 (en) 2019-04-26 2024-05-21 EMC IP Holding Company LLC Garbage collection for a deduplicated cloud tier with encrypted segments
US11580015B2 (en) * 2019-05-03 2023-02-14 EMC IP Holding Company LLC Garbage collection for a deduplicated cloud tier using functions
CN110941598A (zh) * 2019-12-02 2020-03-31 北京锐安科技有限公司 一种数据去重方法、装置、终端及存储介质
CN111177082B (zh) * 2019-12-03 2023-06-09 世强先进(深圳)科技股份有限公司 一种pdf文件去重存储方法及系统
US11893109B2 (en) * 2020-01-21 2024-02-06 Exagrid Systems, Inc. Protection and recovery of backup storage systems from ransomware attacks
CN112380197A (zh) * 2020-10-29 2021-02-19 中科热备(北京)云计算技术有限公司 一种基于前端重复数据删除的方法
CN112527521B (zh) * 2020-12-03 2023-07-04 中国联合网络通信集团有限公司 消息处理方法及设备
US11606277B2 (en) * 2021-02-10 2023-03-14 Cohesity, Inc. Reducing the impact of network latency during a restore operation
US20220374401A1 (en) * 2021-05-18 2022-11-24 International Business Machines Corporation Determining domain and matching algorithms for data systems
CN113468509B (zh) * 2021-07-05 2024-01-30 曙光信息产业(北京)有限公司 一种用户认证的迁移方法、装置、设备及存储介质
CN113709510A (zh) * 2021-08-06 2021-11-26 联想(北京)有限公司 高速率数据实时传输方法及装置、设备、存储介质
US20230350763A1 (en) * 2022-04-27 2023-11-02 Cohesity, Inc. Utilizing fixed-sized and variable-length data chunks to perform source side deduplication

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080034021A1 (en) * 2001-08-20 2008-02-07 Kristof De Spiegeleer Efficient Computer File Backup System and Method

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2420422C (en) * 2000-08-31 2009-10-06 Ontrack Data International, Inc. System and method for data management
US8412682B2 (en) * 2006-06-29 2013-04-02 Netapp, Inc. System and method for retrieving and using block fingerprints for data deduplication
US8214517B2 (en) * 2006-12-01 2012-07-03 Nec Laboratories America, Inc. Methods and systems for quick and efficient data management and/or processing
US7840537B2 (en) * 2006-12-22 2010-11-23 Commvault Systems, Inc. System and method for storing redundant information
US20080243769A1 (en) * 2007-03-30 2008-10-02 Symantec Corporation System and method for exporting data directly from deduplication storage to non-deduplication storage
US8166012B2 (en) * 2007-04-11 2012-04-24 Emc Corporation Cluster storage using subsegmenting
JP2009019441A (ja) 2007-07-13 2009-01-29 Nippon Adox Kk コンクリートの補修方法
CN101415016A (zh) * 2007-10-17 2009-04-22 深圳市亚贝电气技术有限公司 一种数据复制方法、系统和存储服务器
US8782368B2 (en) * 2007-10-25 2014-07-15 Hewlett-Packard Development Company, L.P. Storing chunks in containers
US7870105B2 (en) * 2007-11-20 2011-01-11 Hitachi, Ltd. Methods and apparatus for deduplication in storage system
WO2010036889A1 (en) * 2008-09-25 2010-04-01 Bakbone Software, Inc. Remote backup and restore
US20100088296A1 (en) * 2008-10-03 2010-04-08 Netapp, Inc. System and method for organizing data to facilitate data deduplication
US8140491B2 (en) * 2009-03-26 2012-03-20 International Business Machines Corporation Storage management through adaptive deduplication
US8479304B1 (en) * 2009-03-31 2013-07-02 Symantec Corporation Selectively protecting against chosen plaintext attacks in untrusted storage environments that support data deduplication
US8612702B1 (en) * 2009-03-31 2013-12-17 Symantec Corporation Systems and methods for performing optimized backups of multiple volumes
US8412848B2 (en) * 2009-05-29 2013-04-02 Exagrid Systems, Inc. Method and apparatus for content-aware and adaptive deduplication
US8285681B2 (en) * 2009-06-30 2012-10-09 Commvault Systems, Inc. Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080034021A1 (en) * 2001-08-20 2008-02-07 Kristof De Spiegeleer Efficient Computer File Backup System and Method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IBM: Evaluating Data Deduplication Solutions. Evaluating Data Deduplication Solutions, 2008. Im Internet: <URL: http://www.csiltd.co.uk/PDFS/IBM%20Nseries%20Data%20Deduplication.pdf> [recher-chiert am 08.07.2013] *

Also Published As

Publication number Publication date
GB2484019B (en) 2016-09-28
US20110016095A1 (en) 2011-01-20
GB201119845D0 (en) 2011-12-28
GB2484019A (en) 2012-03-28
WO2011006859A1 (en) 2011-01-20
DE112010002938T5 (de) 2012-09-20
US9058298B2 (en) 2015-06-16
CN102473127B (zh) 2015-05-27
JP5571786B2 (ja) 2014-08-13
CN102473127A (zh) 2012-05-23
JP2012533126A (ja) 2012-12-20

Similar Documents

Publication Publication Date Title
DE112010002938B4 (de) Eine integrierte Herangehensweise zur Deduplizierung von Daten in einer verteiltenUmgebung, die eine Quelle und ein Ziel umfasst
DE112012005037B4 (de) Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds
DE112007003678B4 (de) Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung
DE102008015662B4 (de) Beseitigung von Daten
DE112007003693B4 (de) Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung
DE112012004937T5 (de) Fingerabdruckbasierte Datendeduplizierung
DE102012208141B4 (de) Ausgleich nachlassender Funktionsfähigkeit
DE112013000900B4 (de) Bewahren von Redundanz in Datendeduplizierungssystemen unter Verwendung eines Anzeigers
DE102013204972A1 (de) Hybride Sicherung und Wiederherstellung eines sehr grossen Dateisystems unter Verwendung von Metadaten-Abbildsicherung und herkömmlicher Sicherung
DE112010003262B4 (de) Synchronisierung replizierter sequenzieller Zugriffsspeicherkomponenten
DE112011100819T5 (de) Speicherplatzreservierung in einem Deduplizierungssystem
DE112012003695T5 (de) Aufrechterhalten mehrerer Zielkopien
DE112019006667T5 (de) Nutzen von blockchaintechnologie zum prüfen eines cloud-dienstes für die datenschutzkonformität
DE112018003585B4 (de) Verfahren, Computerprogrammprodukt und Speicherbandlaufwerk-Hardwareeinheit zum Verbessern der Deduplizierung eines Bandlaufwerkspeichers
DE112013003340T5 (de) Einfrieren von virtuellen Sofortkopien auf mehreren Datenträgern
DE112017000190T5 (de) Durchgehende Verschlüsselung und Backup in Datenschutzumgebungen
DE112011103367T5 (de) Replizieren von Daten
DE112015000343T5 (de) Erstellen einer Wiederherstellungskopie von einer Quelldaten-Kopie in einem Repository, das Quelldaten an verschiedenen Zeitpunkten aufweist
DE112019006676T5 (de) Blockchaintechnologie zur Regelung der Datenintegrität und zum Existenzbeweis bei Datenschutzsystemen
DE112018000227B4 (de) Verfahren zum teilweisen Aktualisieren von Dateninhalten in einem verteilten Speichernetzwerk
DE112020003437T5 (de) Hyper-scale p2p-dedupliziertes speichersystem unter verwendung einesdistributed ledger
DE102021126883A1 (de) Fehleranzeigen für speichersystembefehle
DE112019005351T5 (de) Beliebige zeitpunktreplikation in die cloud
US11989124B2 (en) Garbage collection for a deduplicated cloud tier with encrypted segments
US10761945B2 (en) Dynamically directing data in a deduplicated backup system

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final