Storage: Exponentielles Datenwachstum – was taugt Deduplizierung zur Reduktion der Datenmenge?

Kommentieren Drucken

Die Datenmengen heutiger Unternehmen wachsen exorbitant. Steigerungsraten von durchschnittlich über 60% pro Jahr sind schon lange keine Seltenheit mehr. Dies zieht unweigerlich eine entsprechende Wachstumsrate für die Datensicherungsmengen nach sich. Gefordert sind daher Technologien, die den vorzuhaltenden Datenbestand einerseits und die Datensicherungsmengen andererseits reduzieren helfen.

Dieser Artikel beschäftigt sich mit unterschiedlichen Techniken zur Reduktion von Datenmengen mit dem Schwerpunkt auf „Deduplizierung“, um die Chancen und Grenzen dieser Technologie aufzuzeigen.

1. Überblick: Techniken zur Reduktion von Datenmengen
Um die Größe der Plattenkapazität für einen vorzuhaltenden Datenbestand zu reduzieren, stehen eine Reihe von Techniken zur Verfügung. Einige davon wie etwa die Kompression sind schon viele Jahrzehnte alt. Andere wie die Deduplizierung existieren erst seit wenigen Jahren, da sie erst durch die Verfügbarkeit entsprechender Speicher- und Rechenleistung ermöglicht werden. Die folgenden Abschnitte liefern einen Überblick über die einzelnen Techniken, um sie zu definieren und gegeneinander abzugrenzen.

1.1 Kompression
Kompression bedeutet, dass die Struktur der Daten so gewählt wird, dass weniger Platz für ihre Speicherung benötigt wird. Gleiche Zeichen oder Zeichenfolgen werden beispielsweise durch einen einzelnen Repräsentanten dargestellt und ein Wiederholungsfaktor gibt schließlich nur noch die Häufigkeit an, in der das Zeichen bzw. die Zeichenfolge auftritt. Anstelle der schlichten Aneinanderreihung aller Einzelinformationen findet also eine Kodierung der Daten statt. Kompression führt damit zum Verzicht auf das Abspeichern von redundanten oder überflüssigen Daten.

Unterscheiden muss man hierbei zwischen verlustfreien und verlustbehafteten Verfahren. Verlustfreie Verfahren erlauben die vollständige Rekonstruktion der ursprünglichen Information. Verlustbehaftete Verfahren – wie beispielsweise die JPG- oder MPG-Kompression für Bilder bzw. Videos – hingegen arbeiten nach dem Prinzip, dass durch Zusammenfassen benachbarter Pixel- oder Bilddaten nur so viel Information erhalten bleibt, wie im Sinne der gewünschten Darstellungsqualität für die menschliche Wahrnehmung erforderlich ist. Hierdurch werden mit einem Faktor von typischerweise mindestens 10:1 deutlich höhere Reduktionsraten erzielt als bei verlustfreien Kompressionsverfahren, deren Einsparpotential bei typischerweise 2:1 liegt. Für den Einsatz auf Speichersystemen kommen selbstverständlich nur verlustfreie Kompressionsverfahren in Betracht. Allerdings beeinflussen bereits auf Datei-ebene eingesetzte Kompressionsverfahren die Möglichkeiten, durch zusätzliche Techniken auf den Speichersystemen die Datenmenge weiter zu reduzieren.

1.2 Snapshots
Bei einem Snapshot wird der aktuelle Datenstand eingefroren und alle anschließenden Veränderungen werden üblicherweise blockbasiert in einen neuen Speicherbereich geschrieben. Der Zusammenhang zwischen originärem Datenbestand und den Änderungen nach einem Snapshot wird durch eine Pointer-Tabelle so gesteuert, dass seit dem Snapshot unveränderte Daten weiterhin aus dem ursprünglichen Speicherbereich und geänderte Daten aus dem neuen Bereich gelesen werden. Daher sind mehrere aufeinander folgende Snapshots stets voneinander und insbesondere vom originären Datenbestand abhängig.

Um die Anzahl von Snapshots während der Lebenszeit eines Speichervolumens nicht unnötig ausufern zu lassen, besteht in der Regel die Möglichkeit, den originären Datenbestand mit einem oder mehreren darauf folgenden Snapshots zu einem neuen synthetischen Ausgangszustand zu verschränken.

Für die Durchführung von Datensicherungen sind Snapshots insofern nicht geeignet, da sie sich einerseits auf dem gleichen Speichermedium befinden, das z.B. gegenüber einem Hardware-Defekt abgesichert werden muss. Andererseits ist die ausschließliche Sicherung der in der Regel kleineren neuen Speicherbereiche nach einem Snapshot nicht auskömmlich, da stets die Abhängigkeit zu etwaigen vorherigen Snapshots und letztlich zum originären Datenbestand besteht.

Der Vorteil von Snapshots besteht darin, dass durch ein mehrfach auf einander folgendes Einfrieren des Datenbestands unterschiedliche Versionen der Daten vorgehalten werden können, ohne dass die Datenbestände jedes Mal in voller Größe abgespeichert werden müssen. Jeder einzelne Snapshot bildet dabei jedoch zusammen mit seinen Vorgängern und dem originären Datenbestand ein konsistentes Gesamtbild der Daten.

Müssen Daten nach einem logischen Fehler wiederhergestellt werden, so reicht es aus, auf den letzten als korrekt erkannten Snapshot zurückzuspringen. Man spricht hierbei auch von einem „Point in Time Recovery“. Damit werden Snapshots in der Regel dazu verwendet, auf Basis eines intakten Datenbestands sehr einfach und schnell Software- oder Bedienfehler zu korrigieren, etwa im Zusammenhang mit Patches und Updates, die sich im Nachhinein als fehlerhaft erweisen. Zur Rekonstruktion einzelner gelöschter oder korrumpierter Daten sind Snapshots eher weniger geeignet, da mit ihnen ein kompletter Systemzustand auf einen vergangenen Zeitpunkt zurück gesetzt wird, der üblicherweise noch ganz andere Veränderungen beinhaltet.

Bild 1 verdeutlicht den Zusammenhang von Snapshots, den originären Daten und einem Point in Time Recovery.

1.3 Thin Provisioning
Mit dem Begriff „Thin Provisioning“ ist eine Technologie gemeint, die einem Server Speicherkapazität aus einem Speichersystem zur Verfügung stellt, ohne die zugewiesene Kapazität vollständig auf dem Speichersystem zu allokieren und für diesen Server zu reservieren. Auf dem Speichersystem wird stets nur so viel Speicherplatz allokiert, wie der Server tatsächlich Daten auf der ihm zugewiesenen logischen Platteneinheit (LUN) ablegt.

Für Thin Provisioning kommt eine Virtualisierungsschicht zum Einsatz, die entweder in Software als Teil einer Speicherlösung oder in Form einer Virtualisierungs-Appliance realisiert sein kann. Aktuelle Software zur Server-Virtualisierung – wie beispielsweise VMware vSphere 4 – beinhalten ebenfalls Mechanismen zum Thin Provisioning: die den einzelnen virtuellen Maschinen zugewiesenen Festplatten-Images belegen stets nur so viel Speicherplatz, wie sie mit Daten gefüllt sind.

Bild 2 zeigt den logischen Aufbau des Thin Provisioning Ansatzes mittels einer dedizierten Virtualisierungs-Appliance: während ein Server seinen ihm zugewiesenen Festplattenspeicher vollständig einbindet (in der Virtualisierungsschicht innerhalb der Abbildung ganzfarbig dargestellt), werden auf SAN Speicher 1 nur die tatsächlich mit Inhalten belegten Speicherbereiche dieser LUNs allokiert (in der Virtualisierungsschicht innerhalb der Abbildung schraffiert dargestellt).

Grenzen des Thin Provisioning
Beim Einsatz von Thin Provisioning ist stets ein gutes Kapazitätsmanagement zu betreiben. Da das Hauptziel von Thin Provisioning darin liegt, den aktiven Servern mehr Speicherplatz anzubieten, als in der physischen Speicherumgebung tatsächlich zur Verfügung steht, muss der Belegungsgrad des Speichers genau überwacht werden. Insbesondere bei punktuellen Belegungsspitzen, in denen viele Server zusätzlichen Festplattenspeicher belegen (z.B. durch Software-Updates oder Service-Packs) muss dieser vom Speichersystem auch physisch zur Verfügung gestellt werden. Ist hier nicht ausreichend Kapazität vorhanden, droht das gesamte System zu kollabieren.

Das Prinzip des Thin Provisioning lebt davon, dass von einem Server nicht genutzter Festplattenspeicher im Speichersystem auch nicht allokiert werden muss. Dabei wird bei Unkenntnis des Dateisys-tems die Größe des belegten Speicherbereichs in der Regel durch den ersten und letzten belegten Block der Partition definiert. Am effizientesten ist daher das Thin Provisioning bei einem Filesystem, das vom ersten Block an kontinuierlich Daten in die Partition schreibt und Blöcke von gelöschten Dateien schnellstmöglich zum Schreiben neuer Daten wiederverwendet.

NTFS hingegen ist ein Filesystem, das für Thin-Provisioning-Mechanismen sehr ineffizient mit seinen Speicherblöcken umgeht. NTFS fordert auch nach dem Löschen von Dateien immer wieder neue, bisher nicht genutzte Speicherblöcke an, die sich an nahezu jeder Stelle des maximal zur Verfügung stehenden Speicherbereichs befinden können. Dies führt zu einem stetigen Wachstum des provisionierten Speicherbereichs, selbst wenn zwischendurch Daten auf dem Dateisystem gelöscht wurden. Auch eine Defragmentierung schafft bei NTFS keine Abhilfe. Die verteilten Blöcke einer Datei werden hierbei zwar zusammengeführt und damit werden die zusammenhängenden freien Bereiche größer. Jedoch ist es für NTFS charakteristisch, dass auch nach der Defragmentierung sowohl am Anfang als auch am Ende einer Partition Blöcke mit Daten belegt sind, wie aus Abbildung 3 hervorgeht.

Um zwischen dem ersten und letzten allokierten Block freie Speicherbereiche erkennen zu können, muss die für das Thin Provisioning zuständige Virtualisierungsschicht das verwendete Filesystem kennen. Wird ein Speichersystem rein Block-basiert betrieben, hat es keine Kenntnis vom eingesetzten Filesystem und kann daher etwaige Thin Provisioning Mechanismen nicht zur Kapazitätssteigerung nutzen. Dies gilt losgelöst vom gewählten Produkt, so dass das Leistungsmerkmal Thin Provisioning bei Block-basiertem Speicher im SAN nicht die gewünschten Effizienzgewinne bringt. Thin Provisioning ist besser für dateibasierte Systeme geeignet bzw. muss an dem Punkt eingesetzt werden, wo das Dateisystem interpretiert werden kann.

1.4 Migration, Verdrängung und Unterdrückung
Neben technischen Mitteln können auch organisatorische Maßnahmen ganz entscheidend zur Datenreduktion beitragen, gerade was das Volumen von Datensicherungen angeht. Bei der „Migration“ oder „Verdrängung“ werden Dokumente, die einen finalen Zustand erreicht haben, auf einen anderen Speicherbereich verschoben, der nicht mehr dem allgemeinen Sicherungszyklus unterliegt. Neben dem manuellen Verschieben kann dieser Vorgang auch automatisiert im Rahmen von Information Lifecycle Management (ILM) Richtlinien oder durch Produkte zum Hierarchischen Speicher Management (HSM) erfolgen.

Eine weitere Motivation für die Verschiebung von Daten auf einen Sekundärspeicher besteht, wenn nicht in der Datenreduktion, dann doch wenigstens in der Senkung der Speicherkosten. Hierzu wird der Sekundärspeicher in Form preiswerterer Plattenspeicher (SATA o.ä.) oder als Bandumgebung realisiert.

Unter „Unterdrückung“ versteht man eine Richtlinie, die besagt, dass gewissen Kriterien unterliegende Daten gar nicht gesichert werden, um das Backup-Volumen zu reduzieren. Dies können zum Beispiel Bild- oder Video-Daten sein. Es handelt sich hierbei also um eine rein organisatorische Vorgabe.

1.5 Single Instancing
Single Instancing – auch Single Instance Storage (SIS) – ist eine Technik, bei der ganze Objekte, wie beispielsweise Dateien oder E-Mails, nur einmal abgespeichert werden, auch wenn auf sie von verschiedenen Anwendungen aus zugegriffen wird. Der Nachteil dieses Ansatzes besteht – ähnlich wie bei der dateibasierten inkrementellen Datensicherungsmethode – darin, dass ein einziges geändertes Zeichen in einer Datei dazu führt, dass sie als neue Instanz abgespeichert werden muss. Ein höherer Effizienzgewinn ist zu erwarten, wenn die Instanziierung auf Block- oder Segmentbasis erfolgt, wie beispielsweise beim Block Level Incremental Backup (BLIB). Oft findet man Single Instancing bei File-Servern und NAS-Systemen, aber auch Microsoft Exchange, EMC Centera Archivsysteme oder Iron Mountains Connected Backup setzen auf dieses Verfahren zur Datenreduktion.

1.6 Deduplizierung
Die Deduplizierung kann als Single Instancing Verfahren auf Basis von Blöcken oder Segmenten betrachtet werden. Damit greift diese Technik auf Sub-Datei-Ebene, da die Instanziierung auf identischen Blöcken oder Segmenten von Dateien greift, die sich beispielsweise nur in wenigen Zeichen unterscheiden. Kapitel 2 betrachtet die Möglichkeiten und Grenzen der Deduplizierung im Detail.

1.7 Beispiel
Der Unterschied der einzelnen Techniken zur Reduktion einer Datenmenge wird durch folgendes Praxisbeispiel verdeutlicht:

Der Mitarbeiter eines IT-Beratungsunternehmens verschickt ein 1 MB großes, 100 Seiten langes Konzeptpapier an den Arbeitsverteiler seines Kunden per E-Mail. Dieser Verteiler umfasst insgesamt 5 Personen, die alle dieses Dokument auf ihrer lokalen Festplatte ablegen. Ein traditionelles Backup-Programm würde jede dieser 5 Dateien einzeln sichern, also ein Gesamtvolumen in Höhe von 5 MB ablegen. Durch Kompression kann das Konzeptpapier auf 50% seiner ursprünglichen Größe also 500 kByte reduziert werden. Für die Datensicherung bedeutet dies ein Volumen von insgesamt 2,5 MB.

Single Instancing Techniken würden nur eine der Dateien tatsächlich sichern, während die restlichen 4 nur durch einen Verweis repräsentiert werden. Bei Vernachlässigung des Speicherbedarfs für Meta-Informationen, den Pointer und sonstige Verwaltungsdaten beliefe sich der Speicheraufwand auf die 500 kByte der einen (komprimierten) Datei-Instanz.

Problematisch wird es, wenn nun jeder Mitarbeiter einen Kommentar von ca. 10 kByte Umfang in das 100-seitige Konzeptpapier einfügt. Damit unterscheidet sich jede Datei von jeweils allen anderen Instanzen und es wirkt nur noch die Kompression datenreduzierend.

Beim Einsatz von Deduplizierung werden die einzelnen Versionen des Konzeptpapiers Block- bzw. Segmentweise auf Redundanzen untersucht. Neben jeweils einem Repräsentanten für die Daten aus dem Konzeptpapier müssen nur noch die durch Kommentare eingefügten Änderungen der Mitarbeiter individuell gespeichert werden. Insgesamt mag sich das Gesamtvolumen der zu speichernden Daten daher bei 550 kByte bewegen. Bild 4 stellt die einzelnen Speichervolumen den jeweils eingesetzten Verfahren zur Datenreduzierung gegenüber.

2. Deduplizierung
2.1 Motivation

Deduplizierung basiert auf der Eliminierung von redundanten Informationen und damit der Reduktion der zu speichernden Daten. Gerade das damit ebenfalls reduzierte Backup-Volumen soll Kosten einsparen sowie Backup- und Restore-Zeiten verkürzen, um insbesondere den steigenden Anforderungen an die Wiederherstellungszeiten unternehmenskritischer Daten zu genügen.

Ein weiterer Grund für den Einsatz von Deduplizierung kann in der Reduktion von Datenmengen bestehen, die zwischen dezentralen Umgebungen ausgetauscht werden müssen. Ist in zentralen Umgebungen meist die Platz- und die damit verbundene Kostenreduzierung der treibende Faktor für den Einsatz von Deduplizierung, so kann in einer dezentralen Umgebung die Deduplizierung unter Umständen die Anbindung der Außenstellen überhaupt erst ermöglichen. Erfolgt nämlich die Deduplizierung bereits in der Außenstelle, werden weniger Daten durch das Netzwerk in die Zentrale geschickt. Und damit ist auch die Anbindung von Außenstellen über weite Entfernungen mit relativ geringen Übertragungsraten möglich. Gerade Datensicherungen können auf diesem Weg zentralisiert werden, so dass keine Insellösungen mehr erforderlich sind.

Oft ist es erforderlich, Sicherungsdaten an andere Standorte zu replizieren. Erfolgt diese Replikation zwischen den beteiligten Speichersystemen über eine vorhandene Datenleitung, eröffnet dies Möglichkeiten, die deutlich einfacher zu handhaben sind als die heute vielfach noch praktizierte Vorgehensweise, Bänder zu entnehmen und an andere Standorte zu verbringen. Nach Desaster-Fällen kann die Wiederaufnahme der Produktion an anderen Standorten deutlich einfacher und in kürzerer Zeit erfolgen, wenn die Datensicherungen bereits auf dem Speichersystem vor Ort vorliegen.

Nicht zuletzt erlaubt die Deduplizierung eine effizientere Ausnutzung des vorhandenen Speicherplatzes, so dass z.B. die Vorhaltezeit von Datensicherungen auf Platte deutlich verlängert werden kann. Damit steigt gleichzeitig die Wahrscheinlichkeit, dass das Wiederherstellen eines Systems von Platte und damit schneller als von Band erfolgen kann. Im Idealfall bleibt das Datenmedium Bandkassette nur noch für Archivierungszwecke erforderlich.

2.2 Grundlegende technische Herangehensweise
Deduplizierung ist ein Verfahren, das redundante Daten erkennen und eliminieren soll. Hierfür kommen Algorithmen zum Einsatz, die die folgenden Schritte verarbeiten:

  • Suche nach doppelten Daten-Objekten (Segmenten, Chunks, Blöcken, etc.)
  • Eindeutige Identifikation der Objekte in der Regel über einen Hash-Wert
  • Inventarisierung aller bisherigen Hash-Werte in einem zentralen Katalog
  • Vergleich der berechneten Hash-Werte eines Objekts mit den katalogisierten Werten
  • Abspeichern eines erstmalig aufgetretenen Objektes inklusive Eintrag des Hash-Wertes in den Katalog
  • Anlegen eines Zeigers auf ein bereits physisch abgespeichertes Objekt, wenn ein redundantes Objekt erkannt wurde

Die Verfahren unterscheiden sich insbesondere im Ort, an dem diese Schritte ausgeführt werden.

2.3 Ort der Deduplizierung
Deduplizierungslösungen unterscheiden sich nicht nur in den Algorithmen, sondern auch an der Stelle, an der die Deduplizierung durchgeführt wird. Einerseits kann dies der Ziel- bzw. Primärspeicher sein, andererseits kann die Deduplizierung an der Quelle stattfinden.

Ziel-Deduplizierung
Um redundante Objekte innerhalb einer gegebenen Datenmenge erfolgreich zu erkennen, muss diese in geeigneter Form strukturiert werden. Die einfachste Methode, die bereits eine erhebliche Verbesserung der Deduplizierungsrate im Vergleich zum Single Instancing (vgl. Abschnitt 1.5) bedeutet, ist die Aufspaltung der Daten in Blöcke fixer Länge. Damit werden auch unveränderte Teile innerhalb einer Datei erkannt und nicht erneut abgespeichert. Diese Vorgehensweise birgt allerdings das Risiko, dass bereits kleine Verschiebungen im Bitmuster dazu führen können, dass ab einer bestimmten Stelle überhaupt keine Redundanzen mehr festgestellt werden können, obwohl tatsächlich ein Großteil der Daten identisch ist. Liegen die Daten – wie im Fall von Datensicherungen – als gebündelte Mengen aus unterschiedlichen Quellen vor, führt diese einfache Block-basierte Deduplizierung daher zu sehr schlechten Einsparergebnissen.

Eine erhebliche Verbesserung des Einsparpotentials durch Deduplizierung kann durch die Aufteilung der Daten in Segmente variabler Länge erzielt werden, typischerweise in Segmente zwischen 4 und 24 KByte. Durch die flexible Anpassung an den Datenstrom wird die Erkennungsrate identischer Bitmuster deutlich erhöht und es können bessere Ergebnisse erzielt werden. Allerdings ist diese Vorgehensweise natürlich wesentlich aufwendiger und erfordert neben hoher Rechenleistung auch entsprechend ausgefeilte Algorithmen.

Die Bilder 5 und 6 zeigen die Auswirkung der Deduplizierung auf Blockebene.

Die Art und Weise, in der der Deduplizierungsalgorithmus die Daten untersucht, ist nicht unerheblich für die Ressourcen-Anforderung und den Effizienzgrad. Die Granularität hat direkte Auswirkung auf den erzielbaren Datenreduktionsfaktor. Blöcke flexibler Länge sind in jedem Fall dem einfacheren Konzept fixer Blockgrößen vorzuziehen.

Wird eine blockbasierte Deduplizierung auf dem Primärspeichersystem durch die Plattensubsystem-Software realisiert, führt dies zu enormen Leistungseinbußen, was den maximal möglichen Durchsatz des Speichersystems angeht. Erschwerend kommt hinzu, dass bei der Sicherung derartig deduplizierter Daten diese zunächst wieder entdedupliziert werden müssen. Wenn es um Deduplizierung auf Primärspeichern geht, sind Single-Instancing-Lösungen im NAS-Umfeld deutlich Ressourcen-schonender.

Ein Vorteil der Deduplizierung am Ziel liegt in der damit automatisch verbundenen Zentralisierung der Management-Komponenten. Da hier alle Fäden zusammenlaufen, ist diese Lösung als „global“ zu bezeichnen. Das Ziel ist außerdem meistens geeignet leistungsfähig und hat genügend Ressourcen, um die Last der Deduplizierung zu verarbeiten. Für Deduplizierung optimierte Plattensysteme setzen auf großen und leistungsfähigen Zwischenspeicher, ggf. nicht-flüchtigen Speicher (NVRAM) zur Erhöhung der Datensicherheit, sehr leistungsfähige Prozessoren und ausgefeilt optimierte Deduplizierungsalgorithmen.

Ein weiterer Vorteil der Ziel-Deduplizierung kann darin bestehen, dass mit der Konsolidierung von Speicherblöcken zahlreicher Quell-Systeme auf einen abgespeicherten Repräsentanten die Wahrscheinlichkeit eines Zugriffs auf diesen Speicherblock steigt. Wird dieser Block von unterschiedlichen Systemen innerhalb kurzer Zeit angefordert, befindet er sich ggf. noch im Cache des Speichersystems und muss damit gar nicht mehr von Platte gelesen werden, wie Bild 7 zeigt. Daraus kann ein gewisser Geschwindigkeitsvorteil resultieren, der jedoch in der Praxis schwer zu quantifizieren ist.

Oft können sich solche Plattensysteme auch wie virtuelle Tape-Libraries (VTL) verhalten, stellen sich also der Datensicherungs-Software gegenüber als echte Bandbibliothek dar, auch wenn sie nur aus Plattenspeicher bestehen. Klassische VTLs, die nur als Zwischenspeicher vor dem anschließenden Schreiben auf physische Bänder dienen, setzen jedoch in der Regel ausgefeilte Hardware-unterstützte Kompression ein (die mit der Kompressionsmethode der Bandlaufwerke kompatibel sein sollte) anstatt Deduplizierungstechniken, wie sie in diesem Artikel dargestellt werden. Zu den Produkten der Ziel-Deduplizierung gehören die Fujitsu-Speichersysteme der Eternus CS Serie, die NetApp FAS- und V-Series Speichersysteme sowie die Quantum-VTLs der DXi-Serie.

„Content Aware“ Deduplizierung
Während sich die oben beschriebenen Techniken zur Deduplizierung auf dem Zielspeicher einer Datensicherung bzw. dem Primärspeichersystem befinden, findet die sog. „Content Aware“ Deduplizierung auf dem Client System statt. Diese kann entweder wiederum im Zusammenhang mit Datensicherungslösungen stehen, ist aber auch im Umfeld der Virtualisierung zu finden, wenn ein Hypervisor zahlreiche virtuelle Maschinen betreibt und damit Zugriff auf die Inhalte dieser Systeme hat. Die Idee hinter der Content Aware Deduplizierung ist, dass durch die Kenntnis der Inhalte der Datenströme die Erkennungsrate deutlich erhöht werden kann und damit die Datenreduktion optimiert wird. Bei diesem Ansatz muss im Prinzip eine Tabelle aller Datentypen und –formate vorgehalten und regelmäßig gepflegt werden. Exotische Datentypen werden unter Umständen nicht erkannt und müssen daher klassisch bearbeitet werden.

Die Content Awareness erfordert einen Agenten auf dem Client System, der den Einblick in die Datenstruktur ermöglicht. Dieser ist im Umfeld von Datensicherungslösungen oder der Virtualisierung aber ohnehin vorhanden, so dass sich dieser Deduplizierungsansatz in diesen Bereichen besonders anbietet.

Quell-Deduplizierung
Bei der allgemeinen Quell-Deduplizierung wird der Hash-Wert am Client erzeugt und mit dem Deduplizierungskatalog verglichen. Daraus resultiert der Vorteil, dass redundante Daten gar nicht erst über das Netzwerk zum Empfänger verschickt werden müssen. Nachteilig ist an dieser Variante, dass der Katalog über das Netzwerk verschickt werden muss und aufwendiger zu verwalten ist. Andererseits wird die Quell-Deduplizierung erst dann besonders effektiv, wenn ein globaler Abgleich der Redundanzinformationen über alle deduplizierten Clients erfolgt. Daher ist dieser Ansatz im Umfeld virtualisierter Umgebungen besonders interessant.

Die Rechenlast, die der Deduplizierungsalgorithmus verursacht, muss bei der Quell-Deduplizierung der Client übernehmen, der bereits durch seine originären Aufgaben beansprucht wird. Andererseits mag sich durch die Reduzierung der zu übertragenden Datenmenge und der damit verbundenen Verkürzung des Übertragungsfensters ein Lastausgleich einstellen.

Die Quell-Deduplizierung bietet den Vorteil, dass sie keine Investition in besondere Storage-Hardware oder zusätzliche Hardware-Plattformen für Backup-to-Disk (B2D) oder Deduplizierung erfordert. Zu den Produkten der Quell-Deduplizierung gehören EMC Avamar und Symantec NetBackup.

Client-nahe Deduplizierung
Eine weitere Variante ist die „Client-nahe“ Deduplizierung auf einem Backup-Server. Hier trägt der im Allgemeinen gut ausgestattete Server die Last. Bei einigen Lösungen unterstützen die Clients bei der Berechnung des Hash-Werts. Die Daten selber werden anschließend auf klassischen Speichermedien abgelegt.

2.4 Zeitpunkt der Deduplizierung
Der Zeitpunkt, an dem die Deduplizierung durchgeführt wird, kann entweder „sofort“, d.h. „inline“, oder „später“, also „offline“, liegen. Findet die Deduplizierung offline statt, werden die Daten erst auf Redundanzen untersucht, nachdem sie auf das Speichermedium geschrieben wurden. Man spricht daher hierbei auch von einem „Postprocessing“ Verfahren. Was den Speicherbedarf angeht, ist daher zunächst die volle Speichergröße erforderlich zzgl. eines vom Algorithmus abhängigen Zwischenspeichers, der die deduplizierten Inhalte trägt. Das Offline-Verfahren kann im Hintergrund stattfinden, ohne dass es im Idealfall den Durchsatz des Schreibvorgangs beeinträchtigt. Die verfügbaren CPU-Ressourcen sind entscheidend für die Dauer des Deduplizierungsvorgangs. Sollte die für die nachträgliche Deduplizierung benötigte Zeit bis zum nächsten anstehenden Schreibvorgang (z.B. ein nächstes Backup) allerdings nicht ausreichen, wird es kritisch. Auch eine eventuell erforderliche Replikation der Daten muss bis zum Ende des Deduplizierungsvorgangs warten, was im Rahmen der Vorgaben für z.B. das Vorliegen zweier identischer Backups an unterschiedlichen Standorten berücksichtigt werden muss.

Erfolgt die Deduplizierung inline, werden die Daten umgehend auf Redundanzen hin untersucht und gleich dedupliziert auf das Medium geschrieben. Die Platzreduzierung wird also ohne zeitliche Verzögerung erreicht. Da das Identifizieren, Vergleichen und Referenzieren identischer Blöcke oder Segmente während des Schreibvorgangs erfolgt, sind dementsprechende Hardware-Ressourcen erforderlich. Eine etwaige Replikation der Daten kann jedoch ebenfalls „inline“ erfolgen, da die geschriebenen Daten bereits dedupliziert sind.

Ursprünglich wurden primär Offline-Deduplizierungslösungen eingesetzt. Mit der Verfügbarkeit immer schnellerer CPUs und immer ausgefeiltere Algorithmen rückt jedoch zunehmend die Inline-Deduplizierung in den Fokus. Bei Produktauswahl und -vergleich müssen die technischen Eigenschaften jedoch sehr genau überprüft werden: einige Hersteller legen der maximalen Durchsatzrate ihrer Inline-Deduplizierungslösung bereits einen Reduktionsfaktor zugrunde. D.h. die Schreibgeschwindigkeit wird beispielsweise um das 10-fache erhöht angegeben, da von einer Deduplizierungsrate von 1:10 ausgegangen wird, also nur jeder zehnte Block tatsächlich geschrieben werden muss. Wie hoch die tatsächlichen Deduplizierungsmöglichkeiten sind, hängt jedoch sehr stark vom zugrunde liegenden Datentyp ab.

2.5 Risiken
Die Identifikation identischer Datenblöcke oder –segmente erfolgt auf Basis einer Hash-Funktion. Das bedeutet, über eine mathematische Berechnungsvorschrift wird aus dem Inhalt einer Dateneinheit ein Wert berechnet, der für diese Daten charakteristisch ist. Der Hash-Wert wird auch als Fingerabdruck bezeichnet, da er eine nahezu eindeutige Kennzeichnung einer größeren Datenmenge darstellt, so wie ein Fingerabdruck einen Menschen eindeutig identifiziert. Es ist natürlich extrem wichtig, dass niemals aus unterschiedlichen Blöcken oder Segmenten derselbe Hash-Wert berechnet wird. Käme es zu einer solchen „Hash-Kollision“, wäre das Ergebnis eine nicht akzeptable Datenverfälschung bzw. Datenverlust.

Rein statistisch betrachtet, besteht immer ein Restrisiko, dass es zu Hash-Kollisionen kommt. Eine gute Hash-Funktion zeichnet sich daher dadurch aus, dass sie für die Eingaben, für die sie entworfen wurde, Kollisionen vermeidet. So ist zum Beispiel für die Funktion SHA-512 (i.e. der Secure Hash Algorithmus 2 mit einer Hash-Länge von 512 Bit) die Wahrscheinlichkeit für eine Kollision so gering, dass sie unter der Wahrscheinlichkeit für Datenverlust auf einem RAID5-Subsystem oder für Datenverlust aus sonstigen Gründen liegt. Da diese Risiken im Tagebetrieb ebenfalls akzeptiert werden, ist das Risiko einer Hash-Kollision in diesem Fall ebenso tragbar.

Um jedoch auch ein solches Restrisiko von Hash-Kollisionen noch weiter zu reduzieren, arbeiten heutige Deduplizierungssysteme mit einer zweiten, vom primären Algorithmus unabhängigen Berechnungsvorschrift. Dies kann im Extremfall dazu führen, dass bei gleichem Hash-Wert die echten Inhalte der betroffenen Segmente sicherheitshalber noch einmal verglichen werden.

2.6 Erfolgsraten
Der Erfolg einer Deduplizierungsstrategie hängt vom Deduplizierungsfaktor ab. Der Deduplizierungsfaktor definiert das Verhältnis der Datenmenge vor und nach der Deduplizierung. Um diesen Wert etwas greifbarer zu machen, wird er im Folgenden mit der prozentualen Ersparnis in Zusammenhang gebracht. Ein Deduplizierungsfaktor von 1:50 bedeutet beispielsweise eine Ersparnis von 98%. Eine Datenmenge von 1 TB würde demnach nur noch 20 GB belegen. Gängige Annahmen von einem Faktor 1:10 entsprechen immer noch 90% Ersparnis. 1 TB Ursprungsdaten belegen in diesem Szenario noch 200 GB Plattenspeicher. Wie Bild 8 zeigt, bedeuten Faktoren jenseits 1:20 keinen signifikanten Ersparnisgewinn mehr, da es sich um eine reziproke lineare Funktion handelt, wie auch Bild 9 zeigt.

Bei der initialen Deduplizierung sind in der Regel Faktoren von 1:2 und 1:3 realistisch. Im Rahmen von Datensicherungen, bei denen in regelmäßigen Abständen neue Vollsicherungen gefahren werden, oder bei der Speicherung zahlreicher virtueller Maschinen, die auf dem gleichen Betriebssystemabbild basieren, erhöht sich dieser Faktor mit jedem neuen zu speichernden Objekt. Zur Abspeicherung von n Vollsicherungen oder n virtuellen Maschinen wird demnach nicht n-mal der ursprüngliche Speicherplatz benötigt, sondern nur die Kapazität, die den Unterschied gegenüber den zuvor geschriebenen Objekten ausmacht.

Allerdings ist hierbei entscheidend, ob nicht schon an anderer Stelle für die Vermeidung redundanter Informationen gesorgt wurde. Werden Datensicherungen beispielsweise anstelle von Vollsicherungen durch Block Level Incremental Backups (BLIB) durchgeführt, werden überhaupt nur die gegenüber vorherigen Sicherungen veränderten Blöcke geschrieben. Die anschließenden Deduplizierungserfolge dürften demnach bei Null liegen. Im Umfeld der Virtualisierung besteht die Möglichkeit, eine hohe Anzahl virtueller Maschinen, die auf dem gleichen Betriebssystemabbild basieren sollen, von einer gemeinsamen so gennanten „Parent Differencing Disk“ abzuleiten. Die individuellen Änderungen auf den VMs werden dann in so genannten „Child Differencing Disks“ geschrieben. Da auch hier die redundante Information gar nicht erst geschrieben, sondern gemeinsam genutzt wird, sind keine signifikanten Deduplizierungserfolge zu erwarten. Abbildung 8 illustriert dieses Konzept.

Da also die Ersparnisrate durch Deduplizierung von dem Vorhandensein ähnlicher Daten auf dem betroffenen Speichersys-
tem abhängt, führt eine hohe Verweildauer von Datensicherung im Allgemeinen zu größeren Deduplizierungserfolgen. Ein weiterer Faktor, der die Effizienzgewinne beeinflusst, ist die Zentralisierung von Daten, wenn die Deduplizierung am Zielsystem erfolgt. Werden z.B. die Daten zahlreicher Außenstellen auf das gleiche Zielsystem gesichert, kann hier die redundante Information zentral gefiltert werden.

Typische Deduplizierungsraten liegen bei einem Faktor von 1:10. Liegen die Werte unter einem Faktor von 1:5, rechtfertigen die demzufolge relativ wenig redundanten Daten den mit der Deduplizierung verbundenen technischen und damit auch monetären Aufwand in der Regel nicht.

Die folgenden Aspekte können zu einer Verbesserung der Deduplizierungsrate führen (auch wenn der jeweilige Aspekt ggf. aus anderen Gesichtspunkten heraus nicht ratsam sein mag und daher zu prüfen bleibt, ob es nicht insgesamt bessere Strategien gibt):

  • Sukzessive Sicherungsvorgänge von ähnlichen Systemumgebungen
  • Vollsicherungen gegenüber inkrementellen Sicherungen
  • Erhöhung der Verweildauer von gespeicherten Daten
  • Bestimmte Datentypen:
    • Geschäftsdaten, Texte und Tabellen lassen sich deutlich effektiver deduplizieren als bereits komprimierte Bild-, Video- oder Musikdaten.
    • Rohdaten aus medizinischen Scannern, volumetrische Simulationsergebnisse, eine Abfolge von Rohaufnahmen eines Satelliten etc. weisen eine hohe Redundanz auf, die zu guten Deduplizierungsergebnissen führen kann.
    • Virtuelle Maschinen, die auf dem gleichen Betriebssystemabbild und gegebenenfalls denselben Basisapplikationen basieren, ermöglichen hohe Deduplizierungsraten.
    • Nachrichten auf Mail-Servern oder Dateien auf File-Servern bzw. NAS-Systemen, die von zahlreichen unterschiedlichen Quellen stammen
    • Die Kenntnis des Datenformates ermöglicht eine „Content Aware“ Deduplizierung

Der größte „Feind“ der Deduplizierung ist die Verschlüsselung, da es eines der vorrangigen Ziele eines Chiffrieralgorithmus ist, ähnliche Datenmuster zu eliminieren, um die Rekonstruierbarkeit der Daten zu verhindern. Single-Instancing Techniken sind bei einem deterministischen Verschlüsselungsergebnis in der Lage, identische verschlüsselte Daten auf einen Repräsentanten zu reduzieren. Im Fall von Datensicherungen jedoch sollten Backups und Archive erst nach dem Deduplizierungsvorgang verschlüsselt werden, wie es einige Soft- und Hardware-Anbieter ermöglichen.

2.7 Globale Deduplizierung
In der Praxis findet man häufig unterschiedliche Speichersysteme für die verschiedenen Datenbereiche, die von Anwendungen, Datenbanken etc. genutzt werden. Kommen in diesem Fall Ziel-basierte Deduplizierungsmechanismen zum Einsatz, führt dies zu sog. Deduplizierungsinseln, d.h. die einzelnen Systeme deduplizieren jeweils ihre eigenen Daten ohne die Daten der Nachbarsysteme zu kennen und etwaige übergreifende Synergieeffekte nutzen zu können. Auch bei der Quell-basierten Deduplizierung kann es zu diesen Inseln kommen, wenn die Inventarisierung der identifizierten Redundanzinformation nicht an einer zentralen Stelle zusammengeführt wird. Backup-Umgebungen, die zur Verarbeitung der Datensicherungsströme aus mehreren unabhängigen Backup-Servern bestehen, sind in diesem Zusammenhang ein häufig anzutreffendes Beispiel.

Da Deduplizierungsinseln stets mit einem Effizienzverlust einhergehen, ist es wichtig, die Informationen dieser Inseln zusammenfassen zu können. Systeme, die hierzu in der Lage sind, werden als „globale Deduplizierungslösungen“ bezeichnet.

Globale Deduplizierung ist wichtig, insbesondere bei mehreren autonomen Speichersystemen oder zahlreichen unabhängigen Umgebungen, wie beispielsweise Außenstellen oder Endgeräten. Mit dem Anwachsen der Daten in solchen Umgebungen oder der Hinzunahme weiterer Außenstellen, lässt sich das Einsparpotential beim Einsatz globaler Deduplizierung deutlich erhöhen. Bei der Auswahl entsprechender Systeme ist daher zu beachten, dass sie eine globale Deduplizierung unterstützen.

Ein Lösungsansatz für globale Deduplizierung kann in einer Backup-Software bestehen, die in der Lage ist, einen gemeinsamen Deduplizierungskatalog über mehrere Backup-Server und –Clients zu verwalten. Ein weiteres Szenario kann ein Speichersystem realisieren, das die Daten mehrerer kleinerer Backup-Speichersysteme zentral repliziert und dabei durch Deduplizierung Redundanzen herausfiltert.

3. Fazit
Das exponentielle Wachstum unternehmenskritischer Daten verlangt nach Lösungen, die das Volumen dieser Daten wirtschaftlich vorzuhalten und abzusichern helfen. Deduplizierung ist ein mögliches Verfahren, um unnötige, da redundante Informationen aus einem Datenstrom herauszufiltern und dadurch den erforderlichen Speicherplatz zu reduzieren. Das Verfahren ist in unterschiedlicher Ausprägung und mit verschiedenen Produkten am Markt verfügbar, wobei die Anwendungsschwerpunkte in den Bereichen Datensicherung und Virtualisierung liegen, da hier die größten Effizienzgewinne zu erwarten sind. Bei der Auswahl einer Deduplizierungslösung sollte unbedingt der Designaspekt der Realisierung beachtet werden und die richtige Deduplizierungsstrategie in den Entscheidungsprozess einbezogen werden. So ist es für die Deduplizierungsrate von entscheidender Bedeutung, an welcher Stelle die Daten auf Redundanzen hin untersucht werden (Quelle oder Ziel), in welchem Moment die Deduplizierung stattfindet (inline oder offline) und welcher Datentyp überhaupt betrachtet wird (Single Instancing oder Block- bzw. Segment-Betrachtung).

Deduplizierung wird immer mehr zu einem Standardleistungsmerkmal moderner Plattensysteme, wie es Thin Provisioning und Snapshots bereits sind. Allerdings sollten für die Produktauswahl mindestens die folgenden Aspekte am besten im Rahmen eines Proof of Concepts unterproduktionsnahen Bedingungen untersucht werden:

  • Werden weder die Integrität noch die Verfügbarkeit der Daten durch die Deduplizierungslösung beeinträchtigt?
  • Erfolgt der Deduplizierungsvorgang transparent im Hintergrund, um sich in bestehende Prozesse und Umgebungen nahtlos zu integrieren?
  • Wie groß ist der Einfluss der Deduplizierung auf die Gesamtleistung der Speicherumgebung?
  • Welcher Deduplizierungserfolg ist mit den zugrunde liegenden Daten in der Praxis tatsächlich zu erreichen?

Gute Deduplizierungsraten sollten bei einem Faktor von mindestens 10:1 liegen. Unterhalb von 5:1 ist die Deduplizierung in der Regel nicht wirtschaftlich einsetzbar. Herstellerversprechen von „einigen Hundert:1“ sollten als unseriöse Marketing-Blase ignoriert werden.

Die Untersuchung der Datenstruktur und der Datensicherungsverfahren helfen nicht nur bei der Bewertung der Deduplizierungsraten, sondern auch bei der Beurteilung der Aspekte Verfügbarkeit, Performance und Management der Deduplizierungslösung. Die erreichbare Speicherplatzersparnis und damit verbundene Kostenreduktion muss stets in einem vernünftigen Verhältnis zur gestiegenen Komplexität, den Investkosten und dem Betriebsaufwand stehen, um zu einer insgesamt erfolgreichen Deduplizierungsstrategie zu führen.

zugeordnete Kategorien: Archiv, Klassiker
zugeordnete Tags:

Sie fanden diesen Beitrag interessant? Sie können



Anmerkungen, Fragen, Kommentare, Lob und Kritik:

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

.