Mobile-Menu

Definition Was ist Deduplizierung (Deduplication)?

Redakteur: Rainer Graefen

Deduplizierung (Deduplication, zuweilen auch: Deduplikation) ist in der Informationstechnik ein Prozess, der redundante Daten auf Blockebene identifiziert und durch einen Zeiger/Pointer auf das erste Auftreten dieses Datums ersetzt. Gegenüber den klassischen Kompressionsverfahren wurde anfangs eine hohe Datenverdichtung erreicht. Inzwischen ist die Komprimierung angesichts vieler deduplizierter Daten häufig wirkungsvoller.

Anbieter zum Thema

So funktioniert Datendeduplizierung.
So funktioniert Datendeduplizierung.
( RealVector - Fotolia.com)

Die Entfernung von Redundanzen kann erstens auf der Dateiebene erfolgen und wird dann häufig als „Single-Instance Storage“ bezeichnet, sie kann zweitens aber auch auf der Blockebene durchgeführt werden.

Abhängig von der Datenstruktur ergeben sich nach Angaben mancher Hersteller Deduplizierungsraten von 1:500. In der Praxis werden Kompressionsraten von 1:7 bis 1:12 beobachtet. In selteneren Fällen, zum Beispiel bei Videos, ist gar keine Deduplizierung möglich. Hier helfen dann meist nur noch Komprimierungsverfahren, die andere Algorithmen benutzen.

Vorrangige Einsatzgebiete der Deduplizierung sind die Datensicherung (Backup), die Datenspeicherung, die Archivierung und der Datentransfer. Das Verfahren eignet sich jedoch grundsätzlich für jeden Einsatzfall, bei dem Daten wiederholt kopiert werden.

Funktionsweise

Deduplizierungssysteme arbeiten anders als klassische Kompressionsverfahren, die nur wenige Vergleichsmuster benutzen, auf dem Blocklevel. Hierin liegt auch die Abgrenzung zum Single-Instance Storage (SIS), das identische Dateien eliminieren soll (siehe auch inhaltsadressierte Speichersysteme, CAS).

Ein Beispiel für SIS: Vor allem bei der E-Mail-Archivierung lassen sich viele Redundanzen beseitigen, da häufig dieselben Anhänge an mehrere Empfänger verschickt werden. Wird der E-Mail-Server gesichert oder archiviert, werden alle mehrfach vorhanden Instanzen mit gesichert und verbrauchen Speicherplatz.

Im Falle der Redundanzentfernung wird nur eine Instanz des Anhangs tatsächlich gespeichert, alle weiteren Instanzen verweisen lediglich auf die gespeicherte Kopie.

Das Fingerprinting (Hash)

Eine wichtige Funktion der Deduplizierung ist das Fingerprinting (Hash). Hier werden Dateien in Segmente unterschiedlichster Größe (Chunks) zerlegt. Auf Byte-Ebene wird dann analysiert, welche Segmente die höchste Wiederholrate bieten, um durch Referenzierung (Pointer) auf das Ursprungselement größtmögliche Datenreduzierungen zu bieten.

Ein Beispiel: Bei der Datensicherung von Festplatte auf Bandmedien, ändern sich die Daten von einer Woche zur nächsten, von einer Vollsicherung bis zur nächsten Vollsicherung aber nur relativ gering. Zwei Vollsicherungen benötigen daher bei der klassischen Datensicherung mindestens die doppelte Speicherkapazität auf Band im Vergleich zu den Originaldaten. Die Deduplizierung erkennt die identischen Datenbestandteile und referenziert diese. In einer Liste werden dazu eindeutige Segmente festgehalten, und beim erneuten Auftreten dieses Datenteils werden Zeitpunkt und Ort im Datenstrom notiert, sodass letztlich die Originaldaten wiederhergestellt werden können.

Diese Zeiger beanspruchen wesentlich weniger Platz als die referenzierte Bitfolge. Wird die Datei wieder aufgerufen, so wird sie sowohl aus ihren einzigartigen Bestandteilen als auch aus den Teilen, die sie mit anderen Dateien gemein hat, zusammengefügt. Der Index besagt, welche Teile das sind und wie sie mit den einzigartigen Bestandteilen verbunden werden müssen, um wieder die Ursprungsdatei zu ergeben.

Methoden

Es gibt zwei Methoden, einen Datenblock-Bauplan zu erzeugen:

  • Beim Reverse-Referencing wird das erste gemeinsame Element gespeichert, alle weiteren identischen erhalten einen Verweis auf das erste.
  • Forward-Referencing legt immer den zuletzt aufgetretenen, gemeinsamen Datenblock ab und referenziert die vorher aufgetretenen Elemente.

Bei diesem Methodenstreit geht es darum, ob Daten schneller verarbeitet respektive schneller wiederhergestellt werden können.

Auf der Anwendungsebene unterscheidet man zwischen Inband und Outband. Dabei geht es darum, ob der Datenstrom „on the fly“, also im laufenden Betrieb, analysiert wird oder erst nachdem dieser am Zielort gespeichert wurde. Im ersten Fall darf nur ein Datenstrom existieren, im zweiten können die Daten mittels mehrerer Datenströme parallel untersucht werden.

Das Fingerprinting versucht auch festzustellen, wie der eingehende Datenstrom am besten in Stücke zerlegt werden kann, sodass möglichst viele identische Bauteile entstehen. Dieser Vorgang heißt Chunking (englisch chunk = Stück, Block).

Je genauer die Änderungen einer Datei bestimmt werden können, desto weniger muss redundant gesichert werden. Allerdings vergrößert sich dadurch der Index, also der Bauplan. Daher ist auch die Methode der Identifikation von gemeinsamen Blöcken entscheidend. Am exaktesten ist ein Bit-für-Bit-Vergleich, allerdings sind die Systemanforderungen sehr hoch. Daher kommen meist Hash-Mechanismen zum Einsatz.

In der Praxis wird die Redundanzentfernung oft in Verbindung mit anderen Arten der Datenkomprimierung wie traditionellen Komprimierungsmethoden sowie der Delta-Differenzierung verwendet. Zusammen bilden diese drei Techniken eine sehr effektive Methode für die Optimierung der Speicherplatznutzung.

(ID:43812342)