-
Die Erfindung betrifft ein Verfahren zur Deduplizierung von auf einem Speichermedium gespeicherten Daten mit folgenden Schritten:
- a) bei einer Anforderung, einen Datenblock auf dem Speichermedium zu speichern, wird geprüft, ob bereits ein Datenblock mit identischem Inhalt auf dem Speichermedium gespeichert ist,
- b) wenn die im Schritt a) durchgeführte Prüfung ergibt, dass bereits ein Datenblock mit identischem Inhalt auf dem Speichermedium gespeichert ist, wird der zu speichernde Datenblock nicht erneut gespeichert, sondern es wird ein Verweis auf den bereits gespeicherten Datenblock mit identischem Inhalt auf dem Speichermedium gespeichert,
- c) wenn die im Schritt a) durchgeführte Prüfung ergibt, dass noch kein Datenblock mit identischem Inhalt auf dem Speichermedium gespeichert ist, wird der zu speichernde Speicherblock auf dem Speichermedium gespeichert.
-
Die Erfindung betrifft ferner einen Dateiserver mit einem Prozessor, einem auf dem Prozessor ausgeführten Betriebssystem und einem Speichermedium, das von dem Prozessor mittels des Betriebssystems verwaltet wird, wobei der Dateiserver zur Ausführung eines Verfahrens zur Deduplizierung von auf dem Speichermedium gespeicherten Daten eingerichtet ist.
-
Unter einer Deduplizierung von Daten wird in der Informationstechnologie ein Prozess verstanden, der redundante Daten identifiziert und eliminiert, bevor diese auf ein Speichermedium, insbesondere einen nicht flüchtigen Datenträger, geschrieben werden. Vorrangiges Einsatzgebiet der Deduplizierung ist derzeit die Datensicherung (Backup), bei der sich wegen der häufig nur geringfügig veränderten zu sichernden Daten sehr hohe Datenverdichtungen erzielen lassen. Grundsätzlich eignet sich das Verfahren auch für jeden anderen Einsatzfall, bei dem Daten wiederholt kopiert werden.
-
Eine grundlegende Technik der Datendeduplizierung besteht darin, bereits auf dem Speichermedium vorhandene Datenblöcke in Dateien zu finden und diese nicht erneut zu speichern. Eine Deduplizierungsfunktion findet dann auch Identitäten zwischen Dateien, wenn diese nicht den gleichen Namen oder einen komplett identischen Inhalt haben. Dadurch werden deutlich mehr Duplikate erkannt als bei einem reinen Dateivergleich.
-
Der Teilprozess, auf einem Speichermedium bereits vorhandene, identische Datenblöcke zu finden, ist relativ zeitaufwendig. Daher sind Möglichkeiten erwünscht, die Datenspeicherung mit Deduplizierung zu beschleunigen. Ein kompletter Vergleich eines zu speichernden Datenblocks mit allen bereits früher auf dem Speichermedium gespeicherten Datenblöcken ist am zeitaufwendigsten. Es gibt daher bereits Vorschläge, zu speichernde Dateien in Datenblöcke gleicher oder unterschiedlicher Länge aufzuspalten und für jeden der Datenblöcke eine Signatur zu berechnen. Die Menge der berechneten Signaturen wird als Index bezeichnet. Bei der für die Deduplizierung erforderlichen Suche nach bereits gespeicherten Datenblöcken werden dann nicht sämtliche Datenblöcke auf dem Speichermedium durchsucht, sondern nur der Index. Wird im Index eine Signatur gefunden, die der Signatur eines neu zu speichernden Datenblocks entspricht, handelt es sich mit höchster Wahrscheinlichkeit um ein Duplikat, und der Datenblock muss nicht noch einmal gespeichert werden. Um die Restwahrscheinlichkeit einer inkorrekten Duplikatserkennung zu eliminieren, kann an dieser Stelle zusätzlich ein Binärvergleich zwischen dem neu zu speichernden Datenblock und dem zu der Signatur zugehörigen, bereits gespeicherten Datenblock durchgeführt werden.
-
Allerdings ist auch das zuvor beschriebene Verfahren unter Verwendung der Signaturen noch mit einem nennenswerten Rechen- und Zeitaufwand verbunden.
-
Der Erfindung liegt daher die Aufgabe zu Grunde, ein weniger rechenzeitintensives und schnelleres Verfahren zur Deduplizierung von auf einem Speichermedium gespeicherten Daten anzugeben. Eine weitere Aufgabe besteht darin, einen vorteilhaften Dateiserver hierfür anzugeben.
-
Diese Aufgabe wird durch ein Verfahren gelöst, bei dem vorgesehen ist, dass
- d) vor der Prüfung, ob bereits ein Datenblock mit identischem Inhalt auf dem Speichermedium gespeichert ist, geprüft wird, ob der zu speichernde Datenblock ganz oder überwiegend aus Metadaten besteht
- e) und, wenn der zu speichernde Datenblock ganz oder überwiegend aus Metadaten besteht, dieser Datenblock auf dem Speichermedium ohne die Prüfung, ob bereits ein Datenblock mit identischem Inhalt auf dem Speichermedium gespeichert ist, gespeichert wird.
-
Die Erfindung kann mit verschiedenen Deduplizierungs-Verfahren und Einrichtungen kombiniert werden, z. B. mit dem eingangs beschriebenen, die Signaturen verwendenden Verfahren oder mit einem einfachen Deduplizierungs-Algorithmus, bei dem ein vollständiger Dateivergleich oder Datenblockvergleich stattfindet. Hierdurch ist die Erfindung besonders universell einsetzbar.
-
Ein Vorteil der Erfindung besteht darin, dass mit nur wenig aufwendigen Software- und Hardwaremitteln eine erhebliche Reduzierung des Zeitbedarfs bei der Datenspeicherung in deduplizierenden Dateiservern erreicht werden kann. Vorteilhaft werden insbesondere die Metadaten in einem Verfahrensschritt gesondert behandelt, der vor der zeitaufwendigen Prüfung, ob bereits ein Datenblock mit identischem Inhalt auf dem Speichermedium gespeichert ist, liegt. Hierdurch kann die Durchführung des Datenblockvergleichs auf sinnvolle Fälle begrenzt werden. Die Metadaten stellen keinen sinnvollen Anwendungsfall für den Datenblockvergleich dar, da sie sich relativ oft ändern und häufig gespeichert werden. Vorteilhaft werden daher Metadatenblöcke gar nicht erst der Deduplizierung zugeführt. Somit wird durch die Erfindung die Anzahl der Datenblock-Vergleiche bzw. der Index-Suchvorgänge deutlich reduziert.
-
Ein weiterer Vorteil besteht darin, dass neben der Geschwindigkeitssteigerung auch eine Verringerung des Bedarfs an Hauptspeicher realisiert werden kann. Bei einem die eingangs beschriebenen Signaturen verwendenden Verfahren besteht ein weiterer Vorteil darin, dass der Index nicht durch eine Indexierung von Metadaten unnötig vergrößert wird.
-
Ein Großteil der Zugriffe auf ein Dateisystem betrifft nicht die eigentlichen Nutzerdaten, sondern die Metadaten. Unter Metadaten werden alle Daten verstanden, die von einem Dateisystem gespeichert oder generiert werden, die nicht die eigentlichen Nutzerdaten enthalten. Die Metadaten beschreiben in einem Dateisystem z. B. die Struktur des Dateisystems und beinhalten Informationen bezüglich der Dateien und Verzeichnisse des Dateisystems, nicht jedoch die von dem Nutzer gespeicherten Nutzerdaten. Metadatenblöcke enthalten keine oder sehr wenig Redundanz. Metadaten beinhalten daher nahezu keine Möglichkeit zur Deduplizierung, da mit jedem Zugriff z. B. auch die zugehörigen Zeitstempel in den Metadaten aktualisiert werden und somit eine Veränderung vorangegangener Speicherungen erfolgt.
-
Als Metadaten wird von dem Dateisystem typischerweise ein Eintrag erzeugt, der Informationen über die Datei enthält. In Unix-artigen Dateisystemen wird dieser Eintrag als Inode bezeichnet. Dieser Eintrag beinhaltet einen eindeutigen Identifikator für die Datei, den Namen der Datei, die Größe der Datei, Zugriffsrechte und weitere Informationen, die von Dateisystem zu Dateisystem unterschiedlich sein können. Weiterhin wird typischer Weise ein Eintrag in der Metadatenstruktur des Verzeichnisses (Directory) erzeugt, in dem die Datei gespeichert wird.
-
Die Erfindung eignet sich besonders für blockbasierte Deduplizierungssysteme, die mit einem bereits existierenden Dateisystem gekoppelt werden, um als Schnittstellen nach außen als Dateiserver zu dienen.
-
Gemäß einer vorteilhaften Weiterbildung der Erfindung ist vorgesehen, dass
- a) für die Prüfung, ob bereits ein Datenblock mit identischem Inhalt auf dem Speichermedium gespeichert ist, bei einer Anforderung, einen Datenblock auf dem Speichermedium zu speichern, aus den Daten dieses Datenblocks eine Signatur bestimmt wird,
- b) ein Index, der die Signaturen von bereits auf dem Speichermedium gespeicherten Datenblöcken enthält, daraufhin untersucht wird, ob die im Schritt a) bestimmte Signatur darin enthalten ist,
- c) wenn die im Schritt a) bestimmte Signatur in dem Index enthalten ist, der zu speichernde Datenblock nicht erneut gespeichert wird, sondern ein Verweis auf den bereits gespeicherten Datenblock mit identischer Signatur auf dem Speichermedium gespeichert wird,
- d) wenn die im Schritt a) bestimmte Signatur nicht in dem Index enthalten ist, der zu speichernde Speicherblock auf dem Speichermedium gespeichert wird und der Index um die Signatur des neu gespeicherten Datenblocks erweitert wird.
-
Hierdurch wird die Verarbeitungsgeschwindigkeit weiter erhöht, da durch die Verwendung des die Signaturen enthaltenden Index eine schnellere Identifikation bereits gespeicherter Datenblöcke möglich ist als durch reinen Datei- oder Datenblockvergleich. Ein weiterer Vorteil besteht darin, dass durch die Ausblendung von Metadaten die Anzahl der Index-Suchvorgänge reduziert werden kann.
-
Gemäß einer vorteilhaften Weiterbildung der Erfindung ist vorgesehen, dass
- a) für die Prüfung, ob bereits ein Datenblock mit identischem Inhalt auf dem Speichermedium gespeichert ist, bei einer Anforderung, einen Datenblock auf dem Speichermedium zu speichern, aus den Daten dieses Datenblocks eine eindeutige Signatur bestimmt wird,
- b) ein Index, der die eindeutigen Signaturen von bereits auf dem Speichermedium gespeicherten Datenblöcken enthält, daraufhin untersucht wird, ob die im Schritt a) bestimmte Signatur darin enthalten ist,
- c) wenn die im Schritt a) bestimmte Signatur in dem Index enthalten ist, ein Binärvergleich zwischen dem zu speichernden Datenblock und dem mit der im Schritt a) bestimmten Signatur korrespondierenden, bereits gespeicherten Datenblock durchgeführt wird,
- d) wenn der im Schritt c) durchgeführte Binärvergleich ergibt, dass die verglichenen Datenblöcke identisch sind, der zu speichernde Datenblock nicht erneut gespeichert wird, sondern ein Verweis auf den bereits gespeicherten Datenblock mit identischer Signatur auf dem Speichermedium gespeichert wird,
- e) wenn die im Schritt a) bestimmte Signatur nicht in dem Index enthalten ist oder der im Schritt c) durchgeführte Binärvergleich ergibt, dass die verglichenen Datenblöcke nicht identisch sind, der zu speichernde Speicherblock auf dem Speichermedium gespeichert wird und der Index um die Signatur des neu gespeicherten Datenblocks erweitert wird.
-
Hierdurch kann die Restwahrscheinlichkeit einer inkorrekten Duplikatserkennung eliminiert werden.
-
Gemäß einer vorteilhaften Weiterbildung der Erfindung umfasst die Prüfung, ob der zu speichernde Datenblock ganz oder überwiegend aus Metadaten besteht, die Prüfung, ob der für den zu speichernden Datenblock mit der Anforderung zum Speichern mitgeteilte Datenbereich des Speichermediums ein Metadatenbereich ist. Der genannte Prüfschritt kann auch allein aus dieser Prüfung des Datenbereichs bestehen. Dies hat den Vorteil, dass eine einfache und schnelle Verarbeitung des Prüfungsschritts, ob der zu speichernde Datenblock ganz oder überwiegend aus Metadaten besteht, möglich ist.
-
Gemäß einer vorteilhaften Weiterbildung der Erfindung umfasst die Prüfung, ob der zu speichernde Datenblock ganz oder überwiegend aus Metadaten besteht, die Prüfung, ob der für den zu speichernden Datenblock mit der Anforderung zum Speichern mitgeteilte Datenbereich des Speichermediums eine über einem vorgegebenen Wert liegende Zugriffshäufigkeit und/oder Änderungshäufigkeit aufweist, insbesondere eine für Metadaten typische Zugriffshäufigkeit und/oder Änderungshäufigkeit. Der genannte Prüfschritt kann auch allein aus dieser Prüfung der Zugriffshäufigkeit und/oder der Änderungshäufigkeit bestehen. Dies hat den Vorteil, dass eine einfache und schnelle Verarbeitung des Prüfungsschritts, ob der zu speichernde Datenblock ganz oder überwiegend aus Metadaten besteht, möglich ist.
-
Gemäß einer vorteilhaften Weiterbildung der Erfindung weisen die Metadaten einen Zeitstempel auf, der mit jedem Schreibzugriff auf das Speichermedium aktualisiert wird. Die Prüfung, ob der zu speichernde Datenblock ganz oder überwiegend aus Metadaten besteht, umfasst die Prüfung, ob der zu speichernde Datenblock einen oder mehrere Zeitstempel aufweist. Der genannte Prüfschritt kann auch allein aus dieser Prüfung des Zeitstempels bestehen. Hierdurch sind Metadaten relativ schnell von zu speichernden Nutzerdaten zu unterscheiden.
-
Gemäß einer vorteilhaften Weiterbildung der Erfindung wird als Dateisystem zur Organisation des Speichermediums ein Linux EXT, insbesondere ein EXT3 verwendet. Gemäß einer vorteilhaften Weiterbildung der Erfindung werden bei Verwendung eines solchen Dateisystems Datenblöcke, die ganz oder überwiegend aus Metadaten bestehen, daran erkannt, dass der Datenblock ein Inode Block, eine als Bitmap zu speichernde Belegungsdarstellung und/oder ein Superblock ist.
-
Das Speichermedium kann z. B. eine oder mehrere Festplatten aufweisen.
-
Die Aufgabe wird ferner durch einen Dateiserver gemäß dem Anspruch 8 gelöst. Ein solcher Dateiserver zur Ausführung eines Verfahrens der zuvor beschriebenen Art weist einen Prozessor, ein auf dem Prozessor ausgeführtes Betriebssystem und ein Speichermedium auf, das von dem Prozessor mittels des Betriebssystems verwaltet wird.
-
Gemäß einer vorteilhaften Weiterbildung der Erfindung weist der Dateiserver ein in Form von Hardware, Software oder einer Kombination daraus ausgebildetes Deduplizierungsmodul auf, das zwischen einem Dateisystem des Dateiservers und einem logischen Blockgerät des Speichermediums angeordnet ist. Das Deduplizierungsmodul kann entweder in das Dateisystem selbst integriert sein oder eine zusätzliche Schicht in der Blockgeräte-Schicht des Dateiservers sein. Vorteilhaft weist das Speichermedium dabei ein oder mehrere logische Blockgeräte auf. Vorteilhaft ist hierfür eine Nutzung eines EXT-Dateisystems unter Linux. Die verschiedenen EXT-Dateisysteme haben eine klare Trennung zwischen den Nutzerdaten und den Metadaten, die in unterschiedlichen Bereichen liegen. Diese Trennung schließt alle Inode-Blöcke, die Belegungsdarstellungen, die in Form von Bitmaps gespeichert werden, sowie die Superblöcke ein.
-
Gemäß einer vorteilhaften Weiterbildung der Erfindung weist der Dateiserver ein in Form von Hardware, Software oder einer Kombination daraus ausgebildetes Metadaten-Erkennungsmodul auf, das vor dem Deduplizierungsmodul angeordnet ist. Das Metadaten-Erkennungsmodul ist dadurch zwischen dem Dateisystem des Dateiservers und dem Deduplizierungsmodul angeordnet. Das Metadaten-Erkennungsmodul kann z. B. in Form eines Metadaten-Switchs ausgebildet sein. Das Metadaten-Erkennungsmodul erkennt, ob es sich bei den zu speichernden Daten um Nutzerdaten oder um Metadaten des Dateisystems handelt.
-
Gemäß einer vorteilhaften Weiterbildung ist das Metadaten-Erkennungsmodul dazu eingerichtet, in auf dem Speichermedium zu speichernden Datenblöcken Metadaten zu erkennen, bei Erkennung von Metadaten solche Datenblöcke unter Umgehung des Deduplizierungsmoduls auf dem Speichermedium zu speichern und anderenfalls solche Datenblöcke, d. h. die zu speichernden Datenblöcke, dem Deduplizierungsmodul zuzuführen. Hierdurch kann ein im Vergleich zu bekannten Lösungen schneller arbeitender Dateiserver geschaffen werden.
-
Gemäß einer vorteilhaften Weiterbildung ist das Metadaten-Erkennungsmodul entweder in das Dateisystem des Dateiservers integriert oder als zusätzliche Schicht in einer Blockgeräte-Schicht des Dateiservers ausgebildet.
-
Die Erfindung wird nachfolgend anhand eines Ausführungsbeispiels unter Verwendung einer Zeichnung näher erläutert. Die Zeichnung 1 zeigt den logischen Aufbau eines deduplizierenden Dateiservers unter Verwendung eines Metadaten-Erkennungsmoduls. Der Dateiserver ist dabei hinsichtlich seiner logischen Funktion dargestellt, die durch Hardwarekomponenten und diese Hardwarekomponenten verwaltende Softwarekomponenten realisiert ist. Die beschriebenen Schnittstellen sind logische Schnittstellen, die softwaremäßig realisiert sind.
-
Ein Dateiserver 2 weist eine Dateischnittstelle 1 auf, die die Verbindung mit anderen Systemen, wie z. B. Client-Computern, herstellt. Die Dateischnittstelle 1 kann z. B. eine NFS- oder CIFS-Schnittstelle oder eine ähnliche Schnittstelle sein. Über die Dateischnittstelle 1 empfängt der Dateiserver 2 Anforderungen, Dateien bzw. Datenblöcke auf einem Speichermedium zu speichern. Über die Dateischnittstelle 1 werden zudem vom Speichermedium gelesene Daten von dem Dateiserver 2 an andere angeschlossene Einrichtungen zurück übertragen. Der Dateiserver 2 weist ein Dateiserver-Frontendmodul 6 auf, das über die Dateischnittstelle 1 eingehende Anforderungen bearbeitet. Dem Dateiserver-Frontendmodul 6 ist ein Dateiserver-Dateisystem 7 nachgeordnet. Als Dateisystem 7 sind z. B. EXT3 oder BTRFS vorteilhaft verwendbar. Dem Dateisystem 7 ist ein Metadaten-Erkennungsmodul 8 nachgeordnet. Das Metadaten-Erkennungsmodul 8 erkennt, ob ein zu speichernder Datenblock ganz oder überwiegend aus Metadaten besteht.
-
Dem Metadaten-Erkennungsmodul 8 ist einerseits ein Deduplizierungsmodul 3 nachgeordnet, das über eine Blockschnittstelle 9 mit dem Metadaten-Erkennungsmodul 8 in Verbindung steht. Andererseits ist dem Metadaten-Erkennungsmodul 8 ein Blockgerät 5 nachgeordnet, das über eine Blockschnittstelle 11 mit dem Metadaten-Erkennungsmodul 8 in Verbindung steht. Dem Deduplizierungsmodul 3 ist, verbunden über eine Blockschnittstelle 10, ein Blockgerät 4 nachgeordnet. Die Blockgeräte 4, 5 sind logische Blockgeräte, die physikalisch z. B. bestimmte Bereiche eines Speichermediums sein können, z. B. Bereiche einer Festplatte oder einer Partition einer Festplatte. Das Blockgerät 4 und das Blockgerät 5 können insbesondere auf derselben Festplatte oder derselben Partition der Festplatte angeordnet sein. Möglich ist auch, dass das Blockgerät 4 mit dem Blockgerät 5 als ein Blockgerät ausgebildet ist oder dass anstelle eines nachgeschalteten Blockgerätes der Zugriff auf das Speichermedium über eine Dateisystem-Schnittstelle realisiert wird. Die Blockschnittstellen 9, 10, 11 können z. B. SCSI-, ATA-, NFS- oder CIFS-Schnittstellen oder ähnliche Schnittstellen sein. Ebenso kann die Dateischnittstelle 1 als Blockgerät-Schnittstelle ausgebildet sein. Das aus Client-Sicht erkennbare, nach außen exportierte Blockgerät wird dann intern als Dateisystem verwaltet und dedupliziert.
-
Das Metadaten-Erkennungsmodul 8 gibt von dem Dateiserver-Dateisystem 7 eingehende, zu speichernde Datenblöcke über die Blockschnittstelle 9 an das Deduplizierungsmodul 3 weiter, wenn es sich bei den zu speichernden Datenblöcken nicht oder nicht überwiegend um Metadaten handelt. Anderenfalls gibt das Metadaten-Erkennungsmodul 8 die zu speichernden Datenblöcke über die Blockschnittstelle 11 direkt zur Speicherung an das Blockgerät 5 weiter. In dem Deduplizierungsmodul 3 wird eine Deduplizierung nach einem der eingangs beschriebenen Verfahren durchgeführt. Nach der Deduplizierung werden über die Blockschnittstelle 10 entweder die Daten des zu speichernden Datenblocks oder ein Zeiger, der auf einen schon gespeicherten Datenblock mit identischem Inhalt verweist, an das Blockgerät 4 abgegeben und dort gespeichert.
-
Eine mögliche Software-Implementierung des Metadaten-Erkennungsmoduls kann wie folgt aussehen:
Nehme Blockanfrage entgegen
Wenn Blockanfrage auf einen Metadatenbereich
Berechne neue Position auf Blockgerät 5
Modifiziere Blockanfrage und reiche diese an Blockgerät 5 weiter
Ansonsten
Berechne neue Position auf Blockgerät 4
Modifiziere Blockanfrage und reiche diese an Blockgerät 4
-
Eine weitere Verbesserung bei der Erkennung von Datenblöcken mit einem überwiegenden Metadaten-Anteil kann zusätzlich vorgesehen werden. Einige Metadaten-Blöcke haben keine feste Größe, so dass sie nicht in den vordefinierten Bereichen gespeichert werden können. Dies schließt z. B. bei EXT-Dateisystemen die Umrechnung von Positionen auf der Datei auf die Position auf dem Speichermedium ein. Einige andere Dateisysteme, wie BTRFS oder ReiserFS, verfügen überhaupt nicht über eine feste Zuordnung. In diesen Fällen ist es vorteilhaft, durch Auswertung der Frequenz der Zugriffe auf solche Datenblöcke und der Frequenz von deren Änderungen auf deren Redundanzverhalten zu schließen. Datenblöcke mit einem überwiegenden Metadaten-Anteil können dadurch erkannt werden, dass auf diese im Vergleich zu Nutzerdatenblöcken hochfrequent schreibend zugegriffen wird. Je nach Festlegung einer Unterscheidungsschwelle zwischen Metadaten-Zugriffshäufigkeiten und Nutzerdaten-Zugriffshäufigkeiten kann der dem Deduplizierungsmodul zugeführte Anteil der zu speichernden Datenblöcke eingestellt werden. Hierbei kann es je nach Festlegung der Unterscheidungsschwelle auch dazu kommen, dass auch Datenblöcke mit Nutzerdaten nicht dem Deduplizierungsmodul zugeführt werden, sondern direkt gespeichert werden, wenn es sich um Datenblöcke mit hoher Zugriffs- bzw. Veränderungshäufigkeit handelt. Dies ist jedoch für die Datenspeicherung insgesamt nicht schädlich.