DE102011011284A1 - Verfahren und Einrichtung zur Deduplizierung von auf einem Speichermedium gespeicherten Daten - Google Patents

Verfahren und Einrichtung zur Deduplizierung von auf einem Speichermedium gespeicherten Daten Download PDF

Info

Publication number
DE102011011284A1
DE102011011284A1 DE102011011284A DE102011011284A DE102011011284A1 DE 102011011284 A1 DE102011011284 A1 DE 102011011284A1 DE 102011011284 A DE102011011284 A DE 102011011284A DE 102011011284 A DE102011011284 A DE 102011011284A DE 102011011284 A1 DE102011011284 A1 DE 102011011284A1
Authority
DE
Germany
Prior art keywords
storage medium
computer system
signature
signatures
machines
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE102011011284A
Other languages
English (en)
Inventor
André Brinkmann
Dirk Meister
Jürgen Kaiser
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Christmann Informationstechnik & Medien & Co KG GmbH
Christmann Informationstechnik and Medien & Co KG GmbH
Universitaet Paderborn
Original Assignee
Christmann Informationstechnik & Medien & Co KG GmbH
Christmann Informationstechnik and Medien & Co KG GmbH
Universitaet Paderborn
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Christmann Informationstechnik & Medien & Co KG GmbH, Christmann Informationstechnik and Medien & Co KG GmbH, Universitaet Paderborn filed Critical Christmann Informationstechnik & Medien & Co KG GmbH
Priority to DE102011011284A priority Critical patent/DE102011011284A1/de
Publication of DE102011011284A1 publication Critical patent/DE102011011284A1/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Die vorliegende Erfindung betrifft ein Verfahren zur Deduplizierung von auf einem Speichermedium gespeicherten Daten, wobei das Verfahren zur Ausführung auf einem Computersystem (100) eingerichtet ist, das aus wenigstens zwei separaten, asynchron laufenden Maschinen (10, 20) mit jeweils eigenem Speichermedium und eigener Verwaltung dieses Speichermediums besteht, wobei die Durchführung der Deduplizierung auf die Maschinen (10, 20) verteilt ausgeführt wird, wobei bei einer Schreib-Anforderung, die die Anforderung aufweist, einen Datenblock auf einem der Speichermedien zu speichern, anhand von in einem Index gespeicherten Signaturen der bereits auf den Speichermedien gespeicherten Datenblöcke erung ein Duplikat eines bereits auf dem Speichermedium gespeicherten Datenblocks ist und bei Erkennung eines Duplikats der Datenblock der Schreib-Anforderung nicht erneut gespeichert wird, sondern eine Referenz auf den bereits gespeicherten Datenblock der zugehörigen Signatur zugeordnet wird, wobei der Index auf die Maschinen (10, 20) in Form lokaler Indices verteilt ist, wobei das Verfahren Schritte aufweist, um nicht mehr benötigte Signaturen zu erkennen und aus den verteilten Indices zu entfernen, wobei die Schritte zum Entfernen nicht mehr benötigter Signaturen während der Laufzeit des Computersystems (100) ohne Schritte zur Synchronisation der Maschinen durchgeführt werden, wobei geprüft wird, ob im Computersystem (100) noch nicht ausgeführte Schreib-Anforderungen vorliegen, durch die eine oder mehrere neue Referenzen auf bereits als nicht mehr benötigt erkannte Signaturen erzeugt werden können.

Description

  • Die Erfindung betrifft ein Verfahren zur Deduplizierung von auf einem Speichermedium gespeicherten Daten gemäß dem Anspruch 1. Die Erfindung betrifft ferner ein Computersystem mit Programmcodemitteln, die zur Ausführung eines solchen Verfahrens eingerichtet sind, gemäß dem Anspruch 9. Die Erfindung betrifft ferner eine Maschine für ein solches Computersystem gemäß dem Anspruch 10.
  • Generell betrifft die Erfindung das Gebiet der Deduplizierung von auf einem Speichermedium gespeicherten Daten, wobei das Verfahren zur Ausführung auf einem Computersystem eingerichtet ist, das aus wenigstens zwei separaten, asynchron laufenden Maschinen mit jeweils eigenem Speichermedium und eigener Verwaltung dieses Speichermediums besteht. Als Maschine sei hierbei z. B. ein Computer verstanden, z. B. in der Ausführung als Dateiserver.
  • Die grundlegende Technik der Datendeplizierung besteht darin, in neu zu speichernden Dateien bzw. Datenblöcken bereits auf dem Speichermedium vorhandene Datenblöcke zu finden, um diese bei einem erneuten Schreibvorgang nicht erneut abzuspeichern und damit zu duplizieren. Bei der Deduplizierung sollen auch dann Identitäten zwischen Daten erkannt werden, wenn diese nicht den gleichen Namen oder einen komplett identischen Inhalt haben. Dadurch werden deutlich mehr Duplikate erkannt als bei einem reinen Dateivergleich.
  • Ein vollständiger Vergleich einer Datei mit allen bereits vorher auf dem Speichermedium gespeicherten Daten wäre in der Praxis zu aufwendig und würde zu lange dauern. Es gibt daher bereits Vorschläge, jede Datei in Datenblöcke gleicher oder unterschiedlicher Größe aufzuspalten und für jeden dieser Datenblöcke eine eindeutige Signatur zu bestimmen. Die Menge aller bestimmten Signaturen wird als Index bezeichnet. Wird die Signatur eines neu auf dem Speichermedium zu speichernden Datenblocks in dem Index gefunden, so handelt es sich um ein Duplikat und der Datenblock muss nicht noch einmal gespeichert werden.
  • Vorteilhaft wird in einem Deduplizierungssystem ein Garbage Collection-Prozess vorgesehen. Darunter versteht man einen Prozess, bei dem Signaturen, auf die keine Referenz eines gespeicherten Datenblocks mehr verweist und die dadurch überflüssig geworden ist, und ggf. Daten, auf die sich die Signaturen beziehen, aus dem System entfernt.
  • In einem verteilten Deduplizierungssystem ergeben sich hierbei jedoch besondere Konstellationen. Ein verteiltes Deduplizierungssystem ist ein Computersystem, das aus wenigstens zwei separaten, asynchron laufenden Maschinen mit jeweils eigenem Speichermedium und eigener Verwaltung dieses Speichermediums besteht. Das Computersystem wird z. B. aus einer Gruppe von Maschinen gebildet, die zusammen und/oder arbeitsteilig die Deduplizierungsfunktion ausführen. Hierbei speichert z. B. eine Untermenge der Maschinen jeweils einen Anteil des Indexes. Der Index kann z. B. pseudo-zufällig auf die Maschinen verteilt werden.
  • Aufgrund der Partitionierung des Index auf mehrere Maschinen gibt es keine globale Sicht auf das System bzw. auf den Index. Bisher waren für den Garbage Collection-Prozess in einem verteilten Deduplizierungssystem daher entweder systemweite Prüfpunkte (Checkpoints) vorgesehen, zu denen eine Synchronisation der Maschinen erfolgt, oder das Deduplizierungssystem wurde komplett gestoppt. Beide Verfahren haben Nachteile hinsichtlich der gesamten Verarbeitungsleistung des Computersystems und der Ausführungszeit.
  • Der Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren zur Deduplizierung von auf einem Speichermedium gespeicherten Daten, das zur Ausführung auf einem Computersystem mit wenigstens zwei separaten, asynchron laufenden Maschinen vorgesehen ist, anzugeben, dass effizienter und schneller abläuft als bekannte Verfahren.
  • Diese Aufgabe wird durch die in den Ansprüchen 1, 9 und 10 gelöst.
  • Vorgeschlagen wird ein Verfahren zur Deduplizierung von auf einem Speichermedium gespeicherten Daten, wobei das Verfahren zur Ausführung auf einem Computersystem eingerichtet ist, das aus wenigstens zwei separaten, asynchron laufenden Maschinen mit jeweils eigenem Speichermedium und eigener Verwaltung dieses Speichermediums besteht, wobei die Durchführung der Deduplizierung auf die Maschinen verteilt ausgeführt wird, wobei bei einer Schreib-Anforderung, die die Anforderung aufweist, einen Datenblock auf einem der Speichermedien zu speichern, anhand von in einem Index gespeicherten Signaturen der bereits auf den Speichermedien gespeicherten Datenblöcke geprüft wird, ob der Datenblock der Schreib-Anforderung ein Duplikat eines bereits auf dem Speichermedium gespeicherten Datenblocks ist und bei Erkennung eines Duplikats der Datenblock der Schreib-Anforderung nicht erneut gespeichert wird, sondern eine Referenz auf den bereits gespeicherten Datenblock der zugehörigen Signatur zugeordnet wird, wobei der Index auf die Maschinen in Form lokaler Indices verteilt ist, wobei das Verfahren Schritte aufweist, um nicht mehr benötigte Signaturen zu erkennen und aus den verteilten Indices zu entfernen, wobei die Schritte zum Entfernen nicht mehr benötigter Signaturen während der Laufzeit des Computersystems ohne Schritte zur Synchronisation der Maschinen durchgeführt werden, wobei geprüft wird, ob im Computersystem noch nicht ausgeführte Schreib-Anforderungen vorliegen, durch die eine oder mehrere neue Referenzen auf bereits als nicht mehr benötigt erkannte Signaturen erzeugt werden können.
  • Die Erfindung hat den Vorteil, dass ein verteilter Garbage Collection-Prozess wesentlich effizienter und schneller durchgeführt werden kann, ohne dass das Computersystem mit Prüfpunkten versehen werden muss oder komplett gestoppt werden muss. Das erfindungsgemäße Verfahren erlaubt ein Entfernen nicht mehr benötigter Signaturen und damit verbundener Daten sozusagen „nebenbei” bei laufendem Computersystem, ohne dass unerwünschte Datenverluste auftreten. Auch die Qualität der Deduplizierung, d. h. der Vermeidung der Speicherung doppelter Daten, kann vollständig beibehalten werden.
  • Gemäß einer vorteilhaften Weiterbildung der Erfindung wird für die Erkennung, ob Signaturen nicht mehr benötigt werden, für jede Signatur im jeweiligen Index die Anzahl der dieser Signatur zugeordneten Referenzen geprüft. Es werden solche Signaturen, deren Anzahl von Referenzen gleich Null ist, als nicht mehr benötigte Signaturen erkannt. Dies hat den Vorteil, dass nicht mehr benötigte Signaturen auf einfache Weise schnell erkannt werden können, ohne dass großer Rechenaufwand erforderlich ist.
  • Hierzu kann für jede Signatur im Index die Anzahl der Referenzen, die sich auf diese Signatur beziehen, gezählt werden. Allerdings kann sich die tatsächliche Anzahl an Referenzen auf eine Signatur aufgrund der Parallelverarbeitung auf mehreren Maschinen von der im Index gespeicherten Anzahl unterscheiden.
  • Die tatsächliche Anzahl der Referenzen auf eine Signatur wird nachfolgend als Referenzzahl bezeichnet. Der im Index gespeicherte Wert der Anzahl der Referenzen wird nachfolgend als Verwendungswert bezeichnet.
  • Aufgrund der Partitionierung des Index auf mehrere Maschinen gibt es keine globale Sicht auf das System bzw. auf den Index. Daher kann sich die Referenzzahl von der Verwendungszahl unterscheiden.
  • Gemäß einer vorteilhaften Weiterbildung der Erfindung ist vorgesehen, dass für die Erkennung, ob Signaturen nicht mehr benötigt werden, für jede Signatur im jeweiligen Index eine in diesem Index gespeicherte Anzahl der dieser Signatur zugeordneten Referenzen als Verwendungswert bestimmt wird, wobei sich der Verwendungswert von der tatsächlichen Anzahl von Referenzen im gesamten Computersystem, die dieser Signatur zugeordnet sind, unterscheiden kann, wobei geprüft wird, ob der Verwendungswert einer Signatur gleich null ist, und, wenn der Verwendungswert gleich null ist, die Signatur als Löschkandidat markiert wird, und für einen Löschkandidaten zu einem beliebigen Zeitpunkt geprüft wird, ob im Computersystem noch nicht ausgeführte Schreib-Anforderungen vorliegen, durch die eine oder mehrere neue Referenzen auf den Löschkandidaten erzeugt werden können, und sofern keine neuen Referenzen auf den Löschkandidaten erzeugt werden können, der Löschkandidat aus dem jeweiligen Index entfernt wird. Dies hat den Vorteil, dass Signaturen nicht sofort gelöscht werden, sondern zunächst als Löschkandidat behandelt werden und nur dann, wenn systemweit geklärt ist, ob die Signatur nicht mehr benötigt ist, diese aus dem jeweiligen Index entfernt wird.
  • Gemäß einer vorteilhaften Weiterbildung der Erfindung ist vorgesehen, dass für die Prüfung, ob im Computersystem noch nicht ausgeführte Schreib-Anforderungen vorliegen, durch die eine oder mehrere neue Referenzen auf einen Löschkandidaten erzeugt werden können, auf jeder Maschine Überwachungszeiträume in Form von Episoden gestartet werden, wobei pro Episode für jeden Löschkandidaten ein Suchfilter ausgeführt wird, wobei einem Suchfilter alle Signaturen hinzugefügt werden, die durch Schreib-Anforderungen verändert wurden, wobei für jeden Löschkandidaten alle Suchfilter jeder Episode auf jeder Maschine geprüft werden, ob eine als Löschkandidat markierte Signatur in einem der Suchfilter existiert, und wenn dies nicht der Fall ist, der Löschkandidat aus dem jeweiligen Index entfernt wird. Dies hat den Vorteil, dass durch die Einführung von Episoden eine Art flexible Synchronisation des verteilten Garbage Collection-Prozesses realisiert werden kann, ohne die Maschinen des Computersystems starr miteinander zu synchronisieren oder stoppen zu müssen.
  • Gemäß einer vorteilhaften Weiterbildung der Erfindung ist vorgesehen, dass eine Episode deaktiviert wird, wenn alle Schreib-Anforderungen der Maschine aus dieser Episode geprüft wurden. Gemäß einer weiteren vorteilhaften Weiterbildung ist vorgesehen, dass eine Episode auf jeder Maschine asynchron zu anderen Maschinen gestartet wird, z. B. mit einem vorgegebenen Zeittakt. Dies erlaubt eine hohe Flexibilität beim Starten und Deaktivieren von Episoden, die insbesondere keine Synchronisation zwischen den Maschinen des Computersystems erfordert. Es kann eine Mehrzahl von Episoden je nach den entsprechenden Anforderungen des Systems parallel ablaufen.
  • Gemäß einer vorteilhaften Weiterbildung der Erfindung sind eines, mehrere oder alle Suchfilter als Bloom-Filter und/oder als Mengendatenstrukturimplementierung ausgebildet. Dies erlaubt eine hoch effiziente Durchführung der Suche durch das Suchfilter, d. h. eine schnelle Detektierung von Löschkandidaten, die aus dem jeweiligen Index zu entfernen sind, mit wenig Rechenaufwand. Als Mengendatenstrukturimplementierung kann z. B. ein Hashing-Algorithmus oder ein Verfahren mit balancierten Bäumen verwendet werden. Vorteilhaft ist insbesondere die Verwendung von Bloom-Filtern, wie beschrieben in der Veröffentlichung von B. H. Bloom, Space/time trade-offs in hashing coding with allowable errors. Communications of the ACM, 13(7): Seiten 422–426, 1970. Bloom-Filter haben die Eigenschaft, eine sehr kompakte Darstellung mit einer sehr geringen Wahrscheinlichkeit von Fehldetektionen (sog. false positives) zu liefern. Allerdings können auch solche Fehldetektionen nicht das Löschen einer nicht mehr verwendeten Signatur verhindern, sondern höchstens etwas verzögern.
  • Gemäß einer vorteilhaften Weiterbildung der Erfindung werden Datenblöcke, auf die sich nicht mehr benötigte Signaturen beziehen, vom Speichermedium entfernt. Dies hat den Vorteil, dass in größtmöglichem Umfang belegter Speicherplatz auf dem Speichermedium wieder freigegeben werden kann.
  • Die Erfindung betrifft außerdem ein Computersystem, das aus wenigstens zwei separaten, asynchron laufenden Maschinen mit jeweils eigenem Speichermedium und eigener Verwaltung dieses Speichermediums besteht, wobei das Computersystem Programmcodemittel aufweist, die zur Ausführung eines Verfahrens nach einem der vorhergehenden Ansprüche eingerichtet sind.
  • Ferner betrifft die Erfindung eine Maschine für ein Computersystem, dass aus wenigstens zwei separaten, asynchron laufenden Maschinen mit jeweils eigenem Speichermedium und eigener Verwaltung dieses Speichermediums besteht, wobei die Maschine Programmcodemittel aufweist, die zur Ausführung eines Verfahrens nach einem der vorhergehenden Ansprüche eingerichtet sind.
  • Die Erfindung wird nachfolgend anhand von Ausführungsbeispielen unter Verwendung von Zeichnungen näher erläutert.
  • Es zeigen
  • 1 einen deduplizierenden Dateiserver und
  • 2 ein Computersystem mit zwei Maschinen und
  • 3 einen Episoden-Zeitablauf der zwei Maschinen und
  • 4 einen beispielhaften Garbage Collection-Prozess auf einer Maschine.
  • Die 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 3 auf, das über die Dateischnittstelle 1 eingehende Anforderungen bearbeitet. Dem Dateiserver-Frontendmodul 3 ist ein Dateiserver-Dateisystem 4 nachgeordnet. Als Dateisystem 4 sind z. B. EXT3 oder BTRFS vorteilhaft verwendbar.
  • Dem Dateiserver-Dateisystem 4 ist ein Deduplizierungsmodul 6 nachgeordnet, das über eine Blockschnittstelle 5 mit dem Dateiserver-Dateisystem 4 in Verbindung steht. Dem Deduplizierungsmodul 6 ist, verbunden über eine Blockschnittstelle 7, ein Blockgerät 8 nachgeordnet. Das Blockgerät 8 ist ein logisches Blockgerät, das physikalisch z. B. bestimmte Bereiche eines Speichermediums sein können, z. B. Bereiche einer Festplatte oder einer Partition einer Festplatte. Möglich ist auch, dass anstelle eines nachgeschalteten Blockgerätes der Zugriff auf das Speichermedium über eine Dateisystem-Schnittstelle realisiert wird. Die Blockschnittstellen 5, 7 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.
  • In dem Deduplizierungsmodul 6 wird eine Deduplizierung nach einem der eingangs beschriebenen Verfahren durchgeführt. Nach der Deduplizierung werden über die Blockschnittstelle 7 entweder die Daten des zu speichernden Datenblocks oder ein Zeiger, der auf einen schon gespeicherten Datenblock mit identischem Inhalt verweist, an das Blockgerät 8 abgegeben und dort gespeichert.
  • Der anhand der 1 beispielhaft beschriebene Dateiserver 2 ist optional. In der Praxis sind sowohl Installationen mit einem solchen Dateiserver 2 als auch ohne diesen Dateiserver realisierbar. Im letztgenannten Fall ist es z. B. möglich, dass sich ein Client über die Blockschnittstelle 5 direkt mit dem Deduplizierungsmodul 6 verbindet. Ebenso ist es möglich, dass das in der 1 angegebene Dateiserver-Dateisystem 4 direkt Daten von einem Client, d. h. von angeschlossenen Einrichtungen, empfängt und verarbeitet.
  • Statt des Blockgeräts 8 in 1 kann auch ein Dateisystem vorgesehen sein.
  • Gemäß 2 weist ein Computersystem 100 eine Eingangsschnittstelle 101 auf, über die dem Computersystem 100 auf einem Speichermedium zu speichernde Daten in Form von Schreib-Anforderungen übersandt werden. Die an der Eingangsschnittstelle 101 empfangenen Schreib-Anforderungen werden einem Speicherklienten 102 zugeführt, in dem diese vorverarbeitet werden und über Datenpfade 103, 104 einer entsprechend für die Speicherung der Daten vorgesehenen Maschine 10, 20 zugeführt werden. Der Speicherklient 101 kann z. B. als Block-Device-Layer, als Dateisystem oder als OSD (Object Storage Device – Objektspeichergerät) eines Computersystems ausgebildet sein.
  • Die Maschinen 10, 20 können grundsätzlich gleichartig ausgebildet sein, was im nachfolgenden Beispiel angenommen sei. Unter gleichzeitiger Bezugnahme auf beide Maschinen 10, 20 werden daher nachfolgend deren einzelne Funktionen beschrieben. Eingangsseitig weist eine Maschine 10, 20 ein Request-Verarbeitungsmodul 11, 21 auf, das dazu dient, eingehende Anforderungen zum Speichern von Daten auf dem Speichermedium weiter zu verarbeiten. Die Request-Verarbeitungsmodule 11, 21 können z. B. als deduplizierende Dateiserver gemäß 1 ausgebildet sein. Das Request-Verarbeitungsmodul 11, 21 kommuniziert mit einem pysikalisch in einem persistenten Speicher vorgehenen Speichermodul 12, 22 und einer jeweiligen Partition 13, 23 des Indexes der Signaturen, die ebenfalls in einem persistenten Speicher vorgesehen ist. Als persistenter Speicher kommen alle nicht flüchtigen Speichermedien in Frage, wie z. B. eine Festplatte oder ein SSD (Solid State Drive – Halbleiterlaufwerk). Die jeweilige Partition 13, 23 gibt Daten an einen maschinenlokalen Episoden-Bloom-Filter 14, 24 ab. Die Episoden-Bloom-Filter 14, 24 können vorteilhaft in einem flüchtigen Speicher vorgesehen werden, z. B. einem DRAM.
  • Hierbei kann auch das Request-Verarbeitungsmodul 11 der Maschine 10 auch mit der Partition 23 des Index in der Maschine 20 und umgekehrt kommunizieren.
  • Es sei darauf hingewiesen, dass die konkrete Realisierung des Computersystems 100 gemäß 2 in diversen unterschiedlichen Varianten möglich ist. So kann eine Maschine 10, 20 bzw. Teile davon z. B. als Blockgerät oder als integrierte Dateisystemschicht ausgebildet sein.
  • Im Beispiel gemäß 2 hat jede Maschine 10, 20 eine Partition des Signatur-Indexes und ein Request-Verarbeitungsmodul 11, 21. Alternativ kann auch vorgesehen sein, dass nur eine Teilmenge der Maschinen eine Partition des Signaturindexes aufweist. Maschinen ohne eine Partition des Signaturindex weisen natürlich ebenfalls einen Speicher für maschinenlokale Schreib-Anforderungen entsprechend den Speichermodulen 12, 22 auf. Ebenfalls kann vorgesehen sein, dass eine Maschine kein Request-Verarbeitungsmodul aufweist, aber eine Partition des Signatur-Index und/oder ein maschinenlokales Episoden-Bloom-Filter.
  • Die 3 zeigt jeweils über die Zeit t aufgetragene Abläufe von Schreib-Anforderungen und zur Prüfung der Schreib-Anforderungen vorgesehenen Episoden für die Maschinen 10, 20. Gemäß 2a ist der Zeitablauf für die Maschine 10 dargestellt, gemäß 2b für die Maschine 20. Beispielhaft dargestellt sind für die Maschine 10 Episoden 30, 31, 32, 33, und für die Maschine 20 Episoden 34, 35, 36, 37. Der bei jeder Episode E angegebene Index i, i-1, i-2 bzw. i-3 gibt die Reihenfolge der Episoden wieder, wobei die Episode mit dem Index i die aktuelle Episode ist und die Episoden mit den Indices i-1, i-2 und i-3 jeweilige Vorgängerepisoden sind. Der Pfeil 38 symbolisiert aktuelle Schreib-Anforderungen zum Speichern von Daten auf dem Speichermedium. Die aktuellen Schreib-Anforderungen gemäß Pfeil 38 werden dem jeweiligen Bloom-Filter der jeweils neusten Episode i auf der jeweiligen Maschine 10, 20 zugeführt. Die Episoden i, i-1 und i-2 weisen noch auszuführende Schreib-Anforderungen auf, die noch nicht vollständig verarbeitet sind. Durch die Zeitmarke t1 wird der Verarbeitungsstand der Schreib-Anforderungen auf der Maschine 10 dargestellt, durch die Zeitmarke t2 der Verarbeitungszustand auf der Maschine 20. Wie erkennbar ist, können die Episoden i, i-1 und i-2 noch nicht deaktiviert werden, da noch nicht alle möglichen Änderungen an der Referenzzahl im Verwendungswert berücksichtigt wurden. Es kann daher Situationen geben, in denen die aktuelle Referenzzahl größer als Null ist, der Verwendungswert aber den Wert Null aufweist.
  • Für die Episode i-3 gilt für beide Maschinen 10, 20, dass alle Schreibanforderungen verarbeitet sind. Daher kann die Episode i-3 auf beiden Maschinen 10, 20 deaktiviert werden. Es sind hier bereits alle Änderungen an der Referenz zahl, die aufgrund von Schreib-Anforderungen in der Episode i-3 entstanden sind, im Verwendungswert berücksichtigt worden.
  • Das erfindungsgemäße Verfahren kann daher z. B. wie folgt implementiert werden.
  • Grundsätzlich werden durch Schreibvorgänge die Datenblöcke des Deduplizierungssystems verändert. Daher verändert sich in der Regel auch die Referenzzahl von verschiedenen Signaturen. Vorteilhaft wird bei dem hier vorgeschlagenen Verfahren vermieden, den Verwendungswert direkt zu verändern. Hierdurch kann eine dafür notwendige, relativ aufwendige Netzwerkkommunikation sowie persistente I/O-Operationen vermieden werden. Stattdessen werden die Verwendungswerte in einem Hintergrundprozess gebündelt aktualisiert, in dem alle Schreibvorgänge gesichtet werden. Alle zu sichtenden Schreibvorgänge werden in einer Warteschlange pro Maschine 10, 20 vorgehalten.
  • Wenn der Verwendungswert einer Signatur Null ist, wird die Signatur als Löschkandidat markiert. Aufgrund der Eigenschaft, dass die Referenzzahl nicht ständig mit dem Verwendungswert übereinstimmt, muss vor dem Löschen sichergestellt werden, dass der Verwendungswert mit der Referenzzahl übereinstimmt.
  • Bei bekannten Verfahren wäre hierfür das gesamte verteilte System zu einem bestimmten Zeitpunkt einzufrieren, so dass ohne nebenläufige Schreib-Anforderungen diese Bedingung geprüft werden kann (sog. Stop-the-World).
  • Stattdessen wird gemäß dem hier vorgeschlagenen Verfahren für einen Löschkandidaten zu einem beliebigen Zeitpunkt geprüft, ob es irgendwo im System noch nicht verarbeitete Schreib-Anforderungen gibt, durch die neue Referenzen auf die Signatur erzeugt werden.
  • Dazu wird die Zeit in die anhand der 3 erläuterten Episoden unterteilt. Jede Maschine 10, 20 verwaltet pro Episode, die für ein bestimmtes Zeitintervall gilt, einen Bloom-Filter, dem alle Signaturen hinzugefügt werden, die durch Schreibvorgänge verändert wurden.
  • Wenn bei einer Prüfung der Verwendungswert größer als Null ist, wurden nach Markierung der Signatur als Löschkandidat neue Referenzen auf diese Signatur erstellt, und die Signatur darf nicht gelöscht werden.
  • Wenn bei einer Prüfung der Verwendungswert Null ist, werden alle Episoden-Bloom-Filter der Maschine, der die Signatur zugeordnet wurde, geprüft, ob die Signatur in der Bloom-Filter-Menge existiert. Wenn die Prüfung fehlschlägt, kann mit Sicherheit gesagt werden, dass die Signatur keine neuen, noch nicht verarbeiteten Referenzen hat, und sie kann gelöscht werden. Wenn die Prüfung positiv ist, dann gibt es entweder neue Referenzen oder mit einer geringen Wahrscheinlichkeit eine Fehldetektion. Daher kann noch keine Entscheidung getroffen werden, und die Prüfung des Löschkandidaten wird für einen späteren Zeitpunkt zur Wiederholung markiert. Eine Fehldetektion verzögert die Garbage Collection dieser Signatur für einige Zeit, aber sie wird in der Zukunft durchgeführt werden (Wiedervorlage/Recheck).
  • Alle durch neue Schreib-Anforderungen betroffenen Signaturen, deren zugeordneter Index auf einer bestimmten Maschine liegt, werden dem Bloom-Filter der aktuellen Episode auf dieser Maschine hinzugefügt.
  • Eine Episode wird deaktiviert, wenn alle Schreib-Anforderungen der Maschine aus der Episode gesichtet wurden.
  • Der Teilprozess der Untersuchung von Löschkandidaten sei nachfolgend anhand des in 4 dargestellten Flussdiagramms näher erläutert. Die 4 zeigt die Durchführung des Teilprozesses auf einer Maschine 10 oder 20. Das Verfahren beginnt mit einem Block 40. Sodann wird in einem Verzweigungsblock 41 geprüft, ob der Verwendungswert einer Signatur den Wert Null aufweist. Wenn dies nicht der Fall ist, wird eine ggf. vorliegende Wiedervorlage-Markierung für die Signatur in einem Block 42 gelöscht und der Teilprozess für diese Signatur in einem Block 46 gestoppt. Es erfolgt dann ggf. eine neue Durchführung des Teilprozesses gemäß 4 für eine weitere Signatur des Index.
  • Sofern im Verzweigungsblock 41 festgestellt wird, dass der Verwendungswert der Signatur gleich Null ist, wird zu einem Verzweigungsblock 43 verzweigt. Dort erfolgt eine Prüfung einer lokalen Bloom-Filter. Sofern hierbei festgestellt wird, dass eine Signatur nicht in einem Bloom-Filter vorhanden ist, wird zu einem Block 45 verzweigt. Dort wird die Signatur und die damit verbundenen Daten gelöscht. Schließlich stoppt der Teilprozess in dem Block 46.
  • Sofern im Verzweigungsblock 43 nicht festgestellt wird, dass die Signatur nicht in einem Bloom-Filter vorhanden ist, wird zu einem Block 44 verzweigt. Dies kann entweder dadurch hervorgerufen werden, dass eine Signatur durch eine noch nicht verarbeitete Schreib-Anforderung referenziert wird, oder durch eine Fehldetektion des Bloom-Filters. In dem Block 44 wird die Signatur zur Wiedervorlage in einer späteren Episode markiert. In einer späteren Episode wird die zur Wiedervorlage markierte Signatur dann gemäß dem Teilprozess von 4 behandelt. Schließlich stoppt der Teilprozess in dem Block 46.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • B. H. Bloom, Space/time trade-offs in hashing coding with allowable errors. Communications of the ACM, 13(7): Seiten 422–426, 1970. [0019]

Claims (10)

  1. Verfahren zur Deduplizierung von auf einem Speichermedium gespeicherten Daten, wobei das Verfahren zur Ausführung auf einem Computersystem (100) eingerichtet ist, das aus wenigstens zwei separaten, asynchron laufenden Maschinen (10, 20) mit jeweils eigenem Speichermedium und eigener Verwaltung dieses Speichermediums besteht, wobei die Durchführung der Deduplizierung auf die Maschinen (10, 20) verteilt ausgeführt wird, wobei bei einer Schreib-Anforderung, die die Anforderung aufweist, einen Datenblock auf einem der Speichermedien zu speichern, anhand von in einem Index gespeicherten Signaturen der bereits auf den Speichermedien gespeicherten Datenblöcke geprüft wird, ob der Datenblock der Schreib-Anforderung ein Duplikat eines bereits auf dem Speichermedium gespeicherten Datenblocks ist und bei Erkennung eines Duplikats der Datenblock der Schreib-Anforderung nicht erneut gespeichert wird, sondern eine Referenz auf den bereits gespeicherten Datenblock der zugehörigen Signatur zugeordnet wird, wobei der Index auf die Maschinen (10, 20) in Form lokaler Indices verteilt ist, wobei das Verfahren Schritte aufweist, um nicht mehr benötigte Signaturen zu erkennen und aus den verteilten Indices zu entfernen, wobei die Schritte zum Entfernen nicht mehr benötigter Signaturen während der Laufzeit des Computersystems (100) ohne Schritte zur Synchronisation der Maschinen durchgeführt werden, wobei geprüft wird, ob im Computersystem (100) noch nicht ausgeführte Schreib-Anforderungen vorliegen, durch die eine oder mehrere neue Referenzen auf bereits als nicht mehr benötigt erkannte Signaturen erzeugt werden können.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass für die Erkennung, ob Signaturen nicht mehr benötigt werden, für jede Signatur im jeweiligen Index die Anzahl der dieser Signatur zugeordneten Referenzen geprüft wird, und solche Signaturen, deren Anzahl von Referenzen gleich null ist, als nicht mehr benötigte Signaturen erkannt werden.
  3. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass für die Erkennung, ob Signaturen nicht mehr benötigt werden, für jede Signatur im jeweiligen Index eine in diesem Index gespeicherte Anzahl der dieser Signatur zugeordneten Referenzen als Verwendungswert bestimmt wird, wobei sich der Verwendungswert von der tatsächlichen Anzahl von Referenzen im gesamten Computersystem (100), die dieser Signatur zugeordnet sind, unterscheiden kann, wobei geprüft wird, ob der Verwendungswert einer Signatur gleich null ist, und, wenn der Verwendungswert gleich null ist, die Signatur als Löschkandidat markiert wird, und für einen Löschkandidaten zu einem beliebigen Zeitpunkt geprüft wird, ob im Computersystem (100) noch nicht ausgeführte Schreib-Anforderungen vorliegen, durch die eine oder mehrere neue Referenzen auf den Löschkandidaten erzeugt werden können, und sofern keine neuen Referenzen auf den Löschkandidaten erzeugt werden können, der Löschkandidat aus dem jeweiligen Index entfernt wird.
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass für die Prüfung, ob im Computersystem (100) noch nicht ausgeführte Schreib-Anforderungen vorliegen, durch die eine oder mehrere neue Referenzen auf einen Löschkandidaten erzeugt werden können, auf jeder Maschine Überwachungszeiträume in Form von Episoden (30, 31, 32, 33, 34, 35, 36, 37) gestartet werden, wobei pro Episode für jeden Löschkandidaten ein Suchfilter ausgeführt wird, wobei einem Suchfilter alle Signaturen hinzugefügt werden, die durch Schreib-Anforderungen verändert wurden, wobei für jeden Löschkandidaten alle Suchfilter jeder Episode auf jeder Maschine (10, 20) geprüft werden, ob eine als Löschkandidat markierte Signatur in einem der Suchfilter existiert, und wenn dies nicht der Fall ist, der Löschkandidat aus dem jeweiligen Index entfernt wird.
  5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass eine Episode (30, 31, 32, 33, 34, 35, 36, 37) deaktiviert wird, wenn alle Schreib-Anforderungen der Maschine aus dieser Episode geprüft wurden.
  6. Verfahren nach Anspruch 4 oder 5, dadurch gekennzeichnet, dass eine Episode (30, 31, 32, 33, 34, 35, 36, 37) auf jeder Maschine (10, 20) asynchron zu anderen Maschinen (10, 20) gestartet wird, z. B. mit einem vorgegebenen Zeittakt.
  7. Verfahren nach einem der Ansprüche 4 bis 6, dadurch gekennzeichnet, dass eines, mehrere oder alle Suchfilter ausgebildet sind als Bloom-Filter und/oder als Mengendatenstrukturimplementierung.
  8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass Datenblöcke, auf die sich nicht mehr benötigte Signaturen beziehen, vom Speichermedium entfernt werden.
  9. Computersystem, das aus wenigstens zwei separaten, asynchron laufenden Maschinen (10, 20) mit jeweils eigenem Speichermedium und eigener Verwaltung dieses Speichermediums besteht, wobei das Computersystem (100) Programmcodemittel aufweist, die zur Ausführung eines Verfahrens nach einem der vorhergehenden Ansprüche eingerichtet sind.
  10. Maschine für ein Computersystem (100), das aus wenigstens zwei separaten, asynchron laufenden Maschinen (10, 20) mit jeweils eigenem Speichermedium und eigener Verwaltung dieses Speichermediums besteht, wobei die Maschine (10, 20) Programmcodemittel aufweist, die zur Ausführung eines Verfahrens nach einem der vorhergehenden Ansprüche eingerichtet sind.
DE102011011284A 2011-02-15 2011-02-15 Verfahren und Einrichtung zur Deduplizierung von auf einem Speichermedium gespeicherten Daten Ceased DE102011011284A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102011011284A DE102011011284A1 (de) 2011-02-15 2011-02-15 Verfahren und Einrichtung zur Deduplizierung von auf einem Speichermedium gespeicherten Daten

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102011011284A DE102011011284A1 (de) 2011-02-15 2011-02-15 Verfahren und Einrichtung zur Deduplizierung von auf einem Speichermedium gespeicherten Daten

Publications (1)

Publication Number Publication Date
DE102011011284A1 true DE102011011284A1 (de) 2012-08-16

Family

ID=46579662

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102011011284A Ceased DE102011011284A1 (de) 2011-02-15 2011-02-15 Verfahren und Einrichtung zur Deduplizierung von auf einem Speichermedium gespeicherten Daten

Country Status (1)

Country Link
DE (1) DE102011011284A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100332401A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100332401A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
B. H. Bloom, Space/time trade-offs in hashing coding with allowable errors. Communications of the ACM, 13(7): Seiten 422-426, 1970.

Similar Documents

Publication Publication Date Title
DE112010002938B4 (de) Eine integrierte Herangehensweise zur Deduplizierung von Daten in einer verteiltenUmgebung, die eine Quelle und ein Ziel umfasst
DE112007003678B4 (de) Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung
DE102008015662B4 (de) Beseitigung von Daten
DE102013215535B4 (de) Sicherung oder wiederherstellung von daten mit hilfe eines hauptspeichers und nichtflüchtiger speichermedien
DE112013001905B4 (de) Erhöhte Inline-Deduplizierungseffizienz
DE112007003645B4 (de) Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung
DE112011100534B4 (de) Mehrstufiger Sicherungsprozess
DE112007003693B4 (de) Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung
DE112017005868T5 (de) Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem
DE102013208930B4 (de) Zusammenfassen von Einträgen in einem Deduplizierungs-lndex
DE112012004937T5 (de) Fingerabdruckbasierte Datendeduplizierung
DE202010018481U1 (de) Asynchroner verteilter Objekt-Upload für replizierte Assoziativspeichercluster
DE112018003585B4 (de) Verfahren, Computerprogrammprodukt und Speicherbandlaufwerk-Hardwareeinheit zum Verbessern der Deduplizierung eines Bandlaufwerkspeichers
DE112013000900B4 (de) Bewahren von Redundanz in Datendeduplizierungssystemen unter Verwendung eines Anzeigers
DE102013209528A1 (de) Benutzergesteuerte Replikation in einem System für synchronisierte Objektreplikationen
DE112012005037T5 (de) Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds
DE112012005275T5 (de) Datenauswahl zur Sicherung von Datenspeichern
WO2015090668A1 (de) Posix-kompatibles dateisystem, verfahren zum erzeugen einer dateiliste und speichervorrichtung
DE112013000713T5 (de) Verfolgen von Änderungen in Zusammenhang mit einer Sammlung von Dokumenten
DE112012003695T5 (de) Aufrechterhalten mehrerer Zielkopien
DE112018000456T5 (de) Verwalten von umfangreichen Zuordnungsgruppen unter Verwendung von optimierten Bitmap-Darstellungen
DE112017000167B4 (de) Verteilte Datendeduplizierung in einem Prozessorraster
DE102014104971A1 (de) Verfahren für den Umgang mit Dateien in einer hierarchischen Speicherumgebung und eine entsprechende hierarchische Speicherumgebung
DE112011103367T5 (de) Replizieren von Daten
DE112012002796T5 (de) Übertragen von in virtuellen Datenträgern organisierten deduplizierten Daten in einen Zielsatz von physischen Medien

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0015167000

Ipc: G06F0012020000

R016 Response to examination communication
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final

Effective date: 20130306