Glossar Cloud-Finder Schweiz
Deduplizierung
Deduplizierung ist in der Informationstechnik ein Prozess, der redundante Daten identifiziert und durch einen Zeiger auf das erste Auftreten dieses Datums ersetzt. Gegenüber den klassischen Kompressionsverfahren wird eine wesentlich höhere Datenverdichtung erreicht. 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 ist auch gar keine Komprimierung möglich. Vorrangige Einsatzgebiet 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: Deduplication-Systeme 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 mitgesichert und verbrauchen Speicherplatz. Im Falle der Redundanz-Entfernung wird nur eine Instanz des Anhangs tatsächlich gespeichert, alle weiteren Instanzen verweisen lediglich auf die gespeicherte Kopie.
Eine wichtige Funktion der Deduplizierung ist das Fingerprinting (Hash). Hier werden Dateien in Segmente unterschiedlichster Grösse (Chunks) zerlegt. Auf Byte-Ebene wird dann analysiert, welche Segmente die höchste Wiederholrate bieten, um durch Referenzierung (Pointer) auf das Ursprungselement grösstmö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 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 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 heisst Chunking (engl. 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 oft Hash-Mechanismen zum Einsatz.
In der Praxis wird die Redundanz-Entfernung oft in Verbindung mit anderen Arten der Datenkomprimierung wie traditionellen Komprimierungsmethoden sowie die Delta-Differenzierung verwendet. Zusammen bilden diese drei Techniken eine sehr effektive Methode für die Optimierung der Speicherplatznutzung.