Deduplizierung ist eine Technik, mit der redundant vorhandene Daten identifiziert und durch einen Zeiger ersetzt werden. Er verweist auf die Stelle, an der die Information erstmalig aufgetaucht ist. Der Zeiger ist um ein Vielfaches kleiner als das eigentliche Datum. So spart man Speicherplatz – meist viel mehr als durch Datenkompression.
Die Technik ist seit längerem bekannt und gehört zumindest in vielen Großunternehmen zur Standardprozedur bei der Datensicherung. Dabei eignet sich Deduplizierung auch hervorragend für kleine und mittelgroße Firmen, weil auch sie unter der ständig steigenden Informationsflut leiden, die irgendwie bewältigt werden muss.
Mittlerweile gibt es einige Spielarten der Reduzierungsmethode und auch neue Anwendungsgebiete. Bezüglich der Methoden unterscheidet man zwischen dem synchronen Verfahren, wo die Daten beim Schreiben auf den Speicher dedupliziert werden und dem asynchronen Vorgehen, bei dem die Analyse zur Deduplizierung erst nach dem Speichern erfolgt.
Wann und wie wird dedupliziert?
Das synchrone Verfahren bringt sofort Vorteile, weil die Daten, die doppelt vorhanden sind, nur einmal abgelegt werden, die zweite und folgende Kopien erhalten nur mehr den Zeiger auf das erste Datum. Die Erkennungsarbeit wird meist im Hauptspeicher erledigt, was I/O-Verwaltung und Speicherplatz spart, aber Ressourcen bindet. Es besteht die Gefahr, dass Deduplizierung zum Flaschenhals wird. Trotzdem sind die Vorteile der „On-the-Fly“-Verarbeitung so groß, dass sie am häufigsten eingesetzt wird.
Wird asynchron dedupliziert, müssen alle Daten zunächst zwischengespeichert werden, bevor die Nachbearbeitung dann die Duplikate aussondert. Das kostet Speicherplatz und viel I/O-Verkehr, spart allerdings Transferzeit, etwa beim Backup, weil die Daten nur durchgeschoben werden.
Das zweite Kriterium, worin sich die Verfahren unterscheiden, ist die Feinheit, mit der aussortiert wird. Die File-Level-Deduplizierung untersucht ganze Files auf Redundanzen. Dieses Verfahren, das auch als „single instancing“ bezeichnet wird, überprüft die Inhalte der Dateien nicht auf Kopien. Das bedeutet, dass jede kleine Änderung in einem File zu einem erneuten Speichern der ganzen Datei führt. Das kostet Speicherplatz, reduziert aber den Verwaltungsaufwand.
Bei der Deduplizierung auf Block-Level wird der Inhalt des Files in Blöcke (mit variabler oder fester Größe) aufgeteilt und dann auf Redundanzen hin untersucht. Mehrfach Vorhandenes sowohl innerhalb der Datei als auch zwischen unterschiedlichen Dateien wird aussortiert. Dieses Verfahren verbraucht mehr Rechenleistung und führt zu längeren Indexlisten als die File-Level-Betrachtung. Zudem besteht die Gefahr der „Hash-Kollision“: der Deduplizierungs-Algorithmus, der die Blöcke untersucht, findet einen Block mit der gleichen Hash-Zahl wie ein schon gespeicherter und speichert die neuen Inhalte deshalb nicht.
Wer es ganz genau mag, verwendet die Deduplizierung auf Byte-Level, wo, der Name sagt es schon, Byte für Byte betrachtet und doppelt vorhandene Daten aussortiert werden. Leicht einzusehen, dass damit ein großer Aufwand verbunden ist, der zudem viel Zeit beansprucht. Dieses Verfahren eignet sich allenfalls bei einem asynchronen Deduplizierungsprozess.
Die gängigste und am meisten verwendete Form ist die synchrone Block-Level-Deduplizierung, die schnell und ohne ungebührlich großen Verwaltungsaufwand auskommt, aber dennoch ein hohes Einsparpotenzial birgt. Die Marktforscher von IDC beziffern die durchschnittlichen Deduplizierungsraten für File Deduplication auf einen Wert von 5:1; Block Deduplication kommt auf 20:1.
Was wird dedupliziert?
In den Anfangsjahren wurde Deduplizierung vor allem beim Backup auf Band oder später auch auf Disk eingesetzt. Im Laufe der Zeit setzte sich die Technik aber so erfolgreich durch, dass man begann, auch die Kapazität der teuren Primärspeicher mit Deduplizierung zu vergrößern indem man die Volumina reduzierte.
Die Verfahren dabei sind unterschiedlich: Deduplikation kann als Programm im Server angestoßen werden oder in einer Appliance ablaufen, die zwischen dem Host-Rechner und dem Speicher-Array platziert ist. Sie kann aber auch im Speicher selbst erfolgen. Laut IDC liegen die Reduzierungsraten für Primärspeicher zwischen Werten von 2:1 und 5:1 – eine Menge, wenn man die Kosten für Primärspeicher bedenkt.
Die Deduplizierung der Primärdaten schafft neben der Kapazitätsverringerung noch zusätzliche Vorteile. So beispielsweise bei der Datenreplikation und Datensicherung, wenn zur Wiederherstellung der Systeme die deduplizierten Daten verwendet werden: Man spart an Bandbreite und steigert die Leistung.