DE102021105996A1 - Sicherungsobjekte für vollständig bereitgestellte datenträger mit dünnen listen von chunk-signaturen - Google Patents

Sicherungsobjekte für vollständig bereitgestellte datenträger mit dünnen listen von chunk-signaturen Download PDF

Info

Publication number
DE102021105996A1
DE102021105996A1 DE102021105996.8A DE102021105996A DE102021105996A1 DE 102021105996 A1 DE102021105996 A1 DE 102021105996A1 DE 102021105996 A DE102021105996 A DE 102021105996A DE 102021105996 A1 DE102021105996 A1 DE 102021105996A1
Authority
DE
Germany
Prior art keywords
chunk
list
volume
thin
signature
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.)
Pending
Application number
DE102021105996.8A
Other languages
English (en)
Inventor
Alastair M. Slater
Ieuan James HENRY
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of DE102021105996A1 publication Critical patent/DE102021105996A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • G06F16/1756De-duplication implemented within the file system, e.g. based on file segments based on delta files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/83Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures

Landscapes

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

Abstract

Beispiele können Sicherungsobjekte für vollständig bereitgestellte Volumes mit dünnen Listen von Chunk-Signaturen enthalten. Beispiele können eine oder mehrere vollständige Listen von Chunk-Signaturen für den Adressraum eines vollständig bereitgestellten Datenträgers erzeugen, jede Chunk-Signatur der vollständigen Liste mit einer Chunk-Signatur für einen unbenutzten Bereich vergleichen, die einen Chunk eines unbenutzten Bereichs des vollständig bereitgestellten Datenträgers darstellt, Metadaten erzeugen, um benutzte Bereiche des vollständig bereitgestellten Datenträgers auf der Grundlage der Vergleiche anzuzeigen, und aus der einen oder den mehreren vollständigen Listen eine oder mehrere dünne Listen erzeugen, die alle Chunk-Signaturen auslassen, für die eine Übereinstimmung mit der Chunk-Signatur für den unbenutzten Bereich festgestellt wurde.

Description

  • HINTERGRUND
  • Ein Client-Computergerät, wie z. B. ein Host-Server oder ähnliches, kann Daten in einem primären Speicher-Array speichern und Arbeitslasten mit den im primären Speicher-Array gespeicherten Daten ausführen. In einigen Beispielen können die im primären Speicherarray gespeicherten Daten zu Zwecken wie Redundanz und Datenschutz in einer Backup-Appliance gesichert werden, die sowohl vom Client-Computergerät als auch vom primären Speicherarray getrennt ist. In einigen Beispielen kann die Backup-Appliance Daten in deduplizierter Form speichern, so dass die Daten kompakter gespeichert werden als z. B. auf dem primären Speicher-Array.
  • Figurenliste
  • Die folgende detaillierte Beschreibung bezieht sich auf die Zeichnungen, wobei:
    • ist ein Blockdiagramm einer beispielhaften Computerumgebung zum Erzeugen dünner Liste(n) von Chunk-Signaturen;
    • ist ein Flussdiagramm eines Beispielverfahrens, das den Vergleich jeder Chunk-Signatur der vollen Liste(n) mit einer Chunk-Signatur einer unbenutzten Region beinhaltet;
    • ist ein Blockdiagramm, das andere Funktionalitäten der Beispiel-Rechenumgebung von zeigt;
    • ist ein Flussdiagramm eines Beispielverfahrens, das die Erzeugung von Differenz-Chunk-Signaturen beinhaltet;
    • ist ein Flussdiagramm eines Beispielverfahrens, das die Erzeugung von synthetischen dünnen Sicherungsobjekten umfasst;
    • ist ein Flussdiagramm eines Beispielverfahrens, das die Durchführung einer Wiederherstellung von Thin-List-Backup-Objekten umfasst;
    • ist ein Blockdiagramm einer Beispiel-Rechenumgebung, um die Speicherung von Thin-List-Backup-Objekten in einem Deduplizierungssystem zu veranlassen; und
    • ist ein Flussdiagramm eines Beispielverfahrens, das das Erzeugen von dünner Liste(n) von Chunk-Signaturen umfasst.
  • DETAILLIERTE BESCHREIBUNG
  • Wie oben erwähnt, kann ein Computergerät (z. B. ein Host, Server, Speicher-Array usw.) Daten sichern, indem es die Daten in einem Computersystem speichert, das in der Lage ist, eine Deduplizierung der Daten durchzuführen (hier als „Deduplizierungssystem“ bezeichnet), um die Daten in einer deduplizierten Form zu speichern, die kompakter ist als eine nicht-duplizierte Form.
  • In den hier beschriebenen Beispielen kann ein Deduplizierungsprozess von einem Deduplizierungssystem an einer Sammlung von Daten von einem anderen Computersystem durchgeführt werden, z. B. von einem Speicher-Array (oder einer anderen Art von Primärspeichergerät). Zum Beispiel kann der Inhalt eines bestimmten Volumens (z. B. eines virtuellen Volumens) eines Speichergeräts zu aufeinanderfolgenden Zeitpunkten gesichert werden. In solchen Beispielen kann ein erstes Backup des gegebenen Volumes an ein Deduplizierungssystem ein „vollständiges“ Backup sein (im Gegensatz zu einem inkrementellen Backup), das eine Darstellung des gesamten Inhalts des Volumes zu einem ersten Zeitpunkt umfasst (z.B. basierend auf einem Schnappschuss des Volumes zu diesem ersten Zeitpunkt). Ein solches „vollständiges“ Backup kann auch als „Voll“-Backup bezeichnet werden, aber der Begriff „vollständiges“ Backup wird hier verwendet, um Verwechslungen zu vermeiden (d. h. mit den unten beschriebenen „Voll“-Listen).
  • Jede nachfolgende Sicherung des gegebenen Datenträgers, die den Inhalt des Datenträgers zu einem jeweils späteren Zeitpunkt darstellt (z. B. basierend auf einem Schnappschuss des Datenträgers zu diesem späteren Zeitpunkt), kann eine „inkrementelle“ Sicherung sein (im Gegensatz zu einer vollständigen oder vollständigen Sicherung), die eine Darstellung der Änderungen des Datenträgers zwischen dem jeweiligen späteren Zeitpunkt und einem früheren Zeitpunkt umfasst. In solchen Beispielen können dem Deduplizierungssystem für ein inkrementelles Backup im Vergleich zum ursprünglichen vollständigen Backup für den Datenträger viel weniger Daten zur Verfügung gestellt werden. In einigen Beispielen kann das Deduplizierungssystem ein vollständiges Backup und ein späteres inkrementelles Backup verwenden, um ein „synthetisches vollständiges“ Backup zu erzeugen, das den gesamten Inhalt des Datenträgers zu dem Zeitpunkt repräsentiert, der durch das inkrementelle Backup dargestellt wird. Ein solches „synthetisches Komplett“-Backup kann auch als „synthetisches Voll“-Backup bezeichnet werden, aber der Begriff „synthetisches Komplett“-Backup wird hier verwendet, um Verwechslungen mit anderen Konzepten zu vermeiden.
  • In einigen Beispielen kann ein Volume ein „virtuelles Volume“ eines Computersystems (z. B. eines Speicherarrays) sein, das einen virtuellen Adressraum umfasst, der flexibel auf physische Adressen eines oder mehrerer physischer Speichergeräte (z. B. Festplattenlaufwerke (HDDs), Solid-State-Laufwerke (SSDs) und dergleichen oder eine Kombination davon) zur Speicherung von Daten „auf‟ dem virtuellen Volume abgebildet werden kann. In solchen Beispielen können Daten, die in einem Teil des Adressraums eines virtuellen Datenträgers gespeichert sind, tatsächlich in einem oder mehreren physischen Speicherplatz(en) eines oder mehrerer physischer Speichergeräte gespeichert werden, denen dieser Teil des Adressraums des virtuellen Datenträgers zugeordnet ist.
  • In einigen Beispielen kann ein virtuelles Volume „vollständig bereitgestellt“ sein, was bedeutet, dass dem gesamten Adressraum des vollständig bereitgestellten virtuellen Volumes physischer Speicherplatz auf einem oder mehreren physischen Speichergeräten zugewiesen wurde. In solchen Beispielen wird jede Adresse im virtuellen Adressraum des vollständig bereitgestellten Volumes auf physischen Speicherplatz auf einem physischen Speichergerät abgebildet, um tatsächlich alle Daten zu speichern, die an die entsprechende Adresse im virtuellen Adressraum des vollständig bereitgestellten virtuellen Volumes geschrieben werden.
  • Im Gegensatz dazu kann ein virtuelles Volume „thin provisioned“ sein, was bedeutet, dass physischer Speicherplatz auf physischen Speichergeräten nicht notwendigerweise dem gesamten Adressraum des vollständig provisionierten virtuellen Volumes zugewiesen wurde. In solchen Beispielen kann der verfügbare physische Speicherplatz auf dem/den physischen Speichergerät(en) bei Bedarf dem virtuellen Adressraum des Thin-Provisioned-Volumes zugewiesen werden. In solchen Beispielen kann der physische Speicherplatz auf dem/den physischen Speichergerät(en) einem großen Teil des Adressraums des Thin-Provisioned-Virtual-Volume nicht zugewiesen werden. Solche Teile des virtuellen Adressraums ohne zugewiesenen physischen Speicher können als „nicht zugewiesene“ Teile des virtuellen Volumens bezeichnet werden, während Teile des virtuellen Adressraums, denen physischer Speicher zugewiesen wurde, hier als „zugewiesene“ Teile des virtuellen Volumens bezeichnet werden können.
  • In einigen Beispielen kann die Sicherung eines vollständig bereitgestellten virtuellen Datenträgers die Sicherung der Daten an jedem Speicherort des vollständig bereitgestellten virtuellen Datenträgers beinhalten, selbst wenn ein Großteil des vollständig bereitgestellten virtuellen Datenträgers nicht tatsächlich von einer Anwendung zum Speichern sinnvoller Daten verwendet wird (z. B. seit der Erstellung des vollständig bereitgestellten virtuellen Datenträgers nicht von einer Anwendung beschrieben wurde). Wie weiter unten beschrieben, kann dies zu Ineffizienzen bei der Durchführung eines vollständigen Backups für ein vollständig bereitgestelltes virtuelles Volume und bei der Erstellung eines synthetischen vollständigen Backups für ein vollständig bereitgestelltes virtuelles Volume führen. Die hier beschriebenen Beispiele können diese Probleme beheben, wie hier beschrieben.
  • Einige Beispiele werden hier nun in Bezug auf beschrieben, die ein Blockdiagramm einer beispielhaften Computerumgebung 105 zum Erzeugen von dünnen Listen von Chunk-Signaturen darstellt. In dem in dargestellten Beispiel umfasst die Computerumgebung 105 ein Computergerät 100 und ein Deduplizierungs-Backup-System 170 (das hier als „Deduplizierungssystem“ 170 bezeichnet werden kann). In einigen Beispielen kann das Computergerät 100 durch ein Speicherarray oder jede andere geeignete Art von Computergerät (z. B. Server usw.) implementiert werden, und das Deduplizierungssystem 170 kann durch jede geeignete Art von Computergerät (wie z. B. ein Speicherarray, eine Speicheranwendung, einen Server oder ähnliches) implementiert werden. Jede hierin beschriebene Funktion, die von einem beliebigen Rechengerät (z. B. Rechengerät 100, Deduplizierungssystem 170 usw.) einer beliebigen Rechenumgebung hierin (z. B. Rechenumgebung 105) ausgeführt wird, kann durch Anweisungen ausgeführt werden, die auf mindestens einem maschinenlesbaren Speichermedium gespeichert und von einer oder mehreren Verarbeitungsressourcen dieses Rechengeräts ausführbar sind.
  • Die Computerumgebung 105 kann Backup-Agent-Befehle 121 enthalten, um (zumindest teilweise) einen Backup-Agenten zu implementieren, um von der Rechenvorrichtung 100 gespeicherte Daten im Deduplizierungssystem 170 zu sichern. Im Beispiel von umfasst die Rechenvorrichtung 110 mindestens eine Verarbeitungsressource 110 und mindestens ein maschinenlesbares Speichermedium 120, das mindestens Backup-Agent-Befehle 121 (einschließlich der Befehle 122, 124, 126 und 128) umfasst (z. B. mit diesen kodiert), die von der mindestens einen Verarbeitungsressource 110 der Rechenvorrichtung 100 ausgeführt werden können, um die hier in Bezug auf die Befehle 121 beschriebenen Funktionalitäten zu implementieren. Obwohl im Beispiel von die Anweisungen 121 des Backup-Agenten vom Computergerät 100 (z.B. einem primären Speicherarray, das die zu sichernden Daten speichert) ausgeführt werden, können in anderen Beispielen die Anweisungen 121 des Backup-Agenten vom Deduplizierungssystem 170 oder einem anderen Computergerät (z.B. einem Server) ausgeführt werden, das von dem Computergerät 100 und dem Deduplizierungssystem 170 getrennt ist, aber mit diesen kommuniziert. Im Beispiel von können das Computergerät 100, das Deduplizierungssystem 170 und jedes andere Computergerät der Computerumgebung 105 über ein oder mehrere Computernetzwerke kommunizieren. In den hier beschriebenen Beispielen kann ein Computernetzwerk z. B. ein Speichernetzwerk (SAN), ein lokales Netzwerk (LAN), ein virtuelles LAN (VLAN), ein drahtloses lokales Netzwerk (WLAN), ein virtuelles privates Netzwerk (VPN), das Internet oder Ähnliches oder eine Kombination davon umfassen.
  • Das Computergerät 100 umfasst auch einen Speicher 101, der durch ein oder mehrere physische Speichergeräte implementiert werden kann, um Daten zu speichern. Bei den physischen Speichergeräten kann es sich um jeden geeigneten Typ von Speichergerät (z. B. HDDs, SSDs usw.) oder eine Kombination davon handeln. In einigen Beispielen kann das Computergerät 100 ein vollständig bereitgestelltes virtuelles Volume 140 (das hier als „vollständig bereitgestelltes Volume 140“ bezeichnet werden kann) auf dem Speicher 101 erstellen. Wie oben beschrieben, wird bei einem vollständig bereitgestellten Volume der physische Speicherplatz auf dem/den physischen Speichergerät(en) (z. B. auf Speicher 101) dem gesamten Adressraum des vollständig bereitgestellten Volumes 140 zugewiesen. Jedoch speichern nicht alle Adressen des vollständig bereitgestellten Volumes 140 sinnvolle Daten für die Anwendung(en) (z. B. Host-Anwendung(en)), die auf das Volume 140 schreiben und/oder von ihm lesen. In den hier beschriebenen Beispielen können Teile eines vollständig bereitgestellten Datenträgers, die sinnvolle Daten speichern, wie z. B. von einer Host-Anwendung geschriebene Daten, Datenträger-Metadaten oder Ähnliches, als „verwendete“ Teile eines vollständig bereitgestellten Datenträgers betrachtet werden, während Teile des vollständig bereitgestellten Datenträgers, die nicht zum Speichern solcher sinnvoller Daten verwendet werden, als „ungenutzte“ Teile des vollständig bereitgestellten Datenträgers betrachtet werden können.
  • In einigen Beispielen können solche ungenutzten Teile eines vollständig bereitgestellten Volumes ein definiertes Datenmuster speichern, wie z. B. alle Nullen oder ein anderes vordefiniertes Datenmuster (z. B. Einsen und Nullen). In solchen Beispielen kann das definierte Datenmuster ein Datenmuster sein, das auf das gesamte (oder den Großteil) des vollständig bereitgestellten Volumes geschrieben wird, wenn es erstellt wird. Beispielsweise kann das Computergerät 100 das definierte Datenmuster (z. B. alle Nullen) auf das Volume schreiben, wenn es erstellt wird und bevor irgendeine Host-Anwendung sinnvolle Daten auf das Volume schreibt, oder eine Host-Anwendung kann ein anwendungsspezifisches definiertes Datenmuster (z. B. ein Muster aus Einsen und/oder Nullen) auf den größten Teil oder das gesamte Volume schreiben, wenn es erstellt wird und bevor sie irgendwelche sinnvollen Daten auf das Volume schreibt. In den hier beschriebenen Beispielen kann das definierte Datenmuster verwendet werden, um dünne Listen von Chunk-Signaturen zu erstellen, wie hier beschrieben.
  • Ein Beispielprozess der Deduplizierung wird im Folgenden in Bezug auf das Beispiel von beschrieben. Das Deduplizierungssystem 170 kann deduplizierte Repräsentationen von einer oder mehreren Datensammlungen speichern. Beispielsweise können die im Deduplizierungssystem 170 zu speichernden Daten in Abschnitte fester oder variabler Länge unterteilt werden, die hier als „Chunks“ bezeichnet werden, und das Deduplizierungssystem 170 kann „doppelte“ Chunks identifizieren, deren Inhalt mit dem anderer Chunks identisch ist, eine (vollständige oder komprimierte) Kopie jedes Chunks speichern, der nicht als Duplikat eines bereits gespeicherten Chunks identifiziert wurde, und für jeden doppelten Chunk einen Verweis (z. B. einen Zeiger) auf eine gespeicherte Kopie des Chunks speichern, ohne den doppelten Chunk erneut zu speichern. Auf diese Weise kann ein Deduplizierungsprozess oft vermeiden, Duplikate desselben Chunks im Deduplizierungssystem 170 zu speichern. In solchen Beispielen kann das Deduplizierungssystem eine deduplizierte Darstellung einer Datensammlung speichern, wobei die deduplizierte Darstellung ausgewählte Datenchunks und ausreichend Metadaten umfasst, um die vollständige Version der Datensammlung aus den ausgewählten Datenchunks und den Metadaten zu rekonstruieren.
  • Zum Beispiel können die Metadaten für eine Sammlung von Daten, die im Deduplizierungssystem 170 gespeichert sind, eine Liste von Chunk-Signaturen für die Sammlung von Daten enthalten. Ein Beispiel wird hier in Bezug auf das Sichern des Inhalts eines vollständig bereitgestellten Volumes 140 im Deduplizierungssystem 170 beschrieben. In solchen Beispielen kann das vollständig bereitgestellte Volume 140 in eine Vielzahl von Chunks 142 unterteilt sein (von denen ein kleiner Teil in zu Erklärungszwecken dargestellt ist), wobei die Chunks 142 zusammen die Daten des gesamten Adressraums des vollständig bereitgestellten Volumes 142 bilden. Die Rechnereinrichtung 100 kann entsprechende Chunk-Signaturen 154 für jeden der Chunks 142 bestimmen (ein kleiner Teil davon ist in zu Erklärungszwecken dargestellt). In den hier beschriebenen Beispielen kann eine „Chunk-Signatur“ aus Daten bestehen, die für den Inhalt eines Chunks repräsentativ sind und durch Anwendung einer Signaturfunktion auf den Chunk abgeleitet werden. In einigen Beispielen kann die Signaturfunktion eine Hash-Funktion sein, und die Chunk-Signatur kann ein Hash (oder Hash-Wert) des Chunks sein, der durch Anwendung der Hash-Funktion auf den Chunk erzeugt wird. Jede geeignete Hash-Funktion kann verwendet werden, um die Chunk-Signatur zu erzeugen. In anderen Beispielen kann jede andere geeignete Art von Signaturfunktion anstelle einer Hash-Funktion verwendet werden, um eine geeignete Chunk-Signatur zu erzeugen (z. B. eine Funktion zur Erzeugung eines geeigneten Typs von Fingerabdruck). In den hier beschriebenen Beispielen kann eine Signaturfunktion verwendet werden, die eine gegebene Chunk-Signatur aus einem gegebenen Chunk ableitet, so dass die gegebene Chunk-Signatur repräsentativ für den Inhalt des gegebenen Chunks ist und mit einer sehr hohen Wahrscheinlichkeit von ähnlich abgeleiteten Chunk-Signaturen für andere Chunks ähnlicher Größe unterscheidbar ist. Das heißt, die Chunk-Signaturen können so abgeleitet werden, dass es eine sehr geringe Wahrscheinlichkeit von Kollisionen (d. h., dass Chunk-Signaturen für Chunks übereinstimmen, die nicht den gleichen Inhalt haben) für ähnlich große Chunks gibt. In den hier beschriebenen Beispielen kann das Deduplizierungssystem also feststellen, dass zwei Chunks identische Inhalte enthalten (für Deduplizierungszwecke), weil ihre Chunk-Signaturen übereinstimmen.
  • Für jeden der Chunks 142 des vollständig bereitgestellten Volumens 140 kann die Rechenvorrichtung 100 die von dem Chunk abgeleitete Chunk-Signatur in einer vollständigen Liste 150 von Chunk-Signaturen für das vollständig bereitgestellte Volumen 140 speichern, so dass die vollständige Liste 150 eine entsprechende Chunk-Signatur für jeden der Chunks 142 enthält, wobei die entsprechenden Chunk-Signaturen in der vollständigen Liste 150 in der gleichen Reihenfolge gespeichert sind, wie die Chunks selbst im vollständig bereitgestellten Volumen 140 auftreten. In solchen Beispielen kann das Computergerät 100 die vollständige Liste 150 dem Deduplizierungssystem 170 zur Speicherung als Backup-Objekt im Deduplizierungssystem bereitstellen, das den Inhalt des vollständig bereitgestellten Volumes 140 zu einem bestimmten Zeitpunkt repräsentiert. Das Deduplizierungssystem 170 kann dann die Chunk-Signaturen der vollständigen Liste 150 mit den Chunk-Signaturen der bereits im Deduplizierungssystem gespeicherten Chunks vergleichen. Für jede Chunk-Signatur der vollständigen Liste 150, für die das Deduplizierungssystem 170 nicht feststellt, dass der entsprechende Chunk (der durch diese Chunk-Signatur repräsentiert wird) bereits im Deduplizierungssystem 170 gespeichert ist, kann das Deduplizierungssystem 170 verlangen, dass das Rechengerät 100 diesen Chunk zur Speicherung bereitstellt. Für jede Chunk-Signatur der vollständigen Liste 150, für die das Deduplizierungssystem 170 feststellt, dass der entsprechende Chunk bereits im Deduplizierungssystem 170 gespeichert ist, kann das Deduplizierungssystem 170 darauf verzichten, den Chunk vom Computergerät 100 anzufordern, da es bereits eine Kopie speichert, um die Speicherung doppelter Chunks zu vermeiden. In solchen Beispielen kann das Deduplizierungssystem 170 eine vollständige Liste 150 in einem Backup-Objekt speichern, um den Inhalt des vollständig bereitgestellten Datenträgers 140 zu repräsentieren, und auch (z. B. separat) eine Kopie jedes Chunks speichern, der durch jede Chunk-Signatur in der vollständigen Liste 150 repräsentiert wird, während versucht wird, die Speicherung doppelter Chunks (wie oben beschrieben) zu vermeiden.
  • Obwohl ein Großteil des Adressraums eines vollständig bereitgestellten Datenträgers (z. B. Datenträger 140) zu einem bestimmten Zeitpunkt nicht verwendet werden kann, kann die vollständige Liste 150 der Chunk-Signaturen immer noch proportional zur Größe des Datenträgers 140 sein, unabhängig davon, wie viel oder wenig des vollständig bereitgestellten Datenträgers 140 zum Speichern sinnvoller Daten verwendet wird (wie oben beschrieben), da es keine nicht zugewiesenen Teile des Datenträgers 140 gibt. Wenn ein späteres Backup des Volumes 140 durchgeführt wird, um Änderungen des Volumes 140 im Vergleich zu einem früheren Backup zu erfassen (d. h. ein inkrementelles Backup), kann es möglich sein, die Teile der vollständigen Liste 150 zu kopieren, die Daten darstellen, die sich seit dem früheren Backup nicht geändert haben, um ein synthetisches vollständiges Backup zu erzeugen.
  • Da die vollständige Liste 150 jedoch proportional zur Größe des vollständig bereitgestellten Datenträgers 140 ist (z. B. eine Chunk-Signatur für jeden 4-KB-Bereich des Datenträgers 140), unabhängig davon, wie viel des Datenträgers verwendet wird, um aussagekräftige Daten zu speichern, kann die Leistung eines solchen Vorgangs zur Erzeugung eines synthetischen vollständigen Backups relativ schlecht sein, insbesondere je weiter der bereitgestellte Datenträger 140 davon entfernt ist, vollständig gefüllt zu sein (d. h. an der Kapazität).
  • Um diese Probleme anzugehen, können die hier beschriebenen Beispiele eine dünne Liste erzeugen, indem sie aus der vollständigen Liste jede Chunk-Signatur auslassen, die mit einer Chunk-Signatur des definierten Datenmusters eines unbenutzten, vollständig bereitgestellten Volumes übereinstimmt, und können Verwendungs-Metadaten erzeugen, um die benutzten Teile des Volumes anzuzeigen, denen die Chunk-Signaturen in der dünnen Liste entsprechen. Indem die Thin-Liste und die Verwendungs-Metadaten in einem Backup-Objekt für einen vollständig bereitgestellten Datenträger und nicht in einer vollständigen Liste gespeichert werden, kann der Vorgang des Erstellens eines synthetischen vollständigen Backups auf der Grundlage der Thin-Liste effizienter sein als der Vorgang mit der vollständigen Liste. Beispielsweise kann die Thin-Liste eine Größe haben, die proportional zur Nutzung des vollständig bereitgestellten Datenträgers ist (z. B. eine Chunk-Signatur für jeden 4 KB großen Teil sinnvoller Daten) und nicht proportional zur Gesamtkapazität des vollständig bereitgestellten Datenträgers. Daher kann ein Vorgang zum Untersuchen der dünnen Liste von Chunk-Signaturen und zum Kopieren von Chunk-Signaturen unveränderter Regionen viel kürzer sein als die Durchführung eines ähnlichen Vorgangs auf einer vollständigen Liste für den vollständig bereitgestellten Datenträger.
  • Beispiele für die Erzeugung von Thin-Listen werden im Folgenden in Bezug auf die und beschrieben. Wie oben beschrieben, ist ein Blockdiagramm einer beispielhaften Computerumgebung 105 zum Erzeugen dünner Liste(n) von Chunk-Signaturen. ist ein Flussdiagramm eines Beispielverfahrens 200, das den Vergleich jeder Chunk-Signatur einer oder mehrerer voller Liste(n) mit einer Chunk-Signatur einer unbenutzten Region umfasst. Obwohl die Ausführung des Verfahrens 200 im Folgenden mit Bezug auf die Rechenvorrichtung 100 von beschrieben wird, können auch andere für die Ausführung des Verfahrens 200 geeignete Rechnersysteme verwendet werden (z. B. die Rechenvorrichtung 700 von usw.). Außerdem ist die Implementierung des Verfahrens 200 nicht auf solche Beispiele beschränkt.
  • Unter Bezugnahme auf die und können bei 210 des Verfahrens 200 Anweisungen 122 (z. B. von Backup-Agent-Anweisungen 121), wenn sie von mindestens einer Verarbeitungsressource 110 ausgeführt werden, einen Satz von Chunks 142 bestimmen, die den Dateninhalt eines gesamten Adressraums (z. B. ADD-00 - ADD-FF) des Volumes 140 des Computersystems 100 umfassen. Wie oben beschrieben, kann ein Deduplizierungssystem Chunks verwenden, um doppelte Datenbereiche in einer Datensammlung zu identifizieren. In einigen Beispielen können Chunks, die von einem Deduplizierungssystem verwendet werden, eine feste Größe haben (z. B. etwa 4 KB oder eine andere geeignete Größe), so dass alle Chunks die gleiche Größe haben (d. h. die feste Größe). In anderen Beispielen können Chunks, die von einem Deduplizierungssystem verwendet werden, eine variable Größe haben, so dass Chunks eine beliebige von verschiedenen Größen innerhalb eines Bereichs haben können, von einer minimalen Größe bis zu einer maximalen Größe.
  • In einigen Beispielen können die Anweisungen 122 einen „Chunking“-Prozess durchführen, um die Grenzen der festen oder variablen Chunks 142 für den gesamten Adressraum von Volume 140 zu bestimmen. In anderen Beispielen können die Anweisungen 122 die Grenzen der Chunks 142 für den Datenträger 140 festlegen, ohne Änderungen am Datenträger 140 vorzunehmen oder die Art und Weise zu ändern, in der die Daten im Datenträger 140 gespeichert werden. In anderen Beispielen kann ein anderes Gerät oder eine andere Anwendung den Chunking- oder Chunk-Definitionsprozess durchgeführt haben, und die Anweisungen 122 können die Chunks 142 des Datenträgers 140 bestimmen, indem sie auf zuvor generierte Informationen zugreifen, die die Chunks 142 des Datenträgers 140 angeben.
  • Bei 215 können die Anweisungen 124 eine oder mehrere vollständige Listen 150 von Chunk-Signaturen 154 erzeugen. In einigen Beispielen können die Befehle 124 eine einzelne vollständige Liste 150 von Chunk-Signaturen 154 für den gesamten Adressraum des Datenträgers 140 (d. h. von einer ersten Adresse ADD-00 bis zu einer letzten Adresse ADD-FF) erzeugen, wie im Beispiel von dargestellt, zur Verwendung bei der Sicherung von Daten des Datenträgers 140 zu einem bestimmten Zeitpunkt. In solchen Beispielen kann die vollständige Liste 150 den Dateninhalt des gesamten Adressraums von Datenträger 140 darstellen. In einigen Beispielen können Anweisungen zum Erzeugen der vollständigen Liste 150 die Daten jedes Chunks 142 des gesamten Adressraums des Volumens 140 lesen und eine Signaturfunktion an dem Chunk 142 ausführen, um eine entsprechende Chunk-Signatur 154 für jeden Chunk 142 des gesamten Adressraums zu erzeugen. In solchen Beispielen können die Anweisungen 124 die generierten Chunk-Signaturen 154 in der vollständigen Liste 150 speichern. Im Beispiel von werden einzelne Chunk-Signaturen mit den Referenzsymbolen SIG0-SIG6 und SIGX dargestellt, wobei Chunk-Signaturen mit unterschiedlichen Symbolen nach dem Präfix „SIG“ unterschiedliche Chunk-Signaturwerte anzeigen und Chunk-Signaturen mit demselben Symbol nach dem Präfix „SIG“ gleiche oder übereinstimmende Chunk-Signaturen anzeigen. Das Beispiel von ist vereinfacht und mit repräsentativen Chunks, Chunk-Signaturen usw. zu Erklärungszwecken dargestellt.
  • In anderen Beispielen (obwohl in nicht dargestellt) können die Befehle 124 eine Vielzahl von vollständigen Listen 150 von Chunk-Signaturen 154 erzeugen, wobei jede vollständige Liste 150 Chunk-Signaturen 154 für die Chunks 142 eines jeweiligen Teils des Adressraums des Volumens 140 umfasst. Die jeweiligen Teile des Adressraums, die durch die verschiedenen vollständigen Listen 150 repräsentiert werden, können beliebige geeignete Teile des Volumens 140 sein. Beispielsweise kann jeder Teil einen zusammenhängenden Bereich des Adressraums des Volumes 140 darstellen. In anderen Beispielen kann jeder Abschnitt mehrere disparate (d. h. diskontinuierliche) Bereiche des Adressraums des Volumens 140 umfassen, die im Adressraum des Volumens 140 nicht aneinander angrenzen. In solchen Beispielen können die eine oder mehrere vollständige Listen 150 gemeinsam den Dateninhalt des gesamten Adressraums des Volumes 140 repräsentieren. In den hier beschriebenen Beispielen bedeutet eine „vollständige“ Liste, dass die Liste für den Adressraum des Volumes, der durch die Liste repräsentiert wird, eine Chunk-Signatur für jeden Chunk des Adressraums enthält und keine auslässt. Eine vollständige Liste kann jedoch weniger als den gesamten Bereich eines gegebenen Volumes abdecken. In solchen Beispielen repräsentieren mehrere vollständige Listen gemeinsam den gesamten Adressraum des Volumes.
  • Bei 220 können die Anweisungen 122 bestimmen, ob das Volumen 140 des Computergeräts 100 vollständig bereitgestellt ist. In einigen Beispielen können die Anweisungen 122 auf der Grundlage von Konfigurationsinformationen des Computergeräts 100 bestimmen, dass das Volume 140 vollständig bereitgestellt ist. Zum Beispiel kann jedes Volume des Computergeräts 100 mit Typinformationen verknüpft sein, die angeben, ob das Volume ein vollständig bereitgestelltes (d. h. „dickes“) Volume oder ein dünn bereitgestelltes (oder „dünnes“) Volume ist. In solchen Beispielen können die Anweisungen 122 bestimmen, dass der Datenträger 140 ein vollständig bereitgestellter Datenträger 140 ist, basierend auf den Typinformationen, die dem Datenträger 140 zugeordnet sind und anzeigen, dass er vollständig bereitgestellt ist.
  • In anderen Beispielen können die Anweisungen 122 bestimmen, dass das Volume 140 auf der Grundlage der generierten vollständigen Liste(n) 150 ein vollständig bereitgestelltes Volume ist. Beispielsweise können die Anweisungen 122 feststellen, dass der Datenträger 140 ein vollständig bereitgestellter Datenträger ist, basierend auf der/den generierten vollständigen Liste(n) 150, die eine Anzahl von Chunk-Signaturen 154 enthält, die mit der Gesamtgröße des Datenträgers 140 korreliert (z. B. proportional dazu ist), da dies ein erkennbares Merkmal vollständig bereitgestellter Datenträger sein kann. In anderen Beispielen können die Anweisungen 122 feststellen, dass es sich bei Volume 140 um ein vollständig bereitgestelltes Volume handelt, indem sie feststellen, dass es einen bestimmten Chunk-Signaturwert gibt, der viel häufiger vorkommt als alle anderen Chunk-Signaturen, was darauf hinweisen kann, dass es sich um die Chunk-Signatur für das Datenmuster des unbenutzten Bereichs eines vollständig bereitgestellten Volumes handelt.
  • Um die Größe der Chunk-Signaturlisten für vollständig bereitgestellte Volumes zu reduzieren, können die Anweisungen 121 des Backup-Agenten in einigen Beispielen Chunk-Signaturen von Chunks mit einem Datenmuster einer unbenutzten Region für das vollständig bereitgestellte Volume auslassen. In solchen Beispielen können die Anweisungen 121 eine Chunk-Signatur für einen Chunk einer unbenutzten Region bestimmen, alle solchen Chunk-Signaturen 154 in der/den vollen Liste(n) 150 identifizieren und 184 dünne Liste(n) 162 erzeugen, die diese Chunk-Signaturen aus der/den vollen Liste(n) 150 auslassen. Beispiele werden im Folgenden näher beschrieben.
  • Im weiteren Verlauf des Verfahrens 200, bei 225, können die Anweisungen 122 eine Chunk-Signatur für unbenutzte Regionen 130 bestimmen, deren Wert im Beispiel von durch „SIGX“ dargestellt wird. In einigen Beispielen können die Anweisungen 122 die Chunk-Signatur 130 für den unbenutzten Bereich (mit einem Wert SIGX) erzeugen, indem sie eine Signaturfunktion auf eine Sammlung von Daten anwenden, die einem Chunk eines unbenutzten Bereichs eines vollständig bereitgestellten Volumes eines Computergeräts entspricht. In einigen Beispielen kann ein Datenmuster aus allen Nullen (d. h. ausschließlich Nullen) anfänglich an allen Stellen eines vollständig bereitgestellten Volumes gespeichert werden (z. B. als Teil eines Initialisierungsprozesses). In solchen Beispielen kann eine Sammlung von Daten in Chunk-Größe, die aus lauter Nullen besteht, einem Chunk einer unbenutzten Region eines vollständig bereitgestellten Volumes 140 entsprechen, und die Anweisungen 122 können eine Chunk-Signatur 130 für eine unbenutzte Region (mit einem Wert SIGX) erzeugen, indem sie eine Signaturfunktion auf die Sammlung in Chunk-Größe, die ausschließlich aus Nullen besteht, anwenden. In Beispielen, in denen Chunks mit fester Größe verwendet werden, können die Anweisungen 122 die Signatur 130 für unbenutzte Regionschunks erzeugen, indem sie eine Signaturfunktion auf eine Sammlung aller Nullen mit fester Chunk-Größe (z. B. 4 KB) anwenden. In Beispielen, in denen Chunks mit variabler Größe verwendet werden, können die Anweisungen 122 die Signatur 130 für unbenutzte Regionschunks erzeugen, indem sie eine Signaturfunktion auf eine Sammlung aller Nullen mit der maximalen Chunk-Größe anwenden.
  • In anderen Beispielen kann ein anderes Datenmuster in ungenutzten Bereichen eines vollständig bereitgestellten Volumes gespeichert werden. Beispielsweise kann eine bestimmte Anwendung, die ein vollständig bereitgestelltes Volume verwendet, ein anwendungsspezifisches Muster aus Nullen und/oder Einsen (d. h. anders als alle Nullen) in ungenutzten Bereichen des vollständig bereitgestellten Volumes speichern. In solchen Beispielen können die Anweisungen 122 eine Signaturfunktion auf eine (feste oder maximal variable) Sammlung von Daten in Chunk-Größe mit dem anwendungsspezifischen Datenmuster anwenden, um die Chunk-Signatur 130 für unbenutzte Bereiche (mit einem Wert SIGX) zu bestimmen.
  • Als Reaktion auf die Feststellung, dass der Datenträger 140 ein vollständig bereitgestellter Datenträger ist, kann die Anweisung 121 dünne Liste(n) 162 und Verwendungsmetadaten 166 für den Datenträger 140 auf der Grundlage der vollständigen Liste(n) 150 erzeugen. In solchen Beispielen kann die Anweisung 126 bei 230 des Verfahrens 200 jede Chunk-Signatur der vollständigen Liste(n) 150 mit der generierten Chunk-Signatur 130 für unbenutzte Regionen (mit dem Wert SIGX) vergleichen. In solchen Beispielen können die Anweisungen 126 feststellen, dass jede Chunk-Signatur 154 der vollständigen Liste(n) 150, die mit der Chunk-Signatur 130 für den unbenutzten Bereich übereinstimmt, einen Chunk 142 eines unbenutzten Bereichs des Volumens 140 darstellt (oder der einem Chunk 142 eines unbenutzten Bereichs des Volumens 140 entspricht). In den hier beschriebenen Beispielen können die Anweisungen 121 auf der Grundlage der Vergleiche dünne Liste(n) 162 erzeugen, die jede Chunk-Signatur 154 enthalten, die nicht mit der Chunk-Signatur 130 für den unbenutzten Bereich übereinstimmt, und jede Chunk-Signatur 154 weglassen, die mit der Chunk-Signatur 130 für den unbenutzten Bereich übereinstimmt. Ebenfalls auf der Grundlage der Vergleiche können die Anweisungen 121 Verwendungsmetadaten erzeugen, die für jeden Chunk des Volumens 140 angeben, ob der Chunk einen Bereich des Volumens 140 repräsentiert, der als verwendet oder als nicht verwendet bestimmt wurde.
  • Beispiele werden hier in Bezug auf Elemente von beschrieben, einschließlich vollständig bereitgestellter Datenträger 140 (mit Chunks 142) und vollständiger Liste(n) 150 (mit Chunk-Signaturen 154). Im Beispiel von ist jeder dargestellte Chunk 142 für einen benutzten Bereich des Volumens 140 (d. h., der sinnvolle Daten enthält) in mit einem „U“ gekennzeichnet (d. h., für einen „benutzten“ Bereich), und jeder dargestellte Chunk 142 für einen unbenutzten Bereich des Volumens 140 (d. h., der das Datenmuster für unbenutzte Bereiche enthält) ist in mit einem „N“ gekennzeichnet (d. h., für einen „unbenutzten“ Bereich). Im Beispiel von sind die Chunk-Signaturen 154 in der/den vollständigen Liste(n) 150 für einige der in dargestellten Chunks 142 dargestellt. Zum Beispiel repräsentieren die Chunk-Signaturen SIG1, SIG2 und SIG3 in der/den vollständigen Liste(n) 150 einige der mit „U“ markierten Chunks in der ersten illustrierten Reihe von Chunks 142, die Chunk-Signaturen SIGX einige der mit „N“ markierten Chunks in der zweiten und dritten illustrierten Reihe von Chunks 142, und die Chunk-Signaturen SIG6, SIG5 und SIG4 repräsentieren einige der mit „U“ markierten Chunks in der dritten illustrierten Reihe von Chunks 142.
  • In einigen Beispielen kann die Anweisung 126 durch jede Chunk-Signatur 154 der vollständigen Liste(n) 150 gehen und für jede Chunk-Signatur 154 kann die Anweisung 126 bei 235 feststellen, ob die Chunk-Signatur 154 mit der Chunk-Signatur 130 für eine unbenutzte Region (mit dem Wert SIGX) übereinstimmt (d. h. gleich oder äquivalent ist). Wenn nicht, dann kann das Verfahren 200 mit 240 fortfahren, wo die Anweisungen 126 die Chunk-Signatur 154 zu einer der dünnen Liste(n) 162 hinzufügen können, und bei 245 können die Anweisungen 126 eine benutzte Region des vollständig bereitgestellten Datenträgers 140 in den Nutzungsmetadaten (wie z. B. einer Nutzungskarte 166) für die Region (z. B. Chunk 142) des Datenträgers 140 angeben, die der aktuellen, nicht übereinstimmenden Chunk-Signatur 154 entspricht. Zurück zu 235: Wenn die Chunk-Signatur 154 mit der Chunk-Signatur 130 für einen unbenutzten Bereich (mit dem Wert SIGX) übereinstimmt, kann das Verfahren 200 mit 250 fortfahren, wo die Anweisungen 126 die Chunk-Signatur 154 aus der/den dünnen Liste(n) 162 auslassen können, und bei 255 können die Anweisungen 126 einen unbenutzten Bereich eines vollständig bereitgestellten Datenträgers 140 in den Nutzungs-Metadaten (z.B. einer Nutzungskarte 166) für den Bereich (d.h. Chunk 142) des Datenträgers 140 anzeigen, der der aktuellen, passenden Chunk-Signatur 154 entspricht.
  • Das Verfahren 200 kann entweder von 245 oder 255 zu 260 weitergehen, und bei 260 können die Anweisungen 126 bestimmen, ob es weitere Chunk-Signaturen gibt, die mit der Chunk-Signatur 130 der unbenutzten Region verglichen werden müssen, entweder in derselben vollständigen Liste 150 oder in einer anderen vollständigen Liste 150. Wenn dies der Fall ist, kann die Anweisung 126 bei 265 zur nächsten Chunk-Signatur 154 gehen (d. h. in derselben vollständigen Liste 150 oder in einer nächsten der vollständigen Liste(n) 150) und dann zu 235 für den Vergleich der nächsten Chunk-Signatur 154 zurückkehren. In solchen Beispielen können die Anweisungen 126 für das vollständig bereitgestellte Volume 140 Thin-List-Backup-Informationen 160 erzeugen, die eine oder mehrere Thin-Listen 162 und Nutzungsmetadaten 166 enthalten.
  • Zurück zu 260: Sobald es keine weiteren Chunk-Signaturen 154 gibt, die mit der Chunk-Signatur 130 der unbenutzten Region verglichen werden müssen, entweder in derselben vollständigen Liste 150 oder in einer anderen vollständigen Liste 150, kann das Verfahren 200 mit 270 fortfahren, wo die Anweisungen 128 das Deduplizierungs-Backup-System 170 veranlassen können, ein oder mehrere Thin-List-Backup-Objekte 172 für den vollständig bereitgestellten Datenträger 140 zu speichern, wobei das/die Thin-List-Backup-Objekt(e) 172 die eine oder die mehreren Thin-List(s) 162 und die Verwendungs-Metadaten 166 enthält/enthalten, die von der einen oder den mehreren vollständigen Liste(n) 150 erzeugt wurden.
  • Wie oben beschrieben, können die Anweisungen 126 die vollständige(n) Liste(n) 150 durchlaufen, um jede Chunk-Signatur 154 mit der Chunk-Signatur 130 für den unbenutzten Bereich zu vergleichen, wie oben beschrieben. Im Beispiel von können die Anweisungen 126 nach mehreren Iterationen bei der Chunk-Signatur SIG1 der vollständigen Liste(n) 150 ankommen, die einen der mit „U“ markierten Chunks 142 in der oberen Reihe der in dargestellten Chunks 142 darstellt. In solchen Beispielen kann die Anweisung 126 (bei 235) diese Chunk-Signatur SIG1 mit der Chunk-Signatur 130 (SIGX) des unbenutzten Bereichs vergleichen und bei 235 feststellen, dass sie nicht übereinstimmen. Basierend auf dieser Feststellung kann die Anweisung 126 die Chunk-Signatur SIG1 in einer der dünnen Liste(n) 162 speichern (bei 240) und (bei 245) in den Verwendungsmetadaten angeben, dass der Chunk, der dieser Instanz der Chunk-Signatur SIG1 entspricht, einen verwendeten Bereich des Volumens 140 repräsentiert (z. B. durch Speichern einer 1 in der Verwendungsübersicht 166 an einer Stelle, die dem Bereich des Volumens 140 entspricht, der durch diese Chunk-Signatur SIG1 repräsentiert wird). Dieser Prozess kann mit den nächsten Chunk-Signaturen in der/den vollständigen Liste(n) 150 fortgesetzt werden, einschließlich der Chunk-Signaturen SIG2 und SIG3, von denen die Anweisungen 126 feststellen können, dass sie nicht mit der Chunk-Signatur 130 (SIGX) für den unbenutzten Bereich übereinstimmen. In solchen Beispielen können die Anweisungen 126 die Chunk-Signaturen SIG2 und SIG3 in die dünne(n) Liste(n) 162 kopieren (wie im Beispiel von gezeigt) und die entsprechenden Regionen als im Datenträger 140 verwendet kennzeichnen (z. B. durch Speichern von Werten von 1 in der ersten dargestellten Zeile der Verwendungsübersicht 166).
  • Der Prozess kann dann mit der nächsten Chunk-Signatur in der/den vollständigen Liste(n) 150 fortfahren, die eine Chunk-Signatur mit einem Wert SIGX sein kann (wie in gezeigt). In solchen Beispielen können die Anweisungen 126 die angetroffene Chunk-Signatur SIGX mit der Chunk-Signatur 130 (SIGX) der unbenutzten Region (bei 235) vergleichen und feststellen, dass sie übereinstimmen (z. B., dass sie denselben Wert haben, dargestellt durch „SIGX“). Auf diese Weise können die Anweisungen 126 den Bereich, der durch die Chunk-Signatur SIGX repräsentiert wird, als einen unbenutzten Bereich des Volumens 140 identifizieren (z. B. in durch einen der mit „N“ markierten Chunks 142 in der zweiten Reihe der Chunks 142 von dargestellt). Basierend auf dieser Feststellung kann die Anweisung 126 die Chunk-Signatur SIGX aus der/den Thin-Liste(n) 162 (bei 250) auslassen (z. B. wird SIGX nach SIG3 in der/den Thin-Liste(n) 162 von ausgelassen), und (bei 255) kann die Anweisung 126 in den Verwendungs-Metadaten angeben, dass der Chunk, der dieser Instanz der Chunk-Signatur SIGX entspricht, einen unbenutzten Bereich des Volumens 140 darstellt (z. B. durch Speichern einer 0 in der Verwendungs-Map 166 an einer Stelle, die dem Bereich des Volumens 140 entspricht, der durch diese Chunk-Signatur SIGX dargestellt wird). Dieser Prozess kann mit den nächsten Chunk-Signaturen in der/den vollständigen Liste(n) 150 fortgesetzt werden, einschließlich einer Sequenz von Chunk-Signaturen, die alle den Wert SIGX haben (dargestellt in der/den vollständigen Liste(n) 150 von ), wobei die Anweisungen 126 feststellen können, dass sie mit der Chunk-Signatur 130 (SIGX) für den unbenutzten Bereich übereinstimmen. Diese Sequenz von Chunk-Signaturen SIGX kann einem Durchlauf unbenutzter Regionen des vollständig bereitgestellten Volumens 140 von entsprechen, dargestellt durch den Durchlauf von Chunks 142 mit dem Wert „N“, wie dargestellt. In solchen Beispielen können die Anweisungen 126 jede der Chunk-Signaturen SIGX auf der Grundlage der Vergleiche auslassen und ihre entsprechenden Bereiche des Volumens 140 als unbenutzt kennzeichnen (z. B. durch Speichern von Werten von 0 in der zweiten und dritten dargestellten Zeile der Verwendungsübersicht 166).
  • Der Prozess kann dann mit der Chunk-Signatur SIG6 der vollständigen Liste(n) 150 fortfahren, die einen der mit „U“ markierten Chunks 142 in der dritten Reihe von Chunks 142 in darstellt. Die Anweisungen 126 können diese Chunk-Signatur SIG6 mit der Chunk-Signatur der unbenutzten Region 130 (SIGX) vergleichen und bei 235 feststellen, dass sie nicht übereinstimmen. Basierend auf dieser Feststellung können die Anweisungen 126 die Chunk-Signatur SIG6 in einer der dünnen Liste(n) 162 (bei 240) speichern, die auf die Chunk-Signatur SIG3 (wie in dargestellt) folgt, die die vorherige Chunk-Signatur vor der dargestellten Sequenz von SIGX-Chunk-Signaturen („N“ Chunks 142 des Volumens 140) war. Die Anweisungen 126 können auch (wie 245) in den Verwendungsmetadaten anzeigen, dass der Chunk, der der Chunk-Signatur SIG6 entspricht, einen verwendeten Bereich des Volumens 140 darstellt (z. B. durch Speichern einer 1 an einer entsprechenden Stelle von). Dieser Prozess kann mit den nächsten Chunk-Signaturen in der/den vollen Liste(n) 150 fortgesetzt werden, einschließlich der Chunk-Signaturen SIG5 und SIG6, von denen die Anweisungen 126 feststellen können, dass sie nicht mit der Chunk-Signatur 130 (SIGX) für den unbenutzten Bereich übereinstimmen, so dass die Anweisungen 126 die Chunk-Signaturen SIG5 und SIG6 in die dünne(n) Liste(n) 162 (wie in gezeigt) kopieren und die entsprechenden Regionen als im Datenträger 140 verwendet anzeigen können (z. B. durch Speichern von Werten von 1 in der dritten illustrierten Zeile der Verwendungsübersicht 166).
  • Auf diese Weise können die hier beschriebenen Beispiele jede Chunk-Signatur, die nicht mit der Chunk-Signatur 130 (SIGX) für eine unbenutzte Region übereinstimmt, von der/den vollen Liste(n) 150 in die dünne(n) Liste(n) 162 kopieren und jede Chunk-Signatur, die mit der Chunk-Signatur 130 (SIGX) für eine unbenutzte Region übereinstimmt, aus der/den dünnen Liste(n) 162 auslassen und für jede Chunk-Signatur (in den Verwendungsmetadaten) angeben, ob die Region des vollständig bereitgestellten Volumes 140, die sie repräsentiert, eine benutzte oder unbenutzte Region ist. In solchen Beispielen können die Anweisungen 121 aus der/den dünnen Liste(n) 162 alle Chunk-Signaturen der vollständigen Liste(n) 150 auslassen, die mit der Chunk-Signatur 130 (SIGX) für eine unbenutzte Region übereinstimmen, und die jeweiligen Orte dieser Regionen, die als unbenutzt bestimmt wurden, in den Verwendungsmetadaten für das Volume 140 angeben, wie z. B. eine Verwendungsübersicht 166. Auf diese Weise können die hier beschriebenen Beispiele die Größe der Chunk-Signaturliste(n) für ein vollständig bereitgestelltes Volume von der/den vollen Liste(n) mit einer kollektiven Größe proportional zur Gesamtgröße (z. B. der maximalen Kapazität) des vollständig bereitgestellten Volumes auf dünne Liste(n) mit einer kollektiven Größe proportional zur Nutzung des vollständig bereitgestellten Volumes und der Nutzungsmetadaten reduzieren.
  • In einigen Beispielen können die Verwendungsmetadaten eine Verwendungskarte 166 umfassen, die eine Datenstruktur zum Speichern von Daten für jeden Bereich des vollständig bereitgestellten Datenträgers 140 umfassen kann, der durch eine entsprechende Chunk-Signatur 154 dargestellt wird. Im Beispiel von können die Verwendungsmetadaten beispielsweise eine Verwendungskarte 166 umfassen, die eine Bitmap enthalten kann, um eine Eins für jeden als verwendet ermittelten Chunk 142 des Volumens 140 und eine Null für jeden als ungenutzt ermittelten Chunk 142 des Volumens 140 zu speichern, wie oben beschrieben. Im Beispiel von entspricht der dargestellte Teil der Verwendungskarte 166 dem dargestellten Teil der Chunks 142 des Volumens 140, wobei jeder Chunk 142 eines benutzten Bereichs (mit „U“ gekennzeichnet) eine entsprechende Eins in der Verwendungskarte 166 hat und jeder Chunk 142 eines unbenutzten Bereichs (mit „N“ gekennzeichnet) eine entsprechende Null in der Verwendungskarte 166 hat. In anderen Beispielen kann die Usage Map 166 auf jede andere geeignete Weise implementiert werden.
  • In anderen Beispielen können die Nutzungsmetadaten auf jede andere geeignete Weise implementiert werden. Beispielsweise können die Verwendungsmetadaten anstelle einer Verwendungskarte, z. B. einer Bitmap, Bereiche (z. B. Adressbereiche) des Datenträgers 140 angeben, die verwendet werden, und die Bereiche des Datenträgers 140 weglassen, die als unbenutzt ermittelt wurden. In solchen Beispielen können die verwendeten Bereiche explizit angegeben werden und die Bereiche anzeigen, für die Chunk-Signaturen in der/den Thin-Liste(n) 162 enthalten sind. In solchen Beispielen können die verwendeten Regionen in Adressreihenfolge angegeben werden, und die Chunk-Signaturen können ebenfalls in Adressreihenfolge enthalten sein, so dass die vollständige Liste in der korrekten Reihenfolge aus der expliziten Angabe von Bereichen und den in Reihenfolge angeordneten Chunk-Signaturen der verwendeten Regionen bestimmt werden kann. In solchen Beispielen kann es keine explizite Angabe der unbenutzten Bereiche geben, die aus den Lücken in den als benutzt angegebenen Bereichen gefolgert werden können. In anderen Beispielen können die unbenutzten Bereiche auch explizit angegeben werden.
  • Wie oben beschrieben, können die Anweisungen 124 eine Vielzahl von vollständigen Listen 150 erzeugen, jede für einen entsprechenden (zusammenhängenden oder nicht zusammenhängenden) Teil des Adressraums des vollständig bereitgestellten Datenträgers 140. In solchen Beispielen können die Anweisungen 126 für jede der vollen Listen 150 eine entsprechende dünne Liste 162 und Nutzungsmetadaten erzeugen, wie oben beschrieben. Beispielsweise können die Anweisungen 124 für jede vollständige Liste 150 jede Chunk-Signatur 154 der vollständigen Liste 150 mit der Chunk-Signatur 130 für den unbenutzten Bereich vergleichen, Verwendungsmetadaten 166 erzeugen, um die benutzten Bereiche des vollständig bereitgestellten Datenträgers 140 anzuzeigen, und eine entsprechende dünne Liste aus der vollständigen Liste erzeugen, wobei alle Chunk-Signaturen 154 aus der vollständigen Liste 150 weggelassen werden, die mit der Chunk-Signatur 130 für den unbenutzten Bereich übereinstimmen. In solchen Beispielen kann jede der dünnen Listen 162 (und ihre entsprechenden Verwendungsmetadaten) denselben jeweiligen Teil des Volumes 140 repräsentieren wie die vollständige Liste 150, von der sie abgeleitet wurde.
  • In solchen Beispielen können die Anweisungen 126 für den vollständig bereitgestellten Datenträger 140 Thin-List-Backup-Informationen 160 erzeugen, die eine oder mehrere Thin-Lists 162 und Nutzungsmetadaten 166 enthalten. Wie oben beschrieben, wenn die Anweisungen 126 bei 260 feststellen, dass es keine weiteren Chunk-Signaturen 154 der vollen Liste(n) 150 gibt, die mit der Chunk-Signatur 130 der unbenutzten Region zu vergleichen sind (d. h. „NO“ bei 260), kann das Verfahren 200 mit 270 fortfahren, wo die Anweisungen 128 das Deduplizierungssystem 170 veranlassen können, ein oder mehrere Sicherungsobjekte 172 der dünnen Liste für den vollständig bereitgestellten Datenträger 140 zu speichern. In solchen Beispielen können die Thin-List-Backup-Objekte 172 die Thin-List(s) 162 und die Nutzungsmetadaten enthalten, die aus der/den Full-List(s) 150 erzeugt wurden, wie oben beschrieben.
  • In einigen Beispielen können die Anweisungen 128 das Deduplizierungssystem 170 veranlassen, ein separates Thin-List-Backup-Objekt 172 für jede Thin-List 162 zu speichern, die für das vollständig bereitgestellte Volume 140 erzeugt wurde, sowie ein separates Thin-List-Backup-Objekt 172 für jeden Satz von Nutzungsmetadaten 166, die einer der Thin-List(s) 162 entsprechen. In anderen Beispielen kann jedes Thin-List-Backup-Objekt 172 eine entsprechende Thin-List 162 und Nutzungsmetadaten 166 umfassen, die dieser Thin-List 162 entsprechen.
  • Wie oben beschrieben, können in einigen Beispielen die Anweisungen des Backup-Agenten 121 von einem Computergerät 100 (z. B. einem primären Speicherarray), vom Deduplizierungssystem 170 oder von einem anderen Computergerät (z. B. einem Server) ausgeführt werden, das von dem Computergerät 100 und dem Deduplizierungssystem 170 getrennt ist und mit diesen kommuniziert (z. B. über ein oder mehrere Computernetzwerke). Im Beispiel von kann das Computergerät 100 die Anweisungen des Backup-Agenten 121 ausführen. In solchen Beispielen können die Anweisungen 128 das Deduplizierungssystem 170 veranlassen, das/die Thin-List-Backup-Objekt(e) 172 zu speichern, indem es dem Deduplizierungssystem 170 Thin-List-Backup-Informationen 160 (einschließlich Thin-List(s) 162 und Verwendungsmetadaten 166 für jede) bereitstellt, wie in gezeigt. In solchen Beispielen können die Anweisungen 128 die Informationen 160 mit geeigneten Befehlen oder Anweisungen an das Deduplizierungssystem 170 bereitstellen, um die Komponenten der Thin-List-Backup-Informationen 160 in Thin-List-Backup-Objekt(en) 172 zu speichern, wie oben beschrieben.
  • In anderen Beispielen, wenn die Backup-Agent-Anweisungen 121 von einem separaten Computergerät ausgeführt werden (einschließlich der Erzeugung der Thin-Liste(n) und der Verwendungs-Metadaten), können die Anweisungen 128 des separaten Computergeräts in ähnlicher Weise das Deduplizierungssystem 170 veranlassen, das/die Thin-Listen-Backup-Objekt(e) 172 zu speichern, indem Thin-Listen-Backup-Informationen 160 (einschließlich Thin-Liste(n) 162 und Verwendungs-Metadaten 166 für jede) an das Deduplizierungssystem 170 geliefert werden, wie in gezeigt. In anderen Beispielen, wenn die Anweisungen 121 des Backup-Agenten vom Deduplizierungssystem 170 ausgeführt werden (einschließlich der Erzeugung der Thin-Liste(n) und der Verwendungs-Metadaten), veranlassen die Anweisungen 128 das Deduplizierungssystem 170, das/die Thin-Listen-Backup-Objekt(e) 172 zu speichern, indem es diese Thin-Listen-Backup-Objekte 172 direkt im Deduplizierungssystem 170 erzeugt und speichert oder indem es eine andere Komponente (z. B. Agent, Anweisungen, Funktionalität usw.) des Deduplizierungssystems 170 veranlasst, diese Thin-Listen-Backup-Objekte 172 zu erzeugen und im Speicher des Deduplizierungssystems 170 zu speichern.
  • In einigen Beispielen vergleicht das Deduplizierungssystem 170 die Chunk-Signaturen 164 der Thin-Liste(n) 162 mit Chunk-Signaturen für Chunks, die bereits auf dem Deduplizierungssystem 170 gespeichert sind, basierend auf den Thin-List-Backup-Informationen 160 für das vollständig bereitgestellte Volume 140. In solchen Beispielen kann das Deduplizierungssystem 170 für jede Chunk-Signatur 164, für die das Deduplizierungssystem 170 keine passende Chunk-Signatur für einen bereits auf dem Deduplizierungssystem 170 gespeicherten Chunk findet, das Computergerät 100 auffordern, den Chunk zur Speicherung auf dem Deduplizierungssystem 170 bereitzustellen. Für jede Chunk-Signatur 164, für die das Deduplizierungssystem 170 eine Übereinstimmung findet (was bedeutet, dass der entsprechende Chunk bereits auf dem Deduplizierungssystem 170 gespeichert ist), fordert das Deduplizierungssystem 170 diesen Chunk nicht vom Computergerät 100 an.
  • Beispiele für inkrementelle Sicherungen, synthetische vollständige Sicherungen und die Wiederherstellung für einen vollständig bereitgestellten Datenträger werden im Folgenden in Bezug auf die beschrieben. ist ein Blockdiagramm, das andere Funktionalitäten der Beispiel-Rechenumgebung 105 von zeigt. ist ein Flussdiagramm eines Beispielverfahrens 400, das die Erzeugung von Differenz-Chunk-Signaturen 364 umfasst. In dem in dargestellten Beispiel kann die Computerumgebung 105 wie in Bezug auf beschrieben sein, einschließlich des Computergeräts 100 und des Deduplizierungssystems 170, wie in Bezug auf beschrieben. Im Beispiel von umfasst das Deduplizierungssystem 170 eine oder mehrere Verarbeitungsressourcen und mindestens ein maschinenlesbares Speichermedium 320, das Anweisungen 322 umfasst, die von der einen oder den mehreren Verarbeitungsressourcen 310 ausgeführt werden können, um die hier in Bezug auf das Deduplizierungssystem 170 beschriebenen Funktionalitäten durchzuführen (z. B. in Bezug auf die Beispiele von und usw.).
  • In einigen Beispielen kann nach einer anfänglichen und vollständigen Sicherung des vollständig bereitgestellten Datenträgers 140 zu einem ersten Zeitpunkt (z. B. repräsentiert durch das/die Thin-List-Backup-Objekt(e) 172 des Deduplizierungssystems 170) ein inkrementeller Sicherungsprozess von der Computerumgebung 105 durchgeführt werden, um den Inhalt des vollständig bereitgestellten Datenträgers 140 zu einem zweiten Zeitpunkt, der später als der erste Zeitpunkt liegt, im Deduplizierungssystem 170 zu sichern. Dieser inkrementelle Sicherungsprozess kann auf der Grundlage der Unterschiede im Dateninhalt des vollständig bereitgestellten Datenträgers 140 zu dem zweiten Zeitpunkt relativ zu dem ersten Zeitpunkt durchgeführt werden.
  • In solchen Beispielen können die Anweisungen 121 bei 410 des Verfahrens 400 die Chunks 142 des vollständig bereitgestellten Volumens 140 bestimmen, die sich zum zweiten Zeitpunkt relativ zum früheren ersten Zeitpunkt unterscheiden. Im Beispiel von sind beispielsweise die Chunks 142, die sich zum zweiten Zeitpunkt seit dem ersten Zeitpunkt unterscheiden (z. B. die beschrieben wurden), mit einem „D“ (d. h. für „different“) gekennzeichnet. In solchen Beispielen kann es effizient sein, nur die Unterschiede im Datenträger 140 relativ zum ersten Zeitpunkt zu sichern, anstatt den gesamten Datenträger 140 erneut zu sichern, da bereits eine Sicherung des Inhalts von Datenträger 140 zum ersten Zeitpunkt vorliegt. Die Unterschiede im Datenträger 140 zum zweiten Zeitpunkt können auf verschiedene Weise ermittelt werden. Beispielsweise können die Anweisungen 121 (oder andere Anweisungen des Computergeräts 100) die Schreibvorgänge auf Volume 140 seit der letzten Sicherung (z. B. seit dem ersten Zeitpunkt) verfolgen. In anderen Beispielen können Anweisungen des Computergeräts 100 Schnappschüsse des Inhalts von Volume 140 erstellen, einschließlich eines Schnappschusses zum ersten Zeitpunkt und eines weiteren Schnappschusses zum zweiten Zeitpunkt, und diese Schnappschüsse vergleichen, um die Unterschiede zu bestimmen.
  • Bei 415 können die Anweisungen 121 Differenz-Metadaten 366 erhalten (z. B. zugreifen, generieren usw.), die die jeweiligen Positionen in dem vollständig bereitgestellten Volumen 140 von jedem der Chunks 142 angeben, die sich zum zweiten Zeitpunkt relativ zum ersten Zeitpunkt unterscheiden. In einigen Beispielen können die Anweisungen 121 auf solche Differenz-Metadaten 366 zugreifen, die durch Anweisungen des Computergeräts 100 erzeugt werden, die entsprechende Schnappschüsse des Volumens 140 zu den ersten und zweiten Zeitpunkten vergleichen. In anderen Beispielen können die Anweisungen 121 die Differenz-Metadaten 366 erzeugen, um die Änderungen des Volumens 140 zwischen dem ersten und dem zweiten Zeitpunkt auf der Grundlage des Vergleichs der jeweiligen Schnappschüsse oder auf jede andere geeignete Weise darzustellen. In einigen Beispielen können die Differenzmetadaten 366 eine Differenzkarte 366 (z. B. eine Bitmap) enthalten, die für jeden Chunk 142 des Volumens 140 entweder anzeigt, dass der Chunk zum zweiten Zeitpunkt relativ zum ersten Zeitpunkt unterschiedlich ist (z. B. angezeigt durch eine „1“ in ) oder dass der Chunk zum zweiten Zeitpunkt relativ zum ersten Zeitpunkt nicht unterschiedlich ist (z. B. angezeigt durch eine „0“ in ). In dem in dargestellten Beispiel umfasst die Differenzkarte 366 beispielsweise eine „1“ an jeder Stelle, die einem Chunk 142 entspricht, der sich zum zweiten Zeitpunkt unterscheidet (d. h. die mit einem „D“ markierten Chunks 142).
  • Bei 420 können die Anweisungen 121 Differenz-Chunk-Signaturen 364 erzeugen, die eine jeweilige Chunk-Signatur für jeden der Chunks 142 umfassen, der sich zum zweiten Zeitpunkt relativ zum ersten Zeitpunkt unterscheidet. In können die Differenz-Chunk-Signaturen 364 beispielsweise die Chunk-Signaturen SIG6-SIG9 umfassen, einschließlich einer jeweiligen Differenz-Chunk-Signatur 364 für jeden der verschiedenen („D“) Chunks 142 des Volumens 140. In einigen Beispielen können die Differenz-Metadaten 366 in einer definierten Reihenfolge angeordnet sein (z. B. in der Reihenfolge der Adressen), so dass die Orte, denen die Metadaten entsprechen, leicht bestimmt werden können.
  • Ein Beispiel für die Erzeugung von synthetischen Thin-Backup-Objekten 374 wird im Folgenden in Bezug auf die und beschrieben. ist ein Flussdiagramm eines Beispielverfahrens 500, das die Erzeugung eines synthetischen Thin-Backup-Objekts bzw. synthetischer Thin-Backup-Objekte 374 umfasst. Bei 505 des Verfahrens 500 können die Anweisungen 121 die Nutzungskarte 166 von dem/den Thin-List-Backup-Objekt(en) 172 zum Vergleich mit den Differenz-Metadaten 366 abrufen (oder anderweitig darauf zugreifen). Bei 510 können die Anweisungen 121 die zugegriffenen Nutzungs-Metadaten 166 (z. B. Nutzungs-Map 166) des/der Thin-List-Backup-Objekts/e 172 mit den Differenz-Metadaten 366 (z. B. Differenz-Map 366) vergleichen, die dem Datenträger 140 zu dem zweiten Zeitpunkt entsprechen. Bei 515 können die Anweisungen 121 neue Verwendungs-Metadaten 376 (z. B. eine Verwendungs-Map 376) erzeugen, die in synthetischen Thin-Backup-Objekten 374 zu speichern sind, zumindest teilweise basierend auf dem Vergleich der Verwendungs-Metadaten 166 und der Differenz-Metadaten 366. Bei 520 können die Anweisungen 121 eine oder mehrere synthetische Thin-Liste(n) 372 von Chunk-Signaturen 377 erzeugen, die in synthetischen Thin-Backup-Objekten 374 zu speichern sind, basierend auf dem Vergleich der Nutzungsmetadaten 166 und der Differenzmetadaten 366, der Thin-Liste(n) 162 und der Differenz-Chunk-Signaturen 364.
  • In solchen Beispielen können die Befehle 121 das Deduplizierungssystem 170 veranlassen, ein oder mehrere neue(s) Thin-List-Backup-Objekt(e) 374 zu speichern, um die neuen Nutzungsmetadaten 376 und die synthetische(n) Thin-List(s) 372 zu speichern, um ein vollständiges Backup des vollständig bereitgestellten Datenträgers 140 zum zweiten Zeitpunkt darzustellen. In solchen Beispielen können die deduplizierten Datenchunks dieses vollständigen Backups getrennt von dem/den Thin-List-Backup-Objekt(en) 374 gespeichert werden, obwohl die in dem/den Thin-List-Backup-Objekt(en) 374 gespeicherten Daten ausreichen können, um den vollständigen, vollständig bereitgestellten Datenträger 140 zu dem zweiten Zeitpunkt aus den im Deduplizierungssystem 170 gespeicherten Chunks zu rekonstruieren. Beispiele für diesen Prozess werden weiter unten in Bezug auf die Verwendungs-Map(s) 166 (von Thin-List-Backup-Objekt(en) 172) und Differenz-Map 366 von genauer beschrieben, obwohl in anderen Beispielen jede andere geeignete Darstellung von Verwendungs-Metadaten 166 und Differenz-Metadaten 366 verwendet werden kann. Im Beispiel von können die Verwendungs-Map(s) 166 und die Differenz-Map 366 jeweils Informationen für jede Region (d. h. Chunk 142) des Volumes 140 enthalten.
  • Im Beispiel von können die Anweisungen 121 die Metadaten der Nutzungskarte(n) 166 und der Differenzkarte 366 vergleichen. In solchen Beispielen können die Anweisungen 121 das Deduplizierungssystem 170 veranlassen, für jeden Bereich (d. h. Chunk 142) des Datenträgers 140, für den die Differenzkarte 366 zum zweiten Zeitpunkt keinen Unterschied (z. B. „0“) anzeigt und die Verwendungskarte(n) 166 einen verwendeten Bereich (z. B. „1“) anzeigt, die Chunk-Signatur, die diesem Bereich entspricht, von der/den dünnen Liste(n) 162 (des/der Sicherungsobjekts/-objekte 172) in eine synthetische dünne Liste 372 zu kopieren.
  • Bezogen auf die in dargestellten oberen linken Positionen der Karten 166 und 366 zeigt die Differenzkarte 366 beispielsweise keinen Unterschied („0“) an (was bedeutet, dass der entsprechende Bereich des Datenträgers 140 zum zweiten Zeitpunkt keine unterschiedlichen Daten aufweist), und die Verwendungskarte 166 zeigt einen verwendeten Bereich („1“) an (was bedeutet, dass die Thin-Liste(n) 162 eine Chunk-Signatur für diesen Bereich des Datenträgers 140 enthalten). In solchen Beispielen können die Anweisungen 121 das Deduplizierungssystem 170 veranlassen, die entsprechende Chunk-Signatur (z. B. SIG0, am Anfang der Thin-Liste 162 in ) von der/den Thin-Liste(n) 162 in die synthetische Thin-Liste 372 zu kopieren, wie in gezeigt.
  • Für jeden Bereich (d. h. Chunk 142) des Datenträgers 140, für den die Differenzkarte 366 einen Unterschied (z. B. „1“) zum zweiten Zeitpunkt anzeigt, kann die Anweisung 121 das Deduplizierungssystem 170 veranlassen, jede Chunk-Signatur 164 der Thin-Liste(n) 162, die diesem Bereich entspricht, aus der synthetischen Thin-Liste 372 auszulassen, da die Daten in diesem Bereich zum zweiten Zeitpunkt als unterschiedlich angezeigt werden und die Thin-Liste(n) 162 den ersten Zeitpunkt repräsentieren. Außerdem können die Anweisungen 121 für jede Differenz („1“) in der Differenzkarte 366 den unterschiedlichen („D“) Chunk 142 des Volumens 140 lesen und eine Differenz-Chunk-Signatur 364 für diesen unterschiedlichen Chunk bestimmen. In solchen Beispielen können die Anweisungen 121 bestimmen, ob diese Differenz-Chunk-Signatur 364 mit der Signatur des unbenutzten Bereichs-Chunk 130 übereinstimmt (siehe ). Wenn die Differenz-Chunk-Signatur 364 nicht mit der Chunk-Signatur 130 der unbenutzten Region übereinstimmt, können die Anweisungen 121 diese Differenz-Chunk-Signatur 364 in die synthetische Thin-Liste 372 kopieren (und dabei jegliche Chunk-Signatur 164 der Thin-Liste(n) 162, die dieser Region entspricht/entsprechen, weglassen), so dass das/die synthetische(n) Sicherungsobjekt(e) 374 diese Darstellung des unterschiedlichen Dateninhalts des Datenträgers 140 zum zweiten Zeitpunkt enthalten. Wenn die Differenz-Chunk-Signatur 364 mit der Chunk-Signatur 130 der unbenutzten Region übereinstimmt, kann die Anleitung 121 diese Differenz-Chunk-Signatur 364 aus der synthetischen Thin-Liste 372 weglassen und auch jede Chunk-Signatur 164 der Thin-Liste(n) 162, die dieser Region entspricht, weglassen. In solchen Beispielen zeigt die Differenz-Chunk-Signatur 364, die mit der Chunk-Signatur 130 für eine unbenutzte Region übereinstimmt, an, dass die entsprechende Region, unabhängig davon, ob sie in der Vergangenheit eine benutzte Region war, zum zweiten Zeitpunkt als unbenutzte Region auf dem Datenträger 140 bestimmt wird, und daher die Differenz-Chunk-Signatur 364 für diese Region aus der/den synthetischen Thin-Liste(n) 172 des/der synthetischen Thin-Backup-Objekts/e 374, das/die ein Backup des Datenträgers 140 zum zweiten Zeitpunkt repräsentiert/repräsentieren, weggelassen werden soll.
  • Beispielsweise zeigt die Differenzkarte 366 an der dritten Stelle von links in der oberen Reihe jeder der Karten 166 und 366 in eine Differenz („1“) an, und basierend darauf können die Anweisungen 121 auf den unterschiedlichen Chunk 142 („D“) des Volumens 140 zum zweiten Zeitpunkt zugreifen und eine Differenz-Chunk-Signatur 364 (z. B. SIG8) erzeugen, die diesen Chunk des Volumens 140 zum zweiten Zeitpunkt darstellt. Die Anweisungen 121 können feststellen, dass die Chunk-Signatur 364 (z. B. SIG8) nicht mit der Chunk-Signatur 130 der unbenutzten Region übereinstimmt, und auf dieser Grundlage die Differenz-Chunk-Signatur 364 (z. B. SIG8) in die synthetische Thin-Liste 372 (z. B. SIG8, wie in gezeigt) kopieren und jede Chunk-Signatur 164 der Thin-Liste(n) 162, die der Region entspricht, weglassen. Dies kann unabhängig von der Angabe in der Verwendungskarte 166 der Fall sein, da eine „1“ anzeigen würde, dass die dünne(n) Liste(n) 162 eine Chunk-Signatur für den ersten Zeitpunkt enthält (die in der synthetischen dünnen Liste durch die spätere Chunk-Signatur ersetzt werden sollte), und eine „0“ würde anzeigen, dass die dünne(n) Liste(n) 162 keine Chunk-Signatur für den ersten Zeitpunkt enthält/enthalten, so dass die Differenz-Chunk-Signatur 364 zu der/den synthetischen dünnen Liste(n) 372 hinzugefügt werden kann. In anderen Beispielen können die Anweisungen 121 feststellen, dass die Differenz-Chunk-Signatur 364 mit der unbenutzten Regions-Chunk-Signatur 130 übereinstimmt, und auf dieser Grundlage sowohl die Differenz-Chunk-Signatur 364 als auch jede Chunk-Signatur 164 der Thin-Liste(n) 162, die der Region entspricht, weglassen.
  • Die Anweisungen 121 können Nutzungs-Metadaten 376 (z. B. die Nutzungs-Map 376) auf der Grundlage der Vergleiche der Differenz-Metadaten 366 und der Nutzungs-Metadaten 166 erzeugen. Wenn z. B. die Differenz-Map 366 für jede Region des Datenträgers 140 keinen Unterschied (z. B. „0“) anzeigt, kann die Anweisung 121 in den Verwendungs-Metadaten 376 (z. B. Verwendungs-Map 376) für das/die synthetische(n) Thin-Backup-Objekt(e) 374 die gleiche Angabe für diese Region speichern, die in der/den Verwendungs-Map(s) 166 für diese Region enthalten ist. Wenn die Differenz-Map 366 beispielsweise keinen Unterschied („0“) für eine bestimmte Region anzeigt, dann wurde die Region nicht geändert und sollte denselben Zustand haben wie in der/den Verwendungs-Map(s) 166 angegeben, sodass die Anweisungen 322 in der Verwendungs-Map 376 eine Angabe speichern können, dass die Region verwendet wird (z. B. „1“), wenn dies in der/den Verwendungs-Map(s) 166 für die bestimmte Region angegeben ist, und eine Angabe, dass die Region nicht verwendet wird (z. B. „0“), wenn dies in der/den Verwendungs-Map(s) 166 für die bestimmte Region angegeben ist.
  • Wenn die Differenz-Map 366 für eine bestimmte Region eine Differenz (z. B. „1“) anzeigt, kann die Anweisung 121 in der Usage-Map 376 (für synthetische(s) Thin-Backup-Objekt(e) 374) entweder eine Angabe speichern, dass die Region verwendet wird (z. B. „1“), oder eine Angabe, dass die Region unbenutzt ist (z. B. „0“), je nachdem, ob die Differenz-Chunk-Signatur 364 für diese Region mit der Chunk-Signatur 130 für die unbenutzte Region übereinstimmt oder nicht. Wenn die Differenz-Map 366 beispielsweise eine Differenz (z. B. „1“) für eine bestimmte Region anzeigt und die Differenz-Chunk-Signatur 364 für diese Region nicht mit der Chunk-Signatur 130 für die unbenutzte Region übereinstimmt, kann die Anweisung 121 diese Differenz-Chunk-Signatur 364 in der/den synthetischen Thin-Liste(n) 372 speichern, wie oben beschrieben, und in der Usage-Map 376 eine entsprechende Angabe speichern, dass die Region benutzt wird (z. B. „1“). Wenn die Differenz-Map 366 eine Differenz (z. B. „1‟) für eine bestimmte Region anzeigt und die Differenz-Chunk-Signatur 364 für diese Region mit der Chunk-Signatur 130 für die unbenutzte Region übereinstimmt, dann wird die Region zum zweiten Zeitpunkt als unbenutzt bestimmt, und die Anweisungen 121 können diese Differenz-Chunk-Signatur 364 in der/den synthetischen Thin-Liste(n) 372, wie oben beschrieben, weglassen und eine entsprechende Angabe in der Usage-Map 376 speichern, dass die Region unbenutzt ist (z. B. „0“).
  • In einigen Beispielen kann die Anweisung 121 die Differenzkarte 366 und die Verwendungskarte 166 vergleichen, um die neue Verwendungskarte 376 zu erzeugen, wobei die Anweisung 121 das Deduplizierungssystem 170 veranlassen kann, die neue Verwendungskarte 376 in einem oder mehreren synthetischen Thin-Backup-Objekten 374 zu speichern. Basierend auf den Vergleichen kann die Anweisung 121 die Chunk-Signaturen 164 aus der/den Thin-Liste(n) 162 in die synthetische(n) Thin-Liste(n) 372 kopieren, die Chunk-Signaturen 164 aus der/den synthetischen Thin-Liste(n) 372 weglassen und die Differenz-Chunk-Signaturen 364 in die synthetische(n) Thin-Liste(n) 372 kopieren, wie oben beschrieben. Die Anweisungen 121 können das Deduplizierungssystem 170 veranlassen, die synthetische(n) Thin-Liste(n) 372 in einem oder mehreren synthetischen Thin-Backup-Objekt(en) 374 zu speichern. In einigen Beispielen können die Anweisungen 121 das Deduplizierungssystem 170 veranlassen, einen Klonvorgang zu verwenden, um angegebene Teile der Thin-Liste(n) 162 in synthetische Thin-Liste(n) 372 zu klonen. In solchen Beispielen können die Anweisungen 121 eine oder mehrere zusammenhängende Serien von Chunk-Signaturen 164 der Thin-Liste(n) 162 bestimmen (z. B. auf der Grundlage von Nutzungsmetadaten 166, Differenzmetadaten 366, Differenz-Chunk-Signaturen 364), die in die synthetische(n) Thin-Liste(n) 372 kopiert werden sollen, und Klonoperationen verwenden, um diese Teile der Thin-Liste(n) 162 in die synthetische(n) Thin-Liste(n) 372 zu klonen, durchsetzt mit Differenz-Chunk-Signaturen 364 und/oder Chunk-Signatur-Auslassungen, wie oben beschrieben.
  • Auf diese Weise können hier beschriebene Beispiele synthetische Thin-Backup-Objekte erzeugen, die den gesamten Inhalt eines vollständig bereitgestellten Volumes zu einem zweiten Zeitpunkt vollständig repräsentieren, basierend auf Backup-Objekten für das Volume zu einem früheren ersten Zeitpunkt und inkrementellen Backup-Informationen zu einem späteren, zweiten Zeitpunkt. In solchen Beispielen können die Anweisungen 121 das Deduplizierungssystem 170 veranlassen, synthetische Thin-Backup-Objekte zu speichern, indem es den Inhalt der Thin-Backup-Objekte und Differenzinformationen (wie Differenz-Metadaten und Differenz-Chunk-Signaturen) vergleicht und in das/die synthetische(n) Thin-Backup-Objekt(e) neue Nutzungs-Metadaten, Chunk-Signatur(en) der Differenz-Chunk-Signaturen und, aus dem/den Thin-Backup-Objekt(en) für den ersten Zeitpunkt, jede Chunk-Signatur für einen unveränderten Bereich des Volumes 140 kopiert. In den hier beschriebenen Beispielen werden durch das Erzeugen von dünnen Listen von Chunk-Signaturen, die unbenutzte Bereiche aus den vollen Listen von Chunk-Signaturen beim Sichern des Datenträgers 140 auslassen, wie oben beschrieben, die dünne(n) Liste(n) wahrscheinlich viel weniger Chunk-Signaturen haben, die in das/die synthetische(n) dünne(n) Sicherungsobjekt(e) weiterzukopieren (oder zu klonen) sind, was zu einem viel effizienteren Prozess des Erstellens des/der synthetischen Sicherungsobjekts/-objekte führen kann, wie hier beschrieben. Das heißt, der Kopier- (oder Klonierungs-) Prozess kann eine Leistung haben, die in den hier beschriebenen Beispielen proportional zur Nutzung des vollständig bereitgestellten Datenträgers 140 ist und nicht proportional zur maximalen Größe des Datenträgers 140 (z. B. wenn das Gleiche mit der/den vollständigen Liste(n) für den Datenträger 140 gemacht würde).
  • In den hier beschriebenen Beispielen können synthetische Thin-Backup-Objekte funktional äquivalent zu Thin-List-Backup-Objekten sein und werden hier als Thin-List-Backup-Objekt(e) bezeichnet. In solchen Beispielen zeigt der Modifikator „synthetisch“ an, dass das/die Backup-Objekt(e) zumindest teilweise aus einem inkrementellen Backup-Prozess, aus Differenzinformationen oder einer Kombination davon (z. B. wie oben beschrieben) erzeugt wurden, obwohl das/die synthetische(n) Backup-Objekt(e) immer noch den gesamten Inhalt eines Volumes zu einem bestimmten Zeitpunkt repräsentieren.
  • Beispiele für einen Wiederherstellungsvorgang von Thin-Backup-Objekt(en) werden nun in Bezug auf die und beschrieben. ist ein Flussdiagramm eines Beispielverfahrens 600, das die Durchführung einer Wiederherstellung von Thin-List-Backup-Objekten umfasst. Bei 610 des Verfahrens 600 können die Anweisungen 322 aus den Verwendungsmetadaten des/der Thin-List-Backup-Objekts/Backup-Objekte die verwendeten und nicht verwendeten Bereiche eines gesicherten, vollständig bereitgestellten Volumes bestimmen, das wiederhergestellt werden soll. Bei 615 können die Anweisungen 322 für jeden gegebenen benutzten Bereich des vollständig bereitgestellten Datenträgers, der in den Verwendungsmetadaten angegeben ist, in demselben gegebenen Bereich (d. h. Adressraum) eines vollständig bereitgestellten Zielvolumens einen Chunk wiederherstellen, der durch die Chunk-Signatur für diesen Bereich in dem/den Thin-List-Backup-Objekt(en) dargestellt wird. Bei 620 können die Anweisungen 322 für jeden gegebenen unbenutzten Bereich des vollständig bereitgestellten Volumes, der in den Verwendungsmetadaten angegeben ist, einen Chunk mit einem Datenmuster für einen unbenutzten Bereich in demselben gegebenen Bereich (d. h. Adressraum) des vollständig bereitgestellten Zielvolumes wiederherstellen.
  • Beispielsweise können die Anweisungen 322 einen Wiederherstellungsvorgang von synthetischen Thin-Backup-Objekten 374 durchführen, die das vollständig bereitgestellte Volume 140 zu einem zweiten Zeitpunkt darstellen, wie oben in Bezug auf die in dargestellten Beispiele beschrieben. In einigen Beispielen kann ein Ziel-Computergerät (z. B. Computergerät 100 oder ein anderes) ein vollständig bereitgestelltes Ziel-Volume erstellen, um die Wiederherstellung des Volumes 140 zu empfangen, wie es zum zweiten Zeitpunkt existierte, wie oben beschrieben. In solchen Beispielen können die Anweisungen 322 bei 610 aus der Verwendungskarte 376 die verwendeten und nicht verwendeten Bereiche des Volumens 140 zu dem zweiten Zeitpunkt bestimmen. Bei 615 können die Anweisungen 322 für jeden benutzten Bereich des Volumens 140, der in der Verwendungsübersicht 376 angegeben ist, einen Chunk (vom Deduplizierungssystem 170) wiederherstellen, der durch die jeweilige Chunk-Signatur 377 repräsentiert wird, die diesem Bereich entspricht und in der synthetischen Thin-Liste 372 gespeichert ist. In solchen Beispielen können die Anweisungen 322 diesen Chunk in derselben Region (z. B. Adressraum) im Zielvolume wiederherstellen, in der er im Quellvolume 140 gespeichert war (wie zum Zeitpunkt der Sicherung dargestellt). Bei 620 kann die Anweisung 322 für jeden ungenutzten Bereich des Volumes 140, der in der Verwendungsübersicht 376 angegeben ist, einen Chunk mit dem definierten Datenmuster für einen ungenutzten Bereich des vollständig bereitgestellten Volumes wiederherstellen (in demselben Bereich des Zielvolumes). Wenn beispielsweise das in einem ungenutzten Bereich des Volumes 140 gespeicherte Datenmuster ein Chunk mit lauter Nullen ist, kann ein Chunk mit lauter Nullen auf dem Zielvolume wiederhergestellt werden, basierend auf der Angabe in der Verwendungsübersicht 376, dass der Bereich ungenutzt ist (auch wenn eine Chunk-Signatur dieses Bereichs nicht in dem/den Thin-Backup-Objekt(en) 374 gespeichert ist, wie oben beschrieben).
  • ist ein Blockdiagramm einer beispielhaften Computerumgebung 705, um die Speicherung von Thin-List-Sicherungsobjekten in einem Deduplizierungssystem zu veranlassen. ist ein Flussdiagramm eines Beispielverfahrens 800, das das Erzeugen von Thin-List(s) von Chunk-Signaturen umfasst. Im Beispiel von kann die Rechenvorrichtung 700 mindestens eine Verarbeitungsressource 110 und mindestens ein maschinenlesbares Speichermedium 120 umfassen, das Anweisungen 121 speichert (ausführbar durch die mindestens eine Verarbeitungsressource 110), wie oben in Bezug auf beschrieben. Die Computerumgebung 705 kann auch einen Speicher 101 enthalten, der einen vollständig bereitgestellten Datenträger 140 umfasst, wie oben in Bezug auf beschrieben. Obwohl die Ausführung des Verfahrens 800 im Folgenden unter Bezugnahme auf die Rechenvorrichtung 700 von beschrieben wird, können auch andere für die Ausführung des Verfahrens 800 geeignete Rechenvorrichtungen oder Systeme verwendet werden (z. B. die Rechenvorrichtung 100 von usw.). Außerdem ist die Implementierung von Verfahren 800 nicht auf solche Beispiele beschränkt.
  • Bei 810 des Verfahrens 800 können die Anweisungen 122 einen Satz von Chunks 142 bestimmen, die den Dateninhalt eines gesamten Adressraums eines vollständig bereitgestellten Volumens 140 eines Computersystems umfassen. In einigen Beispielen kann das Computergerät 700 einen Speicher 101 umfassen. In anderen Beispielen kann der Speicher 101 von der Computervorrichtung 700 entfernt, aber für diese zugänglich sein (z. B. über Computernetzwerke). Bei 820 können die Anweisungen 124 eine oder mehrere vollständige Listen 150 von Chunk-Signaturen 182 erzeugen. In solchen Beispielen, wenn es eine vollständige Liste 150 gibt, umfasst die vollständige Liste Chunk-Signaturen für alle Chunks 142 des gesamten Adressraums von Volume 140. In anderen Beispielen, wenn es eine Vielzahl von vollständigen Listen 150 für das Volume 140 gibt, umfasst jede vollständige Liste 150 Chunk-Signaturen für die Chunks eines jeweiligen zusammenhängenden Teils oder mehrerer diskontinuierlicher Teile des Adressraums des vollständig bereitgestellten Volumes. In solchen Beispielen repräsentieren die vollständigen Listen 150 gemeinsam den Dateninhalt des gesamten Adressraums des vollständig bereitgestellten Volumes 140.
  • Bei 825 können die Anweisungen 126 eine oder mehrere dünne Listen 162 und Verwendungsmetadaten 166 generieren, basierend auf dem Vergleich jeder Chunk-Signatur der vollen Liste(n) 150 mit einer Chunk-Signatur für einen unbenutzten Bereich, die einen Chunk eines unbenutzten Bereichs des vollständig bereitgestellten Volumes 140 darstellt. In solchen Beispielen können die Anweisungen 126 für jede vollständige Liste jede Chunk-Signatur der vollständigen Liste mit der Chunk-Signaturfür einen unbenutzten Bereich (wie oben beschrieben) vergleichen, die einen Chunk eines unbenutzten Bereichs des vollständig bereitgestellten Volumes 140 repräsentiert. In solchen Beispielen können die Anweisungen 126 Nutzungsmetadaten 166 erzeugen, um verwendete Regionen des vollständig bereitgestellten Datenträgers 140 auf der Grundlage der Vergleiche anzuzeigen, und können aus der jeweiligen vollständigen Liste 150 eine jeweilige dünne Liste 162 erzeugen, die alle Chunk-Signaturen aus der jeweiligen vollständigen Liste 150 auslässt, die auf der Grundlage der Vergleiche als übereinstimmend mit der Chunk-Signatur der unbenutzten Region ermittelt wurden. Bei 830 können die Anweisungen 128 ein Deduplizierungs-Backup-System 710 veranlassen, ein oder mehrere Thin-List-Backup-Objekte für den vollständig bereitgestellten Datenträger 140 zu speichern, einschließlich der einen oder mehreren Thin-Listen 162 und der Verwendungsmetadaten 166, die aus der einen oder den mehreren vollständigen Listen 150 erzeugt wurden.
  • Alle in dieser Beschreibung offengelegten Merkmale (einschließlich aller begleitenden Ansprüche, Abstraktionen und Zeichnungen) und/oder alle Elemente eines so offengelegten Verfahrens oder Prozesses können in jeder beliebigen Kombination kombiniert werden, mit Ausnahme von Kombinationen, bei denen sich zumindest einige dieser Merkmale und/oder Elemente gegenseitig ausschließen. Zum Beispiel können Funktionalitäten, die hier in Bezug auf eine der beschrieben sind, in Kombination mit Funktionalitäten, die hier in Bezug auf eine andere der beschrieben sind, bereitgestellt werden.
  • Obwohl jedes der verschiedenen Flussdiagramme, die hier enthalten und beschrieben sind, eine bestimmte Reihenfolge der Ausführung bestimmter Funktionalitäten zeigt, sind die jeweiligen Methoden, die durch diese Flussdiagramme dargestellt werden, nicht auf diese Reihenfolge beschränkt. Beispielsweise können die in einem Flussdiagramm nacheinander dargestellten Funktionalitäten in einer anderen Reihenfolge ausgeführt werden, sie können gleichzeitig oder teilweise gleichzeitig ausgeführt werden oder eine Kombination davon. In den hier beschriebenen Beispielen ist die Phrase „basierend auf‟ nicht exklusiv und sollte nicht als „ausschließlich basierend auf‟ gelesen werden. Vielmehr ist der Ausdruck „basierend auf‟, wie er hier verwendet wird, allumfassend und bedeutet dasselbe wie die alternative Formulierung „zumindest basierend auf‟ oder „zumindest teilweise basierend auf‟. Als solches kann jede Bestimmung, Entscheidung, jeder Vergleich oder ähnliches, die/der hier als „basierend auf‟ einer bestimmten Bedingung, Daten oder ähnlichem beschrieben wird, so verstanden werden, dass die Entscheidung, der Vergleich oder ähnliches zumindest auf dieser Bedingung, Daten oder ähnlichem basiert (oder zumindest teilweise darauf basiert) und auch auf anderen Bedingungen, Daten oder ähnlichem basieren kann. In den hier beschriebenen Beispielen können Funktionalitäten, die als von „Anweisungen“ ausgeführt beschrieben werden, als Funktionalitäten verstanden werden, die von diesen Anweisungen ausgeführt werden können, wenn sie von einer Verarbeitungsressource ausgeführt werden. In anderen Beispielen können Funktionalitäten, die in Bezug auf Anweisungen beschrieben werden, von einer oder mehreren Engines implementiert werden, die eine beliebige Kombination aus Hardware und Programmierung zur Implementierung der Funktionalitäten der Engine(s) sein können.
  • Wie hierin verwendet, kann ein „Computergerät“ ein Server, ein Speichergerät, ein Speicherarray, eine Backup-Appliance, ein Desktop- oder Laptop-Computer, ein Switch, ein Router oder ein anderes Verarbeitungsgerät oder eine andere Ausrüstung sein, die eine Verarbeitungsressource enthält. In den hier beschriebenen Beispielen kann eine Verarbeitungsressource z. B. einen Prozessor oder mehrere Prozessoren umfassen, die in einem einzigen Computergerät enthalten oder über mehrere Computergeräte verteilt sind. Wie hierin verwendet, kann ein „Prozessor“ mindestens eine Zentraleinheit (CPU), ein Mikroprozessor auf Halbleiterbasis, eine Grafikverarbeitungseinheit (GPU), ein feldprogrammierbares Gate-Array (FPGA), das zum Abrufen und Ausführen von Befehlen konfiguriert ist, andere elektronische Schaltungen, die zum Abrufen und Ausführen von auf einem maschinenlesbaren Speichermedium gespeicherten Befehlen geeignet sind, oder eine Kombination davon sein. In den hier beschriebenen Beispielen kann eine Verarbeitungsressource auf einem Speichermedium gespeicherte Befehle abrufen, dekodieren und ausführen, um die in Bezug auf die auf dem Speichermedium gespeicherten Befehle beschriebenen Funktionalitäten durchzuführen. In anderen Beispielen können die Funktionalitäten, die in Bezug auf die hier beschriebenen Anweisungen beschrieben sind, in Form von elektronischen Schaltkreisen, in Form von ausführbaren Anweisungen, die auf einem maschinenlesbaren Speichermedium kodiert sind, oder einer Kombination davon implementiert werden. Das Speichermedium kann sich entweder in dem Computergerät befinden, das die maschinenlesbaren Anweisungen ausführt, oder es kann von dem Computergerät entfernt, aber für die Ausführung zugänglich sein (z. B. über ein Computernetzwerk). In den hier dargestellten Beispielen kann ein Speichermedium 120 durch ein maschinenlesbares Speichermedium oder mehrere maschinenlesbare Speichermedien implementiert werden.
  • In den hier beschriebenen Beispielen kann ein Speicher-Array ein Computergerät sein, das eine Vielzahl von Speichergeräten und einen oder mehrere Controller umfasst, die mit Host-Geräten interagieren und den Zugriff auf die Speichergeräte steuern. In einigen Beispielen können die Speichergeräte HDDs, SSDs oder jede andere geeignete Art von Speichergerät oder eine Kombination davon umfassen. In einigen Beispielen kann/können der/die Controller die von den Speichergeräten bereitgestellte Speicherkapazität virtualisieren, damit ein Host auf ein virtuelles Objekt (z. B. ein Volume) zugreifen kann, das aus Speicherplatz von mehreren verschiedenen Speichergeräten besteht.
  • In einigen Beispielen können die oben beschriebenen Funktionalitäten in Bezug auf die hierin beschriebenen Anweisungen durch eine oder mehrere Engines implementiert werden, die eine beliebige Kombination aus Hardware und Programmierung zur Implementierung der Funktionalitäten der Engine(s) sein können. In den hier beschriebenen Beispielen können solche Kombinationen aus Hardware und Programmierung auf unterschiedliche Weise implementiert werden. Beispielsweise kann die Programmierung für die Motoren aus prozessorausführbaren Befehlen bestehen, die auf mindestens einem nicht-transitorischen, maschinenlesbaren Speichermedium gespeichert sind, und die Hardware für die Motoren kann mindestens eine Verarbeitungsressource zur Ausführung dieser Befehle enthalten. In einigen Beispielen kann die Hardware auch andere elektronische Schaltungen enthalten, um mindestens eine der Maschinen zumindest teilweise zu implementieren. In einigen Beispielen kann das mindestens eine maschinenlesbare Speichermedium Befehle speichern, die, wenn sie von der mindestens einen Verarbeitungsressource ausgeführt werden, einige oder alle der Motoren zumindest teilweise implementieren. In solchen Beispielen kann ein Computergerät das mindestens eine maschinenlesbare Speichermedium, das die Anweisungen speichert, und die mindestens eine Verarbeitungsressource zur Ausführung der Anweisungen enthalten. In anderen Beispielen kann die Engine durch elektronische Schaltungen implementiert werden.
  • Wie hierin verwendet, kann ein „maschinenlesbares Speichermedium“ ein beliebiges elektronisches, magnetisches, optisches oder anderes physikalisches Speichergerät sein, das Informationen wie ausführbare Anweisungen, Daten und Ähnliches enthält oder speichert. Beispielsweise kann jedes hier beschriebene maschinenlesbare Speichermedium ein RAM, ein EEPROM, ein flüchtiger Speicher, ein nichtflüchtiger Speicher, ein Flash-Speicher, ein Speicherlaufwerk (z. B. eine HDD, eine SSD), eine beliebige Art von Speicherplatte (z. B. eine Compact Disc, eine DVD usw.) oder Ähnliches oder eine Kombination davon sein. Darüber hinaus kann jedes hierin beschriebene maschinenlesbare Speichermedium nicht-transitory sein. In den hier beschriebenen Beispielen kann ein maschinenlesbares Speichermedium oder Medien Teil eines Artikels (oder Herstellungsartikels) sein. Ein Artikel oder Herstellungsgegenstand kann sich auf jede hergestellte Einzelkomponente oder mehrere Komponenten beziehen. In einigen Beispielen können Anweisungen Teil eines Installationspakets sein, das, wenn es installiert ist, von einer Verarbeitungsressource ausgeführt werden kann, um hier beschriebene Funktionalitäten zu implementieren.

Claims (20)

  1. Ein Verfahren, das Folgendes umfasst: Bestimmen eines Satzes von Chunks, die den Dateninhalt eines gesamten Adressraums eines vollständig bereitgestellten Volumes eines Rechensystems umfassen; Erzeugen einer oder mehrerer vollständiger Listen von Chunk-Signaturen, wobei jede vollständige Liste Chunk-Signaturen für die Chunks des gesamten oder eines entsprechenden Teils des Adressraums des vollständig bereitgestellten Volumes umfasst, wobei die eine oder mehreren vollständigen Listen gemeinsam den Dateninhalt des gesamten Adressraums des vollständig bereitgestellten Volumes darstellen; für jede vollständige Liste: Vergleichen jeder Chunk-Signatur der vollständigen Liste mit einer Chunk-Signatur für einen unbenutzten Bereich, die einen Chunk eines unbenutzten Bereichs des vollständig bereitgestellten Volumes darstellt; Erzeugen von Nutzungs-Metadaten, um benutzte Bereiche des vollständig bereitgestellten Volumes anzuzeigen, basierend auf den Vergleichen; und Erzeugen einer dünnen Liste aus der vollständigen Liste, die alle Chunk-Signaturen aus der vollständigen Liste auslässt, die aufgrund der Vergleiche mit der Chunk-Signatur des unbenutzten Bereichs übereinstimmen; und Bewirken, dass ein Deduplizierungs-Backup-System ein oder mehrere Thin-List-Backup-Objekte für das vollständig bereitgestellte Volume speichert, einschließlich der einen oder mehreren Thin-Lists und der aus den einen oder mehreren Full-Lists generierten Nutzungsmetadaten.
  2. Das Verfahren nach Anspruch 1, das weiterhin umfasst: Erzeugen der Chunk-Signatur für den unbenutzten Bereich durch Anwenden einer Signaturfunktion auf eine Sammlung von Daten, die einem Chunk eines benutzten Bereichs eines vollständig bereitgestellten Volumes entspricht.
  3. Das Verfahren nach Anspruch 2, wobei: die Sammlung von Daten, die einem Chunk eines verwendeten Bereichs entspricht, eine Sammlung von Daten ist, die ausschließlich aus Nullen besteht; und die Chunk-Signatur des unbenutzten Bereichs ist eine Chunk-Signatur einer Sammlung von Daten, die ausschließlich aus Nullen besteht.
  4. Das Verfahren nach Anspruch 1, wobei die eine oder die mehreren vollständigen Listen den Dateninhalt des vollständig bereitgestellten Volumes zu einem ersten Zeitpunkt repräsentieren, wobei das Verfahren ferner umfasst: Bestimmen von Chunks des vollständig bereitgestellten Volumes, die sich zu einem zweiten Zeitpunkt nach dem ersten Zeitpunkt unterscheiden; Erzeugen einer oder mehrerer Differenz-Chunk-Signaturen, die jeweils eine Chunk-Signatur für einen jeweiligen der Chunks umfassen, die sich zu dem zweiten Zeitpunkt unterscheiden, basierend auf Differenz-Metadaten, die für jeden der Chunks, die sich zu dem zweiten Zeitpunkt unterscheiden, den Ort des unterschiedlichen Chunks in dem vollständig bereitgestellten Volume angeben; und Veranlassen des Deduplizierungs-Backup-Systems, ein oder mehrere neue Thin-List-Backup-Objekte für das vollständig bereitgestellte Volume zu speichern, basierend auf den Differenz-Metadaten und der einen oder mehreren Differenz-Chunk-Signaturen.
  5. Das Verfahren nach Anspruch 4, wobei das Verfahren umfasst: Vergleichen der Verwendungsmetadaten des einen oder der mehreren Thin-List-Backup-Objekte mit den generierten Differenzmetadaten; Erzeugen neuer Nutzungsmetadaten für das eine oder die mehreren synthetischen Thin-Backup-Objekte basierend auf den Nutzungsmetadaten des einen oder der mehreren Thin-List-Backup-Objekte und den Differenzmetadaten; und Erzeugen einer synthetischen Thin-Liste von Chunk-Signaturen für das eine oder die mehreren synthetischen Thin-Backup-Objekte basierend auf der Thin-Liste, den Differenz-Metadaten und der einen oder den mehreren Differenz-Chunk-Signaturen.
  6. Das Verfahren nach Anspruch 5, wobei das Erzeugen der synthetischen dünnen Liste von Chunk-Signaturen umfasst: für jede Region des vollständig bereitgestellten Volumes, für die die Differenz-Metadaten keine Differenz anzeigen und die Verwendungs-Metadaten des einen oder der mehreren Thin-List-Backup-Objekte eine verwendete Region anzeigen, Kopieren der Chunk-Signatur, die der Region entspricht, von der einen oder den mehreren Thin-Listen in die synthetische Thin-Liste von Chunk-Signaturen; und für jede Region des vollständig bereitgestellten Volumes, für die die Differenz-Metadaten eine Differenz anzeigen: Auslassen einer beliebigen Chunk-Signatur einer oder mehrerer dünner Listen, die dem Bereich entsprechen; und Kopieren einer gegebenen der einen oder mehreren Differenz-Chunk-Signaturen, die dem Bereich entsprechen, in die synthetische dünne Liste von Chunk-Signaturen, wenn die gegebene Differenz-Chunk-Signatur nicht mit der unbenutzten Bereichs-Chunk-Signatur übereinstimmt.
  7. Das Verfahren nach Anspruch 5, wobei das Erzeugen der Nutzungsmetadaten für das synthetische dünne Sicherungsobjekt umfasst: für jede Region des vollständig bereitgestellten Volumes: wenn die Differenz-Metadaten keinen Unterschied für die Region anzeigen, Speichern in den Verwendungs-Metadaten des synthetischen Thin-Backup-Objekts der gleichen Anzeige, ob die Region verwendet oder nicht verwendet wird, wie sie für die Region in den Verwendungs-Metadaten des einen oder der mehreren Thin-List-Backup-Objekte enthalten ist; und wenn die Differenz-Metadaten eine Differenz für den Bereich anzeigen: Speichern einer Anzeige in den Verwendungsmetadaten des synthetischen Thin-Backup-Objekts, dass die Region verwendet wird oder dass die Region unbenutzt ist, basierend darauf, ob die Differenz-Chunk-Signatur für diese Region mit der Chunk-Signatur der unbenutzten Region übereinstimmt.
  8. Das Verfahren nach Anspruch 1, das weiterhin umfasst: Bestimmen, aus den Nutzungsmetadaten des einen oder der mehreren Thin-List-Backup-Objekte, verwendeter und nicht verwendeter Regionen des vollständig bereitgestellten Volumes, die wiederhergestellt werden sollen; für jeden benutzten Bereich des vollständig bereitgestellten Volumes, der in den Verwendungsmetadaten angegeben ist, das Wiederherstellen eines Chunks, der durch die Chunk-Signatur für diesen Bereich in dem Thin-List-Backup-Objekt repräsentiert wird, in dem Bereich eines vollständig bereitgestellten Zielvolumes; und für jeden ungenutzten Bereich des vollständig bereitgestellten Volumes, der in den Verwendungsmetadaten angegeben ist, das Wiederherstellen eines Chunks mit einem Datenmuster für einen ungenutzten Bereich in dem Bereich des vollständig bereitgestellten Zielvolumes.
  9. Das Verfahren nach Anspruch 8, wobei das Datenmuster für den unbenutzten Bereich alle Nullen umfasst.
  10. Das Verfahren nach Anspruch 1, umfassend: Bereitstellen der einen oder mehreren dünnen Listen und der Verwendungsmetadaten, die aus der einen oder den mehreren vollen Listen erzeugt wurden, an ein Deduplizierungs-Backup-System von einer Rechenvorrichtung, die von dem Deduplizierungs-Backup-System getrennt ist, wobei die Rechenvorrichtung die Erzeugung der einen oder mehreren dünnen Manifeste durchgeführt hat.
  11. Ein Artikel, der ein nicht-transitorisches, maschinenlesbares Speichermedium umfasst, das Anweisungen enthält, die von mindestens einer Verarbeitungsressource ausgeführt werden können, um: eine Chunk-Signatur für einen unbenutzten Bereich zu erzeugen, indem eine Signaturfunktion auf eine Sammlung von Daten angewendet wird, die einem Chunk eines unbenutzten Bereichs eines vollständig bereitgestellten Volumes eines Computergeräts entspricht; eine Menge von Chunks bestimmen, die den Dateninhalt eines gesamten Adressraums des vollständig bereitgestellten Volumes umfassen; Erzeugen einer oder mehrerer vollständiger Listen von Chunk-Signaturen, wobei jede vollständige Liste Chunk-Signaturen für die Chunks des gesamten oder eines entsprechenden Teils des Adressraums des vollständig bereitgestellten Volumes umfasst, wobei die eine oder mehreren vollständigen Listen gemeinsam den Dateninhalt des gesamten Adressraums des vollständig bereitgestellten Volumes darstellen; für jede vollständige Liste: jede Chunk-Signatur der vollständigen Liste mit der Chunk-Signatur der unbenutzten Region vergleichen; Erzeugen von Nutzungs-Metadaten, um benutzte Bereiche des vollständig bereitgestellten Volumes anzuzeigen, basierend auf den Vergleichen; und Erzeugen einer dünnen Liste aus der vollen Liste, die alle Chunk-Signaturen aus der vollen Liste auslässt, die aufgrund der Vergleiche mit der Chunk-Signatur des unbenutzten Bereichs übereinstimmen; und ein Deduplizierungs-Backup-System veranlassen, ein oder mehrere Thin-List-Backup-Objekte für das vollständig bereitgestellte Volume zu speichern, einschließlich der einen oder mehreren Thin-Lists und der aus den einen oder mehreren Full-Lists generierten Nutzungsmetadaten.
  12. Der Artikel nach Anspruch 11, wobei ein Speicherarray, das den vollständig bereitgestellten Datenträger speichert, die mindestens eine Verarbeitungsressource umfasst, und wobei die Anweisungen durch die mindestens eine Verarbeitungsressource des Speicherarrays ausführbar sind, um: dem Deduplizierungs-Backup-System die eine oder mehreren dünnen Listen und die aus der einen oder den mehreren vollen Listen erzeugten Verwendungs-Metadaten aus dem Speicher-Array zur Verfügung zu stellen, um das Deduplizierungs-Backup-System zu veranlassen, das eine oder die mehreren dünnen Listen-Backup-Objekte zu speichern.
  13. Der Artikel nach Anspruch 11, wobei die mindestens eine Verarbeitungsressource zum Ausführen der Anweisungen Teil einer Rechenvorrichtung ist, die von einem Speicherarray, das das vollständig bereitgestellte Volume speichert, und von dem Deduplizierungs-Backup-System getrennt ist, und wobei die Anweisungen von der mindestens einen Verarbeitungsressource des Speicherarrays ausgeführt werden können, um: dem Deduplizierungs-Backup-System die eine oder mehreren dünnen Listen und die aus der einen oder den mehreren vollen Listen erzeugten Verwendungs-Metadaten von der Rechenvorrichtung aus zur Verfügung zu stellen, um das Deduplizierungs-Backup-System zu veranlassen, das eine oder die mehreren dünnen Listen-Backup-Objekte zu speichern.
  14. Der Artikel nach Anspruch 11, wobei die Sammlung von Daten, die einem Chunk eines unbenutzten Bereichs entspricht, eine Sammlung von Daten ist, die alle Nullen umfasst.
  15. Der Artikel nach Anspruch 11, wobei die eine oder mehrere vollständige Listen den Dateninhalt des vollständig bereitgestellten Volumes zu einem ersten Zeitpunkt darstellen, wobei die Anweisungen ausführbar sind, um: Chunks des vollständig bereitgestellten Volumes bestimmen, die sich zu einem zweiten Zeitpunkt später als zum ersten Zeitpunkt unterscheiden; Erzeugen einer oder mehrerer Differenz-Chunk-Signaturen, die jeweils eine Chunk-Signatur für einen jeweiligen der Chunks umfassen, die sich zu dem zweiten Zeitpunkt unterscheiden, basierend auf Differenz-Metadaten, die für jeden der Chunks, die sich zu dem zweiten Zeitpunkt unterscheiden, den Ort des abweichenden Chunks in dem vollständig bereitgestellten Volume angeben; und das Deduplizierungs-Backup-System veranlassen, ein oder mehrere neue Thin-List-Backup-Objekte für das vollständig bereitgestellte Volume zu speichern, basierend auf den Differenz-Metadaten und der einen oder mehreren Differenz-Chunk-Signaturen.
  16. Der Artikel nach Anspruch 11, wobei die Anweisungen ausführbar sind, um: feststellen, ob das Volume vollständig bereitgestellt ist; und Erzeugen der einen oder mehreren Thin-Listen und der Nutzungs-Metadaten als Reaktion auf die Feststellung, dass das Volume vollständig bereitgestellt ist.
  17. Ein Computergerät, das Folgendes umfasst: mindestens eine Verarbeitungsressource; und mindestens ein nicht-transitorisches, maschinenlesbares Speichermedium, das Anweisungen enthält, die von mindestens einer Verarbeitungsressource ausgeführt werden können, um: bestimmen, dass ein Volume eines Computersystems ein vollständig bereitgestelltes Volume ist; eine Menge von Chunks zu bestimmen, die den Dateninhalt eines gesamten Adressraums eines vollständig bereitgestellten Volumes eines Rechensystems umfassen; Erzeugen einer vollständigen Liste von Chunk-Signaturen, die den Dateninhalt des gesamten Adressraums des vollständig bereitgestellten Volumes repräsentieren, wobei die vollständige Liste von Chunk-Signaturen eine jeweilige Chunk-Signatur für jeden Chunk des Satzes von Chunks enthält; jede Chunk-Signatur der vollständigen Liste mit einer Chunk-Signatur für einen unbenutzten Bereich vergleichen, die einen Chunk eines unbenutzten Bereichs des vollständig bereitgestellten Volumes darstellt; Erzeugen einer Verwendungskarte, die benutzte Regionen und unbenutzte Regionen des vollständig bereitgestellten Volumes basierend auf den Vergleichen anzeigt; Erzeugen einer dünnen Liste von Chunk-Signaturen aus der vollständigen Liste, wobei alle Chunk-Signaturen aus der vollständigen Liste weggelassen werden, die mit der Chunk-Signatur des unbenutzten Bereichs übereinstimmen; Speichern eines Thin-List-Backup-Objekts, das das vollständig bereitgestellte Volume repräsentiert, in einem Deduplizierungs-Backup-System auf der Grundlage der Thin-List und der Verwendungsübersicht.
  18. Das Computergerät nach Anspruch 17, wobei die eine oder die mehreren vollständigen Listen den Dateninhalt des vollständig bereitgestellten Volumes zu einem ersten Zeitpunkt darstellen, wobei die Anweisungen ausführbar sind, um: Chunks des vollständig bereitgestellten Volumes bestimmen, die sich zu einem zweiten Zeitpunkt später als zum ersten Zeitpunkt unterscheiden; Erzeugen einer oder mehrerer Differenz-Chunk-Signaturen, die jeweils eine Chunk-Signatur für einen jeweiligen der Chunks umfassen, die sich zu dem zweiten Zeitpunkt unterscheiden, basierend auf Differenz-Metadaten, die für jeden der Chunks, die sich zu dem zweiten Zeitpunkt unterscheiden, den Ort des abweichenden Chunks in dem vollständig bereitgestellten Volume angeben; und das Deduplizierungs-Backup-System veranlassen, ein neues Thin-List-Backup-Objekt für das vollständig bereitgestellte Volume zu speichern, basierend auf den Differenz-Metadaten und der einen oder mehreren Differenz-Chunk-Signaturen.
  19. Das Computergerät nach Anspruch 17, wobei die Anweisungen zu: die Chunk-Signatur für den unbenutzten Bereich erzeugen, indem eine Signaturfunktion auf eine Sammlung von Daten angewendet wird, die einem Chunk eines unbenutzten Bereichs eines vollständig bereitgestellten Volumes entspricht.
  20. Das Computergerät nach Anspruch 19, wobei die Sammlung von Daten, die einem Chunk einer unbenutzten Region eines vollständig bereitgestellten Volumes entspricht, alle Nullen umfasst.
DE102021105996.8A 2020-04-20 2021-03-11 Sicherungsobjekte für vollständig bereitgestellte datenträger mit dünnen listen von chunk-signaturen Pending DE102021105996A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/852,711 2020-04-20
US16/852,711 US11436092B2 (en) 2020-04-20 2020-04-20 Backup objects for fully provisioned volumes with thin lists of chunk signatures

Publications (1)

Publication Number Publication Date
DE102021105996A1 true DE102021105996A1 (de) 2021-10-21

Family

ID=77919607

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021105996.8A Pending DE102021105996A1 (de) 2020-04-20 2021-03-11 Sicherungsobjekte für vollständig bereitgestellte datenträger mit dünnen listen von chunk-signaturen

Country Status (3)

Country Link
US (1) US11436092B2 (de)
CN (1) CN113535467B (de)
DE (1) DE102021105996A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11321278B2 (en) * 2020-04-29 2022-05-03 Rubrik, Inc. Light-weight index deduplication and hierarchical snapshot replication

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3183719B2 (ja) 1992-08-26 2001-07-09 三菱電機株式会社 アレイ型記録装置
US7043637B2 (en) 2001-03-21 2006-05-09 Microsoft Corporation On-disk file format for a serverless distributed file system
US7694103B1 (en) * 2006-06-23 2010-04-06 Emc Corporation Efficient use of memory and accessing of stored records
US8484427B1 (en) * 2006-06-28 2013-07-09 Acronis International Gmbh System and method for efficient backup using hashes
US20080282047A1 (en) 2007-05-08 2008-11-13 Hitachi, Ltd. Methods and apparatus to backup and restore data for virtualized storage area
JP5346536B2 (ja) 2008-10-02 2013-11-20 株式会社日立ソリューションズ 情報バックアップ/リストア処理装置、及び情報バックアップ/リストア処理システム
US8671082B1 (en) * 2009-02-26 2014-03-11 Netapp, Inc. Use of predefined block pointers to reduce duplicate storage of certain data in a storage subsystem of a storage server
US8346727B1 (en) * 2010-03-15 2013-01-01 Symantec Corporation Optimized image archiving
US8898114B1 (en) * 2010-08-27 2014-11-25 Dell Software Inc. Multitier deduplication systems and methods
US9823981B2 (en) 2011-03-11 2017-11-21 Microsoft Technology Licensing, Llc Backup and restore strategies for data deduplication
US8782003B1 (en) * 2011-05-13 2014-07-15 Emc Corporation Synchronization of storage using log files and snapshots
US8745003B1 (en) * 2011-05-13 2014-06-03 Emc Corporation Synchronization of storage using comparisons of fingerprints of blocks
US20130080397A1 (en) * 2011-09-28 2013-03-28 Symantec Corporation Database restore using incremental backups in reverse order
AU2012347866A1 (en) * 2011-12-05 2014-07-24 Doyenz Incorporated Universal pluggable cloud disaster recovery system
US9098452B2 (en) * 2011-12-19 2015-08-04 International Business Machines Corporation Selecting files to backup in a block level backup
KR101403305B1 (ko) 2012-08-23 2014-06-05 한국전자통신연구원 백업부트레코드 정보를 이용한 파티션 복구 장치 및 방법
US9055112B2 (en) * 2012-09-18 2015-06-09 Amazon Technologies, Inc. Dynamically allocating network addresses
US9514002B2 (en) 2013-09-13 2016-12-06 Vmware, Inc. Incremental backups using retired snapshots
US9582194B2 (en) 2013-09-27 2017-02-28 Veritas Technologies Llc Techniques for improving performance of a backup system
US9372757B2 (en) * 2013-10-18 2016-06-21 Netapp, Inc. Incremental block level backup
US9483481B2 (en) 2013-12-06 2016-11-01 International Business Machines Corporation Files having unallocated portions within content addressable storage
US9652468B2 (en) * 2013-12-17 2017-05-16 Annapurna Labs Ltd. In-band de-duplication
EP3213211A4 (de) 2014-10-29 2017-09-06 Hewlett-Packard Enterprise Development LP Daten unter verwendung von karten zuteilung
US20170293531A1 (en) 2014-11-17 2017-10-12 Hewlett Packard Enterprise Development Lp Snapshot backup
US10019318B1 (en) 2015-01-30 2018-07-10 Veritas Technologies Llc Storage optimization of pre-allocated units of storage
US10248623B1 (en) * 2015-03-30 2019-04-02 EMC IP Holding Company LLC Data deduplication techniques
CN107526652B (zh) * 2016-06-21 2021-08-20 华为技术有限公司 一种数据同步方法及存储设备
CN106227621B (zh) * 2016-07-25 2019-03-01 北京飞杰信息技术有限公司 基于逻辑卷管理精简卷的数据备份方法及系统
US20210019236A1 (en) * 2019-07-19 2021-01-21 Commvault Systems, Inc. Efficient reconstruction of a deduplication database

Also Published As

Publication number Publication date
CN113535467B (zh) 2023-07-18
CN113535467A (zh) 2021-10-22
US11436092B2 (en) 2022-09-06
US20210326213A1 (en) 2021-10-21

Similar Documents

Publication Publication Date Title
DE102013215535B4 (de) Sicherung oder wiederherstellung von daten mit hilfe eines hauptspeichers und nichtflüchtiger speichermedien
DE112008003826B4 (de) Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung
DE102013204972B4 (de) Hybride Sicherung und Wiederherstellung eines sehr grossen Dateisystems unter Verwendung von Metadaten-Abbildsicherung und herkömmlicher Sicherung
DE60025749T2 (de) Dateisystemabbildübertragung zwischen ungleichen dateisystemen
DE112007003678B4 (de) Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung
DE112007003645B4 (de) Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung
DE102013208930B4 (de) Zusammenfassen von Einträgen in einem Deduplizierungs-lndex
DE112010004931B4 (de) Mehrphasige Wiederherstellung von Dateisystemen mit Selektiver Bedarfsweiser Verfügbarkeit von Daten
DE112017005868T5 (de) Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem
DE102013215009A1 (de) Verfahren und System zur Optimierung der Datenübertragung
DE112018003585B4 (de) Verfahren, Computerprogrammprodukt und Speicherbandlaufwerk-Hardwareeinheit zum Verbessern der Deduplizierung eines Bandlaufwerkspeichers
DE112010003262B4 (de) Synchronisierung replizierter sequenzieller Zugriffsspeicherkomponenten
DE112020000694T5 (de) Erzeugung und ausführung von sicheren containern
DE102009031923A1 (de) Verfahren zum Verwalten von Datenobjekten
DE112011100534T5 (de) Mehrstufiger Sicherungsprozess
DE102016010277A1 (de) Verfahren und systeme zum verbessern von speicher-journaling
DE102017104073B4 (de) Verallgemeinertes Verifikationsverfahren für Schreiboperationen
DE112016000176T5 (de) Datendeduplizierung unter Verwendung von Chunk-Dateien
DE112012003695T5 (de) Aufrechterhalten mehrerer Zielkopien
DE112014000448T5 (de) Auszugabruf beruhend auf Ähnlichkeitssuche bei Datendeduplizierung
DE102017104080A1 (de) Generalisiertes verifizierungsschema für sichere metadaten-modifizierung
DE602004007925T2 (de) Verwalten einer beziehung zwischen einem zielvolumen und einem quellenvolumen
DE112017000167T5 (de) Verteilte Datendeduplizierung in einem Prozessorraster
DE102012221814A1 (de) Neuanordnung von Software-Abbildern auf der Grundlage von deren vorhergesagter Verwendung
DE102021126985A1 (de) Speicherung einer kleinen objektdarstellung in einem deduplizierungssystem

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, SPR, US

Free format text: FORMER OWNER: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, WEST HOUSTON, TX, US

R016 Response to examination communication