Datendeduplizierung
Bei der Datendeduplizierung (auch als Datendeduplikation bezeichnet) handelt es sich um einen Datenreduzierungsprozess, der redundante Kopien von Daten eliminiert und den Speicheraufwand reduziert.
Datendeduplizierungstechniken stellen sicher, dass nur eine einzige Instanz von Daten auf Speichermedien wie Festplatte,Flash oder Band gespeichert wird. Redundante Datenblöcke werden durch einen Zeiger (Pointer) auf die eindeutige Datenkopie ersetzt. Auf diese Weise ist die Datendeduplizierung eng mit dem inkrementellen Backup verbunden, bei der nur die Daten kopiert werden, die sich seit der letzten Sicherung geändert haben.
Ein Beispiel für Datendeduplizierung
Ein typisches E-Mail-System kann 100 Instanzen desselben 1 Megabyte (MB) großen Dateianhangs enthalten. Wenn die E-Mail-Plattform gesichert oder archiviert wird, werden alle 100 Instanzen gespeichert, was 100 MB Speicherplatz erfordert. Bei der Datendeduplizierung wird nur eine Instanz des Anhangs gespeichert; jede nachfolgende Instanz wird auf die eine gespeicherte Kopie mittels Pointer zurückverwiesen.
In diesem Beispiel sinkt der Speicherbedarf von 100 MB auf 1 MB.
Ziel- vs. Quell-Deduplizierung
Die Datendeduplizierung kann auf Quell- oder Zielebene erfolgen.
Bei der quellbasierten Deduplizierung werden redundante Blöcke entfernt, bevor die Daten an ein Sicherungsziel auf Client- oder Serverebene übertragen werden. Es ist keine zusätzliche Hardware erforderlich. Die Deduplizierung an der Quelle reduziert die Bandbreite und den Speicherbedarf.
Bei der zielbasierten Deduplizierung werden die Backups über ein Netzwerk an plattenbasierte Hardware an einem entfernten Standort übertragen. Diese Deduplizierung erhöht die Kosten, obwohl sie im Allgemeinen einen Leistungsvorteil gegenüber der Deduplizierung an der Quelle bietet, insbesondere bei Datensätzen im Petabyte-Bereich.
Techniken zur Deduplizierung von Daten
Es gibt zwei Hauptmethoden zur Deduplizierung redundanter Daten: Inline- und Post-Processing-Deduplizierung. Die Backup-Umgebung bestimmt die Methode.
Bei der Inline-Deduplizierung werden die Daten analysiert, während das Backup-System sie einliest. Redundanzen werden entfernt, während die Daten auf den Backup-Speicher geschrieben werden. Inline-Deduplizierung erfordert weniger Sicherungsspeicher, kann aber zu Engpässen führen. Die Anbieter von Speicher-Arrays empfehlen den Benutzern, ihre Inline-Deduplizierungs-Tools für Hochleistungs-Primärspeicher zu deaktivieren.
Post-Processing-Deduplizierung ist ein asynchroner Sicherungsprozess, der redundante Daten entfernt, nachdem sie auf den Speicher geschrieben wurden. Doppelte Daten werden entfernt und durch einen Zeiger auf die erste Iteration des Blocks ersetzt. Der Post-Processing-Ansatz gibt den Benutzern die Flexibilität, bestimmte Arbeitslasten zu deduplizieren und die jüngste Sicherung ohne Hydration schnell wiederherzustellen. Der Preis dafür ist, dass eine größere Backup-Speicherkapazität als bei der Inline-Deduplizierung erforderlich ist.
Deduplizierung auf Dateiebene vs. Blockebene
Die Datendeduplizierung erfolgt im Allgemeinen auf Datei- oder Blockebene.
Bei der Datendeduplizierung auf Dateiebene wird eine Datei, die gesichert oder archiviert werden soll, mit bereits gespeicherten Kopien verglichen. Dazu werden die Attribute der Datei mit einem Index verglichen. Wenn die Datei eindeutig ist, wird sie gespeichert und der Index aktualisiert; wenn nicht, wird nur ein Zeiger auf die vorhandene Datei gespeichert. Das Ergebnis ist, dass nur eine Instanz der Datei gespeichert wird. Nachfolgende Kopien werden durch einen Stub ersetzt, der auf die Originaldatei verweist.
Bei der Deduplizierung auf Blockebene wird die Datei durchsucht und jeder Block in eindeutigen Wiederholungen gespeichert. Alle Blöcke werden in Chunks mit der gleichen festen Länge unterteilt. Jedes Datenpaket wird mit einem Hash-Algorithmus wie MD5 oder SHA-1 verarbeitet.
Dabei wird für jedes Stück eine eindeutige Nummer erzeugt, die dann in einem Index gespeichert wird. Wird eine Datei aktualisiert, werden nur die geänderten Daten gespeichert, auch wenn sich nur wenige Bytes des Dokuments oder der Präsentation geändert haben. Die Änderungen stellen keine völlig neue Datei dar. Dieses Verhalten macht die Block-Deduplizierung effizienter als die Datei-Deduplizierung. Allerdings benötigt die Block-Deduplizierung mehr Rechenleistung und einen größeren Index, um die einzelnen Teile zu verfolgen.
Die Deduplizierung mit variabler Länge ist eine Alternative, bei der ein Dateisystem in Stücke unterschiedlicher Größe unterteilt wird, so dass bei der Deduplizierung eine bessere Datenreduzierung erreicht werden kann als bei Blöcken fester Länge. Allerdings werden dabei auch mehr Metadaten erzeugt und die Verarbeitung ist langsamer.
Vorteile und Nachteil der Deduplizierung
Hash-Kollisionen sind ein potenzielles Problem bei der Deduplizierung. Wenn ein Teil der Daten eine Hash-Nummer erhält, wird diese Nummer mit dem Index anderer bestehender Hash-Nummern verglichen. Wenn diese Hash-Nummer bereits im Index enthalten ist, wird der Datensatz als Duplikat betrachtet und muss nicht erneut gespeichert werden. Andernfalls wird die neue Hash-Nummer zum Index hinzugefügt und die neuen Daten werden gespeichert.
In seltenen Fällen kann es vorkommen, dass der Hash-Algorithmus dieselbe Hash-Nummer für zwei verschiedene Datenstücke erzeugt. Wenn eine Hash-Kollision auftritt, speichert das System die neuen Daten nicht, weil es feststellt, dass die Hash-Nummer bereits im Index vorhanden ist. Dies wird als False Positive bezeichnet und kann zu Datenverlusten führen. Einige Anbieter kombinieren Hash-Algorithmen, um die Möglichkeit einer Hash-Kollision zu verringern. Einige Anbieter untersuchen auch Metadaten, um Daten zu identifizieren und Kollisionen zu vermeiden.
Die Vorteile der Deduplizierung sind unter anderem:
- ein geringeres Datenaufkommen
- geringerer Bandbreitenverbrauch beim Kopieren von Daten im Zusammenhang mit Remote Backups, Replikationund Disaster Recovery
- längere Aufbewahrungsfristen
- schnellere Recovery Time Objectives
- reduziert Bandsicherungen
Datendeduplizierung vs. Komprimierung vs. Thin Provisioning
Eine weitere Technik, die oft mit der Deduplizierung in Verbindung gebracht wird, ist die Komprimierung. Die beiden Techniken funktionieren jedoch unterschiedlich. Bei der Datendeduplizierung wird nach redundanten Datenpaketen gesucht, während bei der Komprimierung ein Algorithmus verwendet wird, um die Anzahl der für die Darstellung der Daten erforderlichen Bits zu reduzieren.
Komprimierung und Delta-Differenzierung werden häufig zusammen mit Deduplizierung verwendet. Zusammengenommen dienen diese drei Datenreduzierungstechniken der Optimierung der Speicherkapazität.
Thin Provisioning optimiert die Nutzung der Kapazität eines Storage Area Network. Umgekehrt ist Erasure Coding eine Methode zum Schutz von Daten, bei der Daten in Fragmente zerlegt und jedes Fragment mit redundanten Datenstücken kodiert wird, um beschädigte Datensätze zu rekonstruieren.
Deduplizierung von Primärdaten und die Cloud
Die Datendeduplizierung hat ihren Ursprung in der Datensicherung und im Sekundär-Storage, obwohl es auch möglich ist, Primärdatensätze zu deduplizieren. Letzteres ist besonders hilfreich, um die Kapazität und Leistung von Flash-Speichern zu maximieren. Die Deduplizierung von Primärspeichern ist eine Funktion der Speicherhardware oder der Software des Betriebssystems.
Techniken zur Deduplizierung von Daten sind für Anbieter von Cloud-Diensten vielversprechend, um die Kosten zu senken. Die Möglichkeit, die gespeicherten Daten zu deduplizieren, führt zu geringeren Kosten für Festplattenspeicher und Bandbreite für die Replikation an einen externen Standort.