Steigende Datenmengen in den Griff bekommen Bewährt, aber oft unterschätzt: Deduplizierung gegen die Datenflut

Von Andreas Schmiedler*

Anbieter zum Thema

„Viele Unternehmen nutzen ihr Rechenzentrum, als hätten sie noch ein zweites im Kofferraum.“ Mit dieser Variante eines Jane-Fonda-Zitats ist der fragwürdige Umgang vieler Organisationen mit steigenden Datenmengen und dem entsprechenden Bedarf an Speicherkapazität gut umschrieben. Die Lösung kann in der Reduktion der anwachsenden Datenmassen liegen – doch wie gelingt das?

Gegen die Datenflut empfiehlt Quest Software eine Deduplizierung.
Gegen die Datenflut empfiehlt Quest Software eine Deduplizierung.
(Bild: gemeinfrei / Pixabay)

Seit vor einigen Jahren die Preise für Speicherkapazität rapide sanken, hat die Disziplin der IT-Abteilungen im Umgang mit den anfallenden Datenmengen signifikant nachgelassen. Hier ist dringend ein Umdenken erforderlich, denn durch den Einsatz neuer Technologien wie IoT hat sich das Wachstum der Datenmengen noch einmal beschleunigt.

Die Anschaffung des benötigten Speichers wie auch der Lösungen zu dessen Verwaltung frisst sehr schnell ein großes Loch in die Budgets für Betriebskosten (OPEX – Operating Expense) und Investitionsausgaben (CAPEX – Capital Expenditure). Außerdem wachsen sich die immer länger werdenden Sicherungszeiten zu einem Problem aus. Bei nach wie vor steigenden Servergrößen und immer längeren Geschäftszeiten finden Administratoren kaum mehr ausreichend große Sicherungsfenster.

Es gilt also, die Menge der zu sichernden Daten zu reduzieren. Datendeduplizierung ist darum wieder zu einem heißen Thema in der Unternehmens-IT geworden. Allerdings hat der Datengott nicht alle Deduplizierungsverfahren gleich erschaffen. Bei der Wahl des am besten geeigneten Verfahrens gilt es, Entscheidungen wie die zwischen Modus mit fester Blocklänge und Modus mit variabler Blocklänge oder zwischen „Inline“- und „Post-Process“-Verfahren zu treffen. Der Artikel bietet im Folgenden Antworten auf die wichtigsten Fragen, die bei der Auswahl eines Deduplizierungsverfahrens zu berücksichtigen sind.

Worum es nicht geht

Deduplizierung ist keine neue Technologie, und doch ist es wichtig, sich zunächst einmal die Unterschiede zu anderen Techniken der Datenreduktion in Erinnerung zu rufen. Da ist zuerst einmal die verlustfreie Datenkompression zu nennen. Bei dieser Methode werden statistische Redundanzen in einem Datensatz genutzt, um die Datenmenge zu reduzieren, ohne Informationen zu verlieren. Das ist wichtig, denn nur so lässt sich der ursprüngliche Datensatz auch wiederherstellen – im Unternehmenseinsatz eine unabdingbare Notwendigkeit. Bei Bilddateien ist das GIF-Format ein gutes Beispiel. Hierbei kommt Lempel-Ziv-Welch-Kompression (LZW) zum Einsatz, damit keine Information verlorengeht – ganz im Gegensatz zum JPG-Format. Der Reduktionsquotient ist dafür allerdings im Vergleich auch bescheiden.

Eine andere wichtige Technik zur Reduktion der Datenmenge ist das „Single Instancing“. Single Instancing geht schon in Richtung Deduplizierung, sorgt die Technik doch dafür, dass von einer Datei keine zwei identischen Versionen gespeichert werden. Statt eine Datei zweimal zu speichern, wird diese nur einmal gespeichert und für die zweite Instanz referenziert. Dieses Verfahren funktioniert allerdings nur, wenn die Dateien vollständig identisch sind. Beim kleinsten Unterschied werden zwei komplette Versionen gespeichert.

Worum es geht – Deduplizierung mit fixer Blocklänge

Eigentliche Datendeduplizierung beginnt, wenn ein Algorithmus Redundanzen entweder auf Block- oder auf Byte-Ebene erkennt, redundante Daten überspringt und alle Daten nur einmal speichert. Zum Erkennen redundanter Datenblöcke verwendet die Deduplizierung so genannte „Pointer“ oder „Zeiger“. Zeiger sind Verweise auf bestehende Datenblöcke, die wesentlich weniger Speicherplatz erfordern als die Datenblöcke selbst.

Bei der Deduplizierung auf Blockebene werden ganze Datenblöcke analysiert, was bei ausreichender Präzision nicht allzu zeitaufwändig und ressourcenintensiv ist. Die Deduplizierung auf Byte-Ebene ist noch präziser, allerdings geht das mit erheblichem Ressourcenbedarf und etwaigen Leistungseinbußen einher. Im Einzelfall gilt es, Ressourcenbedarf und Datenreduzierung gegeneinander abzuwägen. Denn schon mit einer Deduplizierung auf Blockebene lassen sich bis zu 93 Prozent der redundanten Daten eliminieren.

Bei der Deduplizierung auf Blockebene sind zudem grundsätzlich zwei Methoden zu unterscheiden: die Methode mit fester Blocklänge und die Methode mit variabler Blocklänge. Bei Ersterer wird eine Datenmenge in Blöcke einer festgelegten Größe aufgeteilt. Diese Blöcke werden dann mit Hilfe unterschiedlicher Algorithmen verglichen. Wenn die Algorithmen zwei Blöcke für identisch erachten, wird lediglich ein Block gespeichert und für jede weitere Instanz des Blocks lediglich eine Referenz angelegt. Das klingt nicht ohne Grund wie „Single Instancing“, handelt es sich doch um Single Instancing auf Sub-Datei-Ebene. Duplikate werden auf Blockebene statt auf Dateiebene erkannt und eliminiert.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Data-Storage und -Management

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Die Deduplizierung mit fester Blocklänge erzielt jedoch weitaus bessere Ergebnisse als Single Instancing, stößt aber schnell an Grenzen. Das Verfahren funktioniert gut bei Datentypen, die direkt im Dateisystem gespeichert werden, denn diese verfügen über wohldefinierte Strukturen auf Byte-Ebene, das heißt, sie bestehen aus Blöcken von 4k, 8k, 38k et cetera. Das trifft zum Beispiel auf virtuelle Maschinen zu. Dementsprechend kann die Deduplizierung mit fixer Blocklänge insbesondere bei der Sicherung virtueller Maschinen ihre Vorteile ausspielen. Allerdings funktioniert die Methode weit weniger gut, wenn es gilt, Daten zu speichern, die nicht über derart klar definierte Blockgrenzen verfügen oder deren Backup über verschiedene Arten Software läuft. Die Mehrheit der Daten, die in Unternehmen anfallen, sind alles andere als konsistent. Sie unterscheiden sich signifikant in ihrer Art, ihrer Blockgröße, ihrer Byte-Anordnung und ihrem Inhalt.

Worum es geht – Deduplizierung mit variabler Blocklänge

Um mit der Bandbreite der Datensorten umzugehen, die in einem Unternehmen anfallen, und eine signifikante Datenreduzierung zu erreichen, empfiehlt sich Deduplizierung mit variabler Blocklänge. Diese ermöglicht es, identische Blöcke in verschiedenen Dateiarten zu erkennen und zu deduplizieren. Blöcke unterschiedlicher Größe zu identifizieren, die sich in anderen Dateitypen wiederfinden lassen, stellt eine große Herausforderung dar.

Glücklicherweise können hier die Mathematiker helfen. Konkret kommt bei der Deduplizierung mit variabler Blocklänge der Prozess des Rabin-Fingerprintings innerhalb eines Schiebefensters im Datenstrom zur Anwendung. Das mag nicht unmittelbar evident sein. Darum sei eine kurze Erklärung erlaubt. Anfang der ’80-Jahre des vergangenen Jahrhunderts hat der israelische Informatiker Michael O. Rabin ein neues Verfahren zur Berechnung eines Fingerabdrucks im informationstheoretischen Sinne vorgeschlagen. Ein Fingerabdruck in diesem Sinne ist eine Hash-Funktion oder eine Abbildung, die eine große Eingabemenge nahezu eindeutig auf eine kleinere Zielmenge abbildet. Ein Schiebefenster ist in diesem Zusammenhang, vereinfacht gesagt, ein bestimmtes Zeitfenster im Datenstrom.

Im Falle der Datendeduplizierung läuft nun ein Rabin-Algorithmus über die Daten in einem solchen Schiebefenster und kreiert einen Block, wenn er eine einzigartige Gruppe an Bytes identifiziert. Diese Gruppe an Bytes lässt sich im Folgenden immer wieder im Datenstrom identifizieren, unabhängig von der Art der Daten, die gerade verarbeitet werden. Es spielt dabei keine Rolle, wo im Datenstrom der Block auftaucht. Sobald ein einzigartiger Block identifiziert wird, generiert der Rabin-Algorithmus einen entsprechenden „SHA 1 Hash“ und speichert ihn in der Deduplikationsbibliothek. Auf dieser Basis werden alle Daten mit diesem Hash entsprechend dedupliziert.

Der Prozess läuft dabei kontinuierlich ab. Wenn keine Übereinstimmungen zu bestehenden Hashs gefunden werden, erzeugt der Algorithmus neue Blöcke. Wenn er Blöcke oder Hashs wiedererkennt, erzeugt er Referenzen. Am Ende des Tages werden durch dieses Verfahren mehr Übereinstimmungen gefunden als bei der Deduplizierung mit fixer Blocklänge, womit sich die zu speichernde Datenmenge signifikant verringert.

Noch einen Schritt weiter – Deduplizierung mit variabler Blocklänge und Inhaltsanalyse

Die Leistungsfähigkeit der Deduplizierung mit variabler Blocklänge kann weiter gesteigert werden, wenn man Algorithmen anwendet, die in der Lage sind, die Inhalte der Blöcke variabler Größe weiter zu untersuchen. Dieser Prozess findet auf einer Metaebene statt. Ein Algorithmus identifiziert hierbei Muster, die innerhalb der Blöcke variabler Größe auftauchen, speichert jeweils nur eine Version dieser Muster und referenziert jedes weitere Vorkommen. Deduplizierung mit variabler Blocklänge und Inhaltsanalyse bildet aktuell das Ende der Deduplizierungsfahnenstange.

Vor- und Nachteile der Deduplizierungszielorte.
Vor- und Nachteile der Deduplizierungszielorte.
(Bild: Quest Software)

Wann und wo

Bei der Datendeduplizierung bestehen nicht nur signifikante Unterschiede zwischen den angewandten Methoden. Es gilt auch zu beachten, wann im Datenverarbeitungsprozess die Deduplizierung stattfindet und wo. Betrachten wir zunächst das Wo. Die Deduplizierung kann an einem von drei Standorten stattfinden: auf dem Client (Quelle), auf dem Sicherungsserver oder auf dem Speicherserver (Ziel). Welcher dieser Optionen die beste darstellt, hängt von den Eigenheiten der jeweiligen Umgebung ab.

Die nebenstehende Tabelle bietet eine gute Übersicht über die Vor- und Nachteile jeder dieser Methoden.

Als weiteren Punkt ist das Wann der Deduplizierung zu beachten. Hier gilt es zudem zwei Herangehensweisen zu unterscheiden. Anders als bei den meisten bisher erörterten Unterschieden liegt der Fall hier eindeutig: Nahezu unabhängig von der Umgebung und den Datenarten ist „Inline-Deduplizierung“ vorzuziehen. Der Deduplizierungsprozess kann während (Inline) oder nach (Post-Process) dem Speichern der Daten stattfinden. Bei einer Post-Process-Deduplizierung findet der Prozess, wie der Name bereits besagt, nach dem Speichern der Daten auf dem Datenträger statt. Die Post-Process-Deduplizierung erfüllt zwar ihren Zweck, indem sie den Speicherbedarf reduziert, sie ist aber zeitaufwändig, erfordert ausreichend Speicher für die Daten vor der Deduplizierung und muss speziell im Zeitplan festgelegt werden.

Bei der Inline-Deduplizierung erfolgt die Deduplizierung während des Speichervorgangs der Daten auf dem Datenträger. Diese Methode ist schnell, effizient und erfordert keinen temporären Speicher für die (Roh-)Daten. Aus diesen Gründen wird die Inline-Deduplizierung in der Regel bevorzugt.

Andreas Schmiedler, Software Account Manager, Data Protection bei Quest Software.
Andreas Schmiedler, Software Account Manager, Data Protection bei Quest Software.
(Bild: Quest Software)

Was bedeutet das alles?

Deduplizierung ist notwendig, um der steigenden Datenmengen Herr zu werden. Die beste Deduplizierungslösung für die eigene Umgebung und die verwendeten Datenarten zu finden, ist, so zeigen obige Erwägungen, alles andere als trivial. Es gilt darum, eine genaue Analyse der Bedürfnisse und möglichen Lösungen vorzunehmen. Gegebenenfalls sollte externer Rat eingeholt werden.

Wie auch immer das Ergebnis der Analyse aussieht, Deduplizierung mit fixer oder flexibler Blocklänge, auf dem Client oder auf dem Speicherserver, Inline oder Post-Process: Auf jeden Fall sollte eine Lösung gewählt werden, die ausreichend Flexibilität bietet, denn die Anforderungen an Rechnerinfrastruktur und Speichersysteme werden sich künftig noch schneller ändern als bisher.

*Der Autor: Andreas Schmiedler, Software Account Manager, Data Protection bei Quest Software

(ID:46495163)