
Daten-Deduplizierung: Das steckt dahinter
Deduplizierung ist zum wichtigen Schlagwort geworden, wenn es um die Reduzierung von Datenmengen geht. Speicherexperte Norbert Deuschle erklärt, was dahinter steckt, welche Verfahren zum Einsatz kommen und welche Applikationen geeignet sind.
Daten-Deduplizierung bezeichnet verschiedene Verfahren, um automatisiert redundante Files, Bytes oder Datenblöcken zu entfernen. Die eliminierten Daten werden durch Pointer ersetzt. Ziel ist es, die Menge zu speichernder Daten entweder bereits an der Quelle (Source) oder am Ziel (Target) zu reduzieren. Das hierzu nötige Repository (Metadaten-Index) zur Identifikation von nicht-redundanten Daten liefert im Zusammenspiel mit der eigentlichen Deduplizierung-Engine (Software, Algorithmen) die Grundlage zu Implementierung entsprechender Lösungen. Es kommen in der Regel so genannte Pattern-Matching- (Delta-based Suchmuster) oder hashbasierte Technologien zur Anwendung.
Die Deduplizierung kann derzeit sowohl über (Backup-) Software als auch mittels dedizierter Hardware (Appliance, Array, Virtual-Tape-System) umgesetzt werden.
Grundsätzliche Begriffe und verwendete Techniken
Beim Single Instancing werden ganze Objekte (zum Beispiel Files) nur einmal abgespeichert. Nachteil: Auch wenn sich nur ein Zeichen in einer Datei ändert, wird der gesamte Inhalt doppelt gespeichert. Der Einspareffekt ist hier also geringer als beim Entfernen von Block-basierten Redundanzen. Beispiel: Von 20 Kopien eines Word Dokuments enthält jedes Doppel nur eine unterschiedliche Seite; einem Datenreduktionssystem auf Dateiebene erscheinen die Kopien als 20 unterschiedliche Files. Das Single-Instancing-Verfahren wird häufig in Verbindung mit inkrementeller oder differentieller Datensicherung eingesetzt.
Deduplizierung auf Block-Level ist die Form des Single Instancing auf der Ebene unterhalb von Dateien (Sub-File-Level). Der Begriff »Deduplikation« wird deshalb meist in diesem Zusammenhang verwendet. Bei Deduplizierung auf Blockebene lassen sich alle redundanten Daten entfernen und weniger Speicherplatz auf der Festplatte wird benötigt.
Ein leistungsstarkes Deduplizierungsverfahren beruht auf Blocks mit variabler Länge. Die Methode analysiert eine Sequenz von Daten und teilt sie in verschiedene Blöcke von variabler Länge auf. Wird ein redundanter Block erkannt, legt das System einen auf den Originalblock verweisenden Pointer ab (Metadaten), statt den Block erneut zu speichern. Da der Pointer deutlich weniger Platz in Anspruch nimmt als der Block selbst, wird Speicherplatz einspart. Bei Backup-Jobs, in denen dieselben Blöcke immer wieder vorkommen, kann so das 10- bis 50-fache an Daten auf dem entsprechenden Speichersystem gespeichert werden. Welches ist für welche Anwendung das jeweils effizienteste Verfahren und was der Algorithmus mit der höchsten beziehungsweise sichersten Deduplizierungsrate? Bevor wir uns dieser Fragestellung widmen, soll noch kurz auf den Unterschied zwischen Deduplizierung und Komprimierung hingewiesen werden.
Deduplizierung ist eine Weiterentwicklung von Kompressionsalgorithmen, die für Files benutzt wurden. Ausgangspunkt war das so genannte »Check Sum Verfahren« aus der Kryptografie, um verschlüsselte Signaturen zu erzeugen (SHA0,1, MD5 etc.), es ist also prinzipiell keine neue Technik. Jedoch wurden die mathematischen Verfahren bei der Deduplizierung fortentwickelt und für Block-, Byte-, Bit-Ebene und File-Level erweitert. Bei der Datenkomprimierung wird die Darstellung von Daten so modifiziert, dass weniger Platz dafür benötigt wird. Eine Sequenz gleicher Gruppen von Zeichen zum Beispiel lässt sich durch eines dieser Zeichen oder Zeichengruppen mit dem jeweiligen Wiederholungsfaktor ersetzen. Ebenso wie bei der Deduplizierung speichert die Komprimierung die redundanten Daten nicht weiter ab, liefert allerdings im Ergebnis eine geringere Effizienz (realistische Werte liegen bei 1:2 – abhängig vom Datentyp). Die Deduplizierung sollte idealerweise durch eine lokale Komprimierung ergänzt werden, wodurch die Datengröße noch einmal halbiert wird und damit eine erhebliche Datenreduzierung erreichen wird.
Wie arbeitet Deduplizierung?
Deduplizierung funktioniert mit Algorithmen, die nach doppelten Datenobjekten – Chunks oder Blöcken – suchen und zu diesem Zweck eine eindeutige Identifikation über den Hash-Wert der Objekte bilden. Dazu muss ein Katalog aller bisherigen Werte erzeugt werden (Metadaten-Index). Als nächstes vergleicht man die Hash-Werte und speichert bei erstmaligem Auftreten eines Objektes dieses dann ab (ein Chunk ist in etwa wie der menschliche Fingerabdruck, also einmalig). Die Chunk-Inhalte werden nun miteinander verglichen und nur dann gesichert, wenn sie als Inhalt bislang noch nicht identifiziert wurden. Das bedeutet: Bei redundanten Objekten wird nur ein Pointer zum ersten gespeicherten Objekt erzeugt.
Es wurde über die Möglichkeit von Datenverlusten bei der Deduplizierung durch Hash-Kollisionen berichtet und auf Grund von fehlerhaften Kalkulationen bei den ersten Hash-Code-Implementierungen auch vereinzelt in der Praxis beobachtet. Eine Kollision bedeutet, dass zwei überprüfte Datensätze dieselbe Identifikationsnummer erhalten – also denselben Hash-Code erzeugen – obwohl sie aus jeweils unterschiedliche Bitfolgen bestehen. Dies ist möglich (als Funktion der Datenmenge bzw. der Hash-Implementierung), allerdings verfügen moderne Hash-Codes über eine ausgefeilte Integritätsprüfung und die Fehlerrate ist laut Aussagen von Anbietern damit beispielsweise geringer als die mögliche Bitfehler-Rate bei heutigen LTO-Tapes.
Anforderungen an Deduplizierungslösungen
In modernen Speichersystemen werden immer öfter verschiedene Standardprotokolle verwendet, zum Beispiel NFS, CIFS, Block, iSCSI, FC und VTL (siehe auch »Unified Storage«), da diverse Anwendungen unterschiedliche Protokolle zur selben Zeit benötigen. Benutzer-Startverzeichnisse können sich auf einem NAS-Server befinden; der Exchange-Server sollte in Blöcken ausgeführt werden und für Sicherung wird eine VTL bevorzugt.
Im Laufe eines Lebenszyklus werden dieselben Daten möglicherweise mit allen Protokollen gespeichert. Eine Präsentation, die in einem Startverzeichnis beginnt, kann per E-Mail gesendet oder vom E-Mail-Server in Blockformat gespeichert und dann von einer E-Mail-Archivierung auf einem NAS-Server abgespeichert werden. Diese kann vom Startverzeichnis, E-Mail-Server und von der Archivierungsanwendung in der VTL gesichert werden. Bei der Deduplizierung sollten somit unabhängig von der Art der Speicherung möglichst alle redundante Daten gefunden werden.
Hinweis: Artikel von ITespresso.de stehen auch in Google Currents zur Verfügung. Jetzt abonnieren.



Letzter Kommentar
Eine Antwort zu Daten-Deduplizierung: Das steckt dahinter
Sehr gute Übersicht über die verschiedenen Deduplizierungsmöglichkeiten.
Leider fehlen ein paar Grafiken, die das Ganze unterstützen und noch mehr verdeutlichen. Personen ohne Storage-, Backup- und Dedup-Background werden sich sehr schwer tun, dies zu verstehen.