Der neue Stern am Speicher-Himmel
Artikel erschienen in Swiss IT Magazine 2008/08
Der IT geht langsam der Speicher aus. Die schiere Menge an Daten, die gespeichert wird (oder werden muss), wird täglich grösser, und die beliebte Massnahme, knappen Speicherplatz durch den schnellen Zukauf von weiteren Ressourcen zu kompensieren, kann auch angesichts sinkender Speicherpreise keine dauerhafte Lösung oder gar langfristige Strategie sein. Einer letztjährigen Studie des Marktforschungsunternehmens IDC zufolge («The Expanding Universe: A Forecast of Worldwide Information Growth Through 2010») werden im Jahr 2010 weltweit fast tausend Exabyte Daten gespeichert sein. Das entspricht 1000 Milliarden Gigabyte. Gleichzeitig soll dannzumal der verfügbare Speicherplatz bloss rund 600 Milliarden Gigabyte umfassen. Damit wären also fast 400 Milliarden Gigabyte Speicher zu wenig vorhanden.
Bereits im Jahr 2007 hat derselben Untersuchung gemäss die Menge der erzeugten Daten erstmals in der Geschichte der IT die verfügbaren Speicherkapazitäten überschritten. Problematisch ist diese Entwicklung insbesondere für die zunehmende Menge von Daten, die langfristig gespeichert werden muss, sei es aus Geschäftsgründen oder um den vielfältigen Compliance-Anforderungen zu genügen.
Dabei ist die Daten-Explosion durchaus hausgemacht. Ein grosser Teil der Dokumente und Informationen in den PCs von Unternehmen liegen heute in zigfacher Ausführung vor, lagern auf Festplatten und File-Servern, in Mails und Mail-Attachements, Datenbanken etc. und wird noch dazu regelmässig in Backups geschrieben. Viele dieser Dokumente und Informationen unterscheiden sich allerdings wenn überhaupt, so bloss rudimentär. Kurz: Die Gesamtmenge von Daten wächst exponentiell, die Menge an tatsächlich neuen Daten im gleichen Zeitraum ist dagegen vergleichsweise gering.
Hier kommt die vergleichsweise neue Technik der Deduplizierung von Daten ins Spiel, die seit einiger Zeit von Herstellern von Backup- und Speichersystemen in ihre Geräte eingebaut wird. Die Idee dahinter ist simpel und absolut einleuchtend: Wird jedes Dokument nur noch einmal statt in zigfacher Ausführung gespeichert und auf die anderen Vorkommen mit einem Pointer verwiesen, sinkt die Menge der zu speichernden Daten offensichtlich beträchtlich.
Kann das Dokument nun noch weiter auf kleinere Einheiten (sogenannte Chunks) reduziert werden, steigt auch die Wahrscheinlichkeit, dass innerhalb verschiedener Dokumente (z.B. nur leicht geänderte Versionen) identische Blöcke identifiziert und mittels Pointern referenziert werden können, was zu einer massiven Reduktion der Datenmenge führen kann.
Der Vorteil gegenüber herkömmlichen Backup-Techniken liegt auf der Hand: Auch bei einem vergleichsweise platzsparenden inkrementellen Backup, bei dem nur geänderte Daten berücksichtigt werden, wird bei einem minimal veränderten Dokument die gesamte Datei gesichert. Bei der Deduplizierung werden dagegen bloss die geänderten Bereiche innerhalb der Datei gesichert.
Ähnlich bei identischen Versionen derselben Datei, die beispielsweise bei fünf Mitarbeitern auf der Festplatte liegen. Beim traditionellen Backup werden alle fünf Instanzen der Datei komplett gesichert, bei der Deduplizierung dagegen nur eine, auf die dann vier Mal verwiesen wird. Die Merkmale und Verweise – also quasi der Bauplan für die Wiederherstellung der Daten – werden dabei in einer eigenen Datenbank gespeichert.
Einen grossen Einfluss auf die erzielbare Datenreduktion hat zunächst das Verfahren der Chunk-Erstellung, also die Methode, mit der die Dateien zerlegt werden. Hier werden grob die folgenden Methoden unterschieden:
- Blockbasiert: Ergibt Datenblöcke gleicher Länge, unabhängig von Format und anderen Faktoren
- Objektbasiert: das komplette Objekt gilt als Chunk (z.B. Office-Datei)
- Formatbasiert: zerlegt ein Objekt aufgrund seines Formats in seine Bestandteile (z.B. Archivdatei)
- Fingerprinting: identifiziert identische Datenmuster in einem Objekt (z.B. Multimedia-Streams)
Es ist offensichtlich, dass die Methoden sich für unterschiedliche Datenbestände unterschiedlich gut eignen. So werden etwa bei der objektbasierten Zerlegung kleine Unterschiede zwischen Dateien nicht berücksichtigt, und bei der blockbasierten Methode hängt die mögliche Reduktion stark von der festgelegten Grösse der Blöcke ab. Und immer muss dabei eine sinnvolle Relation zum nötigen Rechenaufwand gefunden werden.
Sind die Daten erst einmal in Chunks zerlegt, wird für jeden einzelnen Chunk eine Prüfsumme (Hash) erstellt. Dabei kommen typischerweise kryptographische Algorithmen wie MD5 (128 Bit) oder SHA-1 (160 Bit) zum Einsatz. Daneben gibt es auch Hersteller wie Diligent oder Sepaton, die proprietäre Verfahren verwenden. Ziel dieser Hash-Erzeugung ist es, jeden beliebigen Chunk über seinen Hash eindeutig identifizieren zu können.
Schliesslich werden neue Hashs mit den bereits gespeicherten verglichen und so festgestellt, ob dieser bestimmte Hash bereits vorhanden ist oder nicht – nur im letzteren Fall wird das Datenfragment auch tatsächlich gespeichert, ansonsten gibt es in der Datenbank einen neuen Verweis auf den bestehenden Chunk.
Hier liegt eines der potentiellen Probleme der Deduplizierung: Zumindest in der Theorie ist es möglich, dass zwei Hashes identisch sind, obwohl sie auf unterschiedlichen Bitfolgen beruhen (sogenannte Hash-Kollision). Träte ein solcher Fall ein, würde die Wiederherstellung der deduplizierten Informationen unweigerlich nur noch Datenmüll erzeugen, da der Inhalt eines Chunks unwiderruflich verloren wäre.
In der Praxis spielen Hash-Kollisionen allerdings keine Rolle: Statistisch gesehen ist es extrem unwahrscheinlich, dass eine Kollision vorkommt; wesentlich höher ist beispielsweise das Risiko eines nicht wiederherstellbaren Schreibfehlers auf einer Festplatte, und dennoch hat dieses Risiko noch niemanden davon abgehalten, auch geschäftskritische Daten auf einer Harddisk zu speichern. Allerdings muss man einschränkend erwähnen, dass bei einer falschen Fehlerkorrektur von Daten oder einem Schreibfehler auf der Festplatte meist eine überschaubare Menge von Informationen betroffen ist, während bei einer Hash-Kollision grosse Bereiche von Datenbeständen vernichtet werden könnten.
Neben der Chunk-Erzeugung und den verwendeten Hash-Algorithmen unterscheiden sich die Lösungen der Deduplizierungs-Hersteller noch in anderer Hinsicht. Die einen speichern beispielsweise die Chunks nach der sogenannten Rückwärtsreferenzierung (Reverse-Referencing): Dabei wird auf die jeweils erste Instanz eines Chunks verwiesen, wenn ein neuer, identischer Chunk identifiziert wird. Im Unterschied dazu gibt es die Vorwärtsreferenzierung (Forward-Referencing), bei dem jeweils die neueste Chunk-Version gespeichert wird. Tendentiell scheint das Forward-Referencing dabei mehr Rechenaufwand
zu verursachen, weil dabei sämtliche bestehenden Verweise aktualisiert werden müssen. Dafür wird dieser Variante unterstellt, dass sie Performance-Vorteile bei der Wiederherstellung von aktuellen Dateiversionen bringe.
Eine andere Unterscheidung trennt zwischen Lösungen, die die Daten Inband abarbeiten, und solchen, bei denen Out-of-Band gearbeitet wird. Bei ersterer Methode werden die Daten auf dem Weg zur Speicherlokation analysiert und dedupliziert, was etwa den Vorteil bringt, dass sie vom System nur einmal bearbeitet werden müssen. Dafür kann die Inband-Deduplizierung die Schreibperformance verlangsamen.Ein weiterer Vorteil, wenn die Deduplizierung bereits an der Quelle stattfindet: Das Netzwerk wird weniger stark ausgelastet, weil schlicht weniger Daten an die Speicherlokation geschickt werden. Kommt dazu, dass mit zunehmender Betriebsdauer einer Deduplication-Lösung die Wahrscheinlichkeit für bereits bekannte Chunks steigt und so die transferierte Datenmenge immer weiter sinkt.
Bei all diesen Unterschieden muss beachtet werden, dass sich kaum allgemeingültige Vor- oder Nachteile zwischen den einzelnen Methoden identifizieren lassen. Schliesslich ist die Daten-Deduplikation eine noch junge Technologie, bereits vorhandene Erfahrungswerte sind oft nicht besonders aussagekräftig und insbesondere hängt vieles von der jeweiligen Implementierung und den Datenbeständen ab. Insofern lässt sich kaufwilligen Interessenten eigentlich nur eines raten: Potentiell taugliche Systeme für die eigenen Bedürfnisse genau evaluieren und wenn immer möglich mit den eigenen Datenbeständen und in der eigenen Umgebung testen. Nur so lassen sich aussagekräftige Eckdaten gewinnen, die einen Entscheid für die eine oder andere Lösung sinnvoll untermauern können.
Die Praxis hat ausserdem gezeigt, dass sich traumhafte Reduktionsraten in dreistelliger Höhe, wie sie von einigen Herstellern gern beworben werden, mit tatsächlich vorhandenem Datenmaterial nicht erzielen lassen. Realistisch scheinen derzeit Raten von gegen 20:1, wobei auch diese Raten nur unter bestimmten Umständen erreicht werden können. Die Deduplizierungs-Möglichkeiten hängen schlicht von zu vielen Faktoren wie der Backup-Strategie, der Änderungshäufigkeit der Dateien oder ihren redundanten Bereichen ab – Datenbanken bringen hier typischerweise weniger als einzelne Office-Dateien. Auch der Komprimierungsfaktor bisheriger Backup-Lösungen spielt eine Rolle. Hier kann ebenfalls ein vorgängiger Test mit dem eigenen Datenbestand etwas Klarheit bringen.
Zusammenfassend lässt sich sagen, dass die noch junge Technologie Deduplizierung in der Praxis einige Fragen offenlässt. Kommt dazu, dass eine Einführung mit hohen Initialkosten verbunden ist – die Preise für Deduplizierungsappliances beginnen im fünfstelligen Dollar-Bereich, Software-Lösungen werden gerne nach dem Terabyte-Prinzip verrechnet, wo die gespeicherte Datenmenge als Berechnungsgrundlage herangezogen wird.
Es ist zu erwarten, dass der Deduplizierungs-Markt in den nächsten Jahren einer rasanten Entwicklung unterliegen wird. Die Welle der Übernahmen hat bereits begonnen (Avamar wurde schon im vergangenen Jahr von EMC geschluckt, IBM hat soeben Diligent übernommen), die Algorithmen werden weiterentwickelt und künftig beispielsweise die bestgeeignete Zerlegungsvariante automatisch ermitteln. Als sicher scheint jedenfalls, dass Deduplizierung über kurz oder lang zu einer Commodity werden wird, einer zusätzlichen Funktion von Backup-Lösungen, die sich nach Belieben und Bedarf nutzen lässt. So prophezeit etwa Gartner, die Deduplizierung zu den Top-10-IT-Trends 2008 zählt, dass die Technik 2012 bei 75 Prozent aller Backups zum Einsatz kommt.
Die Komprimierung und die Deduplizierung von Daten adressieren beide das gleiche Problem und benutzen sogar ähnliche Ansätze; allerdings geht die Deduplizierung wesentlich weiter. Während mit gängigen Komprimierungsalgorithmen eine Datenreduktion von typischerweise kaum mehr als 2:1 zu erreichen ist, kann man mit Deduplizierung, je nach Datentypen und -Mengen, Faktoren von 20:1 erzielen – bezogen auf die gesamte archivierte Datenmenge.
Dies liegt daran, dass die Deduplizierung mit den Daten häufig auf der Blockebene arbeitet. So werden nicht nur gleiche Dateien erkannt und bis auf eine Instanz eliminiert, sondern auch gleiche Teile von Dateien. Wenn beispielsweise ein Office-Dokument zur Bearbeitung zwischen mehreren Mitarbeitern mehrfach hin- und hergeschickt wird, kann es letztlich 20 mal oder noch öfter gespeichert sein und wird genauso oft ins Backup integriert, obwohl es zu 90 oder mehr Prozent unverändert ist. Deduplizierung dagegen erkennt die identischen Teile und speichert sie nur einmal.