Deduplikation

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Deduplizierung)
Wechseln zu: Navigation, Suche

Deduplikation, auch Datendeduplikation (engl. Deduplication), in unsauberem Deutsch auch Deduplizierung, ist in der Informationstechnik ein Prozess, der redundante Daten identifiziert (Duplikaterkennung) und eliminiert, bevor diese auf einen nichtflüchtigen Datenträger geschrieben werden. Der Prozess komprimiert wie andere Verfahren auch die Datenmenge, die von einem Sender an einen Empfänger geschickt wird. Es ist nahezu unmöglich, die Effizienz bei der Verwendung von Deduplikations-Algorithmen vorherzusagen, da sie immer von der Datenstruktur und der Änderungsrate abhängig ist. Deduplikation ist jedoch die derzeit effizienteste Art, Daten zu reduzieren, bei denen eine Mustererkennung möglich ist (unverschlüsselte Daten).

Vorrangiges Einsatzgebiet der Deduplikation ist vorerst die Datensicherung (Backup), bei der sich in der Praxis realistische Datenkomprimierung von 1:12 erzielen lassen. Das Verfahren eignet sich jedoch grundsätzlich für jeden Einsatzbereich, bei dem Daten wiederholt kopiert werden.

Funktionsweise[Bearbeiten]

Deduplikations-Systeme arbeiten anders als klassische Kompressionsverfahren, die nur wenige Vergleichsmuster benutzen, auf dem sogenannten "Blocklevel", d. h. die Dateien werden als in eine Anzahl Blöcke gleicher Größe (meist Zweierpotenzen) zerlegt betrachtet. Hierin liegt auch die Abgrenzung zum Single Instance Storage (SIS), das identische Dateien eliminieren soll (siehe auch inhaltsadressierte Speichersysteme, CAS). Eine wichtige Funktion der Deduplikation ist das "Fingerprinting". 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 ist das Verhältnis von neuen bzw. veränderten zu unveränderten Daten zwischen zwei Vollsicherungen meist nur relativ gering. Zwei Vollsicherungen benötigen bei der klassischen Datensicherung aber trotzdem mindestens die doppelte Speicherkapazität auf Band, verglichen mit den Originaldaten. Die Deduplikation erkennt die identischen Datenbestandteile. In einer Liste werden dazu eindeutige Segmente festgehalten, und beim erneuten Auftreten dieses Datenteils werden Zeitpunkt und Ort im Datenstrom notiert, so dass 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.

Allerdings handelt es sich damit nicht mehr um voneinander unabhängige Vollsicherungen, d h. dass der Verlust eines Versionsstandes zu unwiederbringlichem Datenverlust führt. Deduplikation ist somit ähnlich inkrementellen Sicherungen ein Verfahren, das einen Kompromiss zwischen Datensicherheit und Speicherbedarf macht.

Methoden[Bearbeiten]

Es gibt zwei Methoden, einen Datei-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. Weitere Vorgehensweisen, wie "Inband" und "Outband", konkurrieren darum, ob der Datenstrom "on the fly", also im laufenden Betrieb, analysiert wird oder erst, nachdem dieser am Zielort gespeichert worden ist. Im ersten Fall darf nur ein Datenstrom existieren, im zweiten können die Daten mittels mehrerer Datenströme parallel untersucht werden.

Chunking (Fingerprinting)[Bearbeiten]

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

Identifikation von Blöcken[Bearbeiten]

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, wie und aus welchen Bestandteilen die Datei beim Aufruf wieder zusammengesetzt wird. Daher ist auch die Methode der Identifikation von gemeinsamen Blöcken entscheidend.

Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]