DE102016204710A1 - Sichern und Wiederherstellen von Klondaten - Google Patents

Sichern und Wiederherstellen von Klondaten Download PDF

Info

Publication number
DE102016204710A1
DE102016204710A1 DE102016204710.8A DE102016204710A DE102016204710A1 DE 102016204710 A1 DE102016204710 A1 DE 102016204710A1 DE 102016204710 A DE102016204710 A DE 102016204710A DE 102016204710 A1 DE102016204710 A1 DE 102016204710A1
Authority
DE
Germany
Prior art keywords
file
clone
data
request
clone file
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
DE102016204710.8A
Other languages
English (en)
Inventor
Stefan Bender
Nils Haustein
Dominic Mueller-Wicke
Wayne A. Sawdon
James P. Smith
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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
Priority claimed from US14/672,936 external-priority patent/US10049121B2/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102016204710A1 publication Critical patent/DE102016204710A1/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
    • 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/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Bei einem Ansatz zum Sichern und Wiederherstellen von einem oder mehreren Klondateibäumen erzeugen ein oder mehrere Prozessoren eine Klonverwaltungstabelle. Ein oder mehrere Prozessoren zeichnen Klonverwaltungsinformationen zu jeder Klondatei in der Klonverwaltungstabelle auf. Zum Sichern einer Klondatei aktualisieren ein oder mehrere Prozessoren die Klonverwaltungsinformationen und speichern einen oder mehrere Datenblöcke, die sich in dem einen oder den mehreren Klondateibäumen befinden. Zum Wiederherstellen einer Klondatei analysieren ein oder mehrere Prozessoren Klonverwaltungsinformationen und stellen einen oder mehrere Datenblöcke in der Klondatei wieder her. Zum Wiederherstellen einer Klondatei-Elterndatei analysieren ein oder mehrere Prozessoren Klonverwaltungsinformationen und stellen einen oder mehrere Datenblöcke in der Klondatei-Elterndatei wieder her. Zum Wiederherstellen eines Klondateibaums analysieren ein oder mehrere Prozessoren Klonverwaltungsinformationen und stellen einen oder mehrere Datenblöcke in dem Klondateibaum wieder her.

Description

  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich im Allgemeinen auf das Gebiet von Dateisystemen und im Besonderen auf Dateisysteme mit Klondateien.
  • Das erhebliche Wachstum der Menge an Daten, die in schnell zugänglicher Form gespeichert werden müssen, ist eine Herausforderung für Systemplaner, die sich mit Speichereffizienz und dem Schutz der Datenintegrität befassen. So erfordern z. B. Analysefunktionen, Stream-Computing (die Analyse von bandbreitenintensiven Datenströmen aus Echtzeitquellen) und Data-Warehousing einen schnellen Zugriff auf große Mengen von Daten. In grollen Speichersystemen müssen Daten für eine umgehende und wiederholte Verarbeitung verfügbar, gegen Hardware- und Software-Ausfälle geschützt und hinsichtlich ihrer Größe und des Ausmaßes an Datenverarbeitungsleistung, das auf sie angewendet werden kann, skalierbar sein. Effiziente Speichermethoden ermöglichen häufig eine höhere Geschwindigkeit von Speichersystemen, wodurch den Benutzern ein schneller Zugriff gewährt werden kann.
  • Zur effizienten Speichernutzung wurde eine als Dateiklonen bezeichnete Methode verwendet, um den Speicherplatz zu verringern, der von mehreren Versionen (Klonen) einer von mehreren Benutzern geöffneten und bearbeiteten Datei belegt wird. Durch ein Dateiklonen kann Speicherplatz gespart werden, indem eine Originaldatei in einem Nur-Lese-Modus gespeichert wird und zusätzlicher Speicherplatz nur für die Daten zugewiesen wird, die durch Benutzer in die Datei geschrieben werden. Der zusätzliche Platz ist gerade groß genug, um die neuen Daten aufzunehmen, die durch einen Benutzer in die Klondatei geschrieben wurden. Der zusätzliche Platz ist ausles- und beschreibbar und wird so ausgelesen, so dass auf neu geschriebene Daten, die nicht in der Originaldatei vorhanden sind, zugegriffen werden kann. Daten, die nicht geändert wurden, werden aus der Originaldatei gelesen. Eine derartige Anordnung wird als Klondatei bezeichnet.
  • Hierdurch können z. B. zwei Kopien einer Datei (zwei Klone der Datei), die durch zwei Benutzer geändert werden, lediglich einen Bruchteil des Platzes belegen, den andernfalls zwei vollständige Kopien der Originaldatei, eine für jeden Benutzer, belegt hätten. Ein Dateiklonen verringert den Gesamtplatzbedarf für Dateikopien, wenn die Dateikopien (als Kinddateien oder Klondateien bezeichnet) gegenüber den Originaldateien (Elterndateien) eine beträchtliche Menge an unveränderten Daten aufweisen.
  • So können Klondateien z. B. für die Bereitstellung von virtuellen Maschinen verwendet werden, indem durch Klonen einer gemeinsamen Basis-Abbild-Datei, die oft auch als goldenes Abbild bezeichnet wird, für jede Maschine eine virtuelle Platte erzeugt wird. Eine hiermit zusammenhängende Nutzung besteht darin, im Rahmen der Erstellung eines Schnappschusses des Maschinenzustands das Abbild der virtuellen Platte einer einzelnen Maschine zu klonen. Das Klonen einer Datei hat Ähnlichkeit mit dem Erzeugen einer Kopie einer Datei, der Erzeugungsprozess ist allerdings schneller und platzsparender, da bis zur Änderung des Klons oder der Originaldatei kein zusätzlicher Plattenplatz in Anspruch genommen wird. Mehrere Klone ein und derselben Datei können erzeugt werden, ohne dass zusätzlicher Speicherplatz zugewiesen wird, und Klone von Klonen können erzeugt werden. Während das Klonen von Dateien den Speicherplatz für aktive Dateien auf einem Server verringert, wird bei gegenwärtigen Methoden zum Sichern von Klondateien für jede Klondatei, die gesichert wird, der Speicherplatz einer nicht geklonten Datei belegt und beim Wiederherstellen die Original-Klondateien als nicht geklonte Dateien wiederhergestellt.
  • Unixartige Dateisysteme zeichnen Informationen in Datenstrukturen auf, die als „Inodes” bezeichnet werden und zum Auffinden und Verwalten von Dateien dienen. In einem unixartigen Dateisystem ist ein informell auch als „Inode” bezeichneter Indexknoten eine Datenstruktur, die für ein Dateisystemobjekt steht, bei dem es sich unter anderem um eine Datei oder ein Verzeichnis handeln kann. Inodes speichern die Attribute und Plattenblockposition(en) der Daten des Dateisystemobjekts. Zu Attributen des Dateisystemobjekts können Bearbeitungsmetadaten (z. B. Änderungs-, Zugriffs- und Modifizierungszeitpunkte) sowie Besitzer- und Berechtigungsdaten (z. B. Gruppen-ID, Benutzer-ID und Berechtigungen) gehören. Inodes dienen außerdem dem Erzeugen und Verwalten von Klondateien in einem unixartigen Dateisystem, das Klondateien unterstützt. Die Metadaten in einem Inode einer Klondatei geben deren Elterndatei an.
  • KURZDARSTELLUNG
  • Aspekte einer Ausführungsform der vorliegenden Erfindung offenbaren ein Verfahren, Programmprodukt und System zum Sichern und Wiederherstellen von einem oder mehreren Klondateibäumen. Das Verfahren beinhaltet ein Erzeugen einer Klonverwaltungstabelle durch einen oder mehrere Prozessoren. Das Verfahren beinhaltet des Weiteren ein Aufzeichnen von Klonverwaltungsinformationen zu jeder Klondatei in einem oder mehreren Klondateibäumen in einem Dateisystem durch einen oder mehrere Prozessoren in der Klonverwaltungstabelle. Als Reaktion auf ein Empfangen einer Sicherungsanforderung beinhaltet das Verfahren des Weiteren ein Aktualisieren der Klonverwaltungsinformationen und ein Speichern von einem oder mehreren Datenblöcken, die sich in dem einen oder den mehreren Klondateibäumen befinden, durch einen oder mehrere Prozessoren. Als Reaktion auf ein Empfangen einer Anforderung zum Wiederherstellen einer Klondatei beinhaltet das Verfahren des Weiteren ein Analysieren von Klonverwaltungsinformationen zu der Klondatei und ein Wiederherstellen von einem oder mehreren Datenblöcken in der Klondatei in dem Dateisystem durch einen oder mehrere Prozessoren. Als Reaktion auf ein Empfangen einer Anforderung zum Wiederherstellen einer Klondatei-Elterndatei beinhaltet das Verfahren des Weiteren ein Analysieren von Klonverwaltungsinformationen zu der Klondatei-Elterndatei und ein Wiederherstellen von einem oder mehreren Datenblöcken in der Klondatei-Elterndatei in dem Dateisystem durch einen oder mehrere Prozessoren. Als Reaktion auf ein Empfangen einer Anforderung zum Wiederherstellen eines Klondateibaums beinhaltet das Verfahren des Weiteren ein Analysieren einer Klonverwaltungsinformationen zu dem Klondateibaum und ein Wiederherstellen von einem oder mehreren Datenblöcken in dem Klondateibaum in dem Dateisystem durch einen oder mehrere Prozessoren.
  • KURZBESCHREIBUNG DER VERSCHIEDENEN ANSICHTEN DER ZEICHNUNGEN
  • 1 stellt ein Blockschaubild eines Klondateibaums dar.
  • 2 stellt ein Blockschaubild eines Teils eines Datenverarbeitungskomplexes gemäß einer Ausführungsform der vorliegenden Erfindung dar.
  • 3 stellt ein Detail eines in 2 dargestellten Datenverarbeitungsknotens A gemäß einer Ausführungsform der vorliegenden Erfindung dar.
  • 4 stellt ein Detail einer in 3 dargestellten Klonverwaltungstabelle gemäß einer Ausführungsform der vorliegenden Erfindung dar.
  • 5 stellt ein Detail von beispielhaften Inhalten der in 3 dargestellten Klonverwaltungstabelle gemäß einer Ausführungsform der vorliegenden Erfindung dar.
  • 6 stellt ein Blockschaubild eines beispielhaften Klondateibaums gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung dar.
  • 7 stellt ein Blockschaubild eines beispielhaften Klondateibaums gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung dar.
  • 8 stellt ein Detail von beispielhaften Inhalten der in 3 dargestellten Klonverwaltungstabelle gemäß einer Ausführungsform der vorliegenden Erfindung dar.
  • 9 stellt ein Detail von beispielhaften Inhalten der in 3 dargestellten Klonverwaltungstabelle gemäß einer Ausführungsform der vorliegenden Erfindung dar.
  • 10 stellt ein Detail von beispielhaften Inhalten der in 3 dargestellten Klonverwaltungstabelle gemäß einer Ausführungsform der vorliegenden Erfindung dar.
  • 11 stellt eine beispielhafte Darstellung eines Klondateibaums, der wiederhergestellt wurde, gemäß einer Ausführungsform der vorliegenden Erfindung dar.
  • 12 stellt eine beispielhafte Darstellung einer Klondatei, die wiederhergestellt wurde, gemäß einer Ausführungsform der vorliegenden Erfindung dar.
  • 13 stellt einen Ablaufplan gemäß einer Ausführungsform der vorliegenden Erfindung dar, der Funktionsschritte veranschaulicht, die von einem Sicherungs- und Wiederherstellungsserver aus 3 durchgeführt werden.
  • 14 stellt ein Blockschaltbild eines Computersystems gemäß einer Ausführungsform der vorliegenden Erfindung dar, das den in den 2 und 3 dargestellten Datenverarbeitungsknoten A enthält.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Ausführliche Ausführungsformen der vorliegenden Erfindung werden hier mit Bezug auf die beigefügten Zeichnungen offenbart. Dabei sallte klar sein, dass die offenbarten Ausführungsformen lediglich mögliche Ausführungsformen der vorliegenden Erfindung veranschaulichen und verschiedene Formen annehmen können. Darüber hinaus ist jedes der Beispiele, das in Verbindung mit den verschiedenen Ausführungsformen genannt wird, als veranschaulichend und nicht einschränkend gedacht. Des Weiteren sind die Figuren nicht notwendigerweise maßstabsgerecht, und manche Merkmale können vergrößert dargestellt sein, um Einzelheiten bestimmter Komponenten zu zeigen. Daher sind spezifische struktur- und funktionsbezogene Einzelheiten, die hier offenbart werden, nicht als Beschränkung, sondern lediglich als eine repräsentative Grundlage zu betrachten, um einem Fachmann zu vermitteln, wie sich die vorliegende Erfindung auf verschiedene Arten verwenden lässt.
  • Wenn in der Beschreibung auf „eine bestimmte Ausführungsform”, „eine Ausführungsform”, „eine als Beispiel dienende Ausführungsform” Bezug genommen wird, bedeutet dies, dass die beschriebene Ausführungsform ein bestimmtes Merkmal, eine Struktur oder ein kennzeichnendes Element enthält, wobei jedoch nicht notwendigerweise jede Ausführungsform das betreffende Merkmal, die Struktur oder das kennzeichnende Element enthält. Zudem beziehen sich solche Formulierungen nicht notwendigerweise auf dieselbe Ausführungsform. Wenn in Verbindung mit einer Ausführungsform ein bestimmtes Merkmal, eine Struktur oder ein kennzeichnendes Element beschrieben wird, wird des Weiteren angenommen, dass der Fachmann weiß, wie sich ein solches Merkmal, eine Struktur oder ein kennzeichnendes Element in Verbindung mit anderen Ausführungsformen bewerkstelligen lassen würde, unabhängig davon, ob es/sie explizit beschrieben ist.
  • Eine Klondatei ist eine schreibbare Momentaufnahme einer einzelnen Datei zu einem bestimmten Zeitpunkt. Klondateien können für ein Bereitstellen von virtuellen Maschinen verwendet werden, indem durch Klonen einer gemeinsamen Basis-Abbild-Datei, die oft auch als goldenes Abbild bezeichnet wird, für jede Maschine eine virtuelle Platte erzeugt wird. Eine hiermit zusammenhängende Nutzung besteht darin, im Rahmen des Erstellens eines Schnappschusses des Maschinenzustands das Abbild der virtuellen Platte einer einzelnen Maschine zu klonen. Das Klonen einer Datei hat Ähnlichkeit mit dem Erzeugen einer Kopie einer Datei, der Erzeugungsprozess ist allerdings schneller und platzsparender, da bis zur Änderung des Klons oder der Originaldatei kein zusätzlicher Plattenplatz belegt wird. Es können mehrere Klone derselben Datei erzeugt werden, ohne dass zusätzlicher Platzbedarf entsteht. Es können Klone von Klonen erzeugt werden.
  • Dateiklonen ist ein Konzept zum Verringern des Gesamtplatzbedarfs für Dateikopien, bei denen die Dateikopien (Kinddateien oder Klone) gegenüber den Originaldateien (Elterndateien) eine beträchtliche Menge an unveränderten Daten aufweisen. Eine Ausführungsform beinhaltet ein Dateisystem, welches das Konzept von Klondateien realisiert und die Begriffe „Elterndatei”, „Eltern-” oder „Klon-Elterndatei” für die Originaldatei und „Klondatei” oder „Klon” für einen Klon einer Elterndatei verwendet. Eine Klon-Elterndatei ist eine schreibgeschützte Datei, die alle Datenblöcke enthält, die beim Erzeugen des Klons ursprünglich in der Datei enthalten waren. Wenn eine Klondatei erzeugt wird, können die Daten in ihrer Elterndatei nur noch gelesen werden. Ein Klon (d. h. eine Kinddatei einer Elterndatei) ist eine Datei, die nur die Datenblöcke enthält, die in Bezug auf die Elterndatei geschrieben oder hinzugefügt wurden. Diese Datenblöcke in der Klondatei sind Datenblöcke, die in Bezug auf die Elterndatei modifiziert (hinzugefügt oder geändert) wurde. Wenn ein Datenblock aus der Klondatei oder ihrer Elterndatei gelöscht wird, wird auch seine Darstellung in der Klondatei gelöscht. Ein Benutzer einer Klon-Kinddatei greift auf alle nicht modifizierten Daten aus der Elterndatei zu. Die Klon-Kinddatei ist ohne eine Elterndatei nicht von Nutzen, da sie nicht sämtliche in einer Datei vorhandenen Daten enthält, weshalb eine gültige Klon-Kinddatei nicht ohne eine Elterndatei vorkommt. Wenn ein Benutzer in einem Klone realisierenden Dateisystem einen Datenblock (aus einer geklonten Datei) liest, der seit dem Erzeugen des Klons nicht modifiziert wurde, liest das Dateisystem den Datenblock automatisch aus der Elterndatei und gibt ihn an den Benutzer zurück, andernfalls liest das Dateisystem den Block aus dem Klon.
  • Eine Klondatei kann geklont werden. So kann z. B. eine Klondatei B mit einer Elterndatei A geklont werden. Wenn aus der Klondatei B eine zusätzliche Klondatei, z. B. Klondatei C, erzeugt wird, können die Daten in der Klondatei B nur noch gelesen und nicht mehr geändert werden. An diesem Punkt enthält die Klondatei B Daten, die nach dem Erzeugen der Klondatei B in der Elterndatei A ergänzt oder geändert wurden. Wenn die Klondatei C erzeugt wird, sind die Daten sowohl in der Elterndatei A als auch in der Klondatei B unveränderlich, d. h., die Daten in der Elterndatei A und der Klondatei B bleiben während der Lebensdauer der Dateien unverändert. Wenn die Klondatei C erzeugt wird, wird die Klondatei B zur Elterndatei der Klondatei C. Alle daraufhin erfolgenden Schreibvorgänge und Ergänzungen zu Daten in der Elterndatei A und in der Klondatei B werden in der Klondatei C gespeichert. Wenn ein Benutzer der Klondatei C aus der Klondatei C liest, können die tatsächlichen Daten aus der Klondatei C oder aus ihrer Elterndatei, der Klondatei B, oder aus der Elterndatei der Klondatei B, der Elterndatei A, gelesen werden, d. h., die Daten werden aus der Klondatei gelesen, welche die neueste Kopie der Daten enthält.
  • Eine Elterndatei kann mehrere Kinddateien aufweisen. Das heißt, eine Datei, die geklont wird und zu einer Elterndatei wurde, kann wiederum geklont werden. Wenn die Datei zum ersten Mal geklont wird, können die Daten in einer Elterndatei nur noch gelesen werden. Eine Elterndatei mit mehreren Kinddateien, die wiederum selbst geklont worden sein können, ist als alleiniger Stamm eines Baums von Klondateien vorstellbar. Ein derartiger Baum von Klondateien wird als Klondateibaum bezeichnet.
  • 1 stellt einen Klondateibaum 100 dar. Klondatei 101 ist die Originaldatei und befindet sich in einer Baumtiefe von 0. Klondatei 111 ist ein Klon der Klondatei 101, und wenn die Klondatei 111 erzeugt wird, wird die Klondatei 101 zur Elterndatei der Klondatei 111, und die Daten in der Klondatei 101 können nur noch gelesen und nicht mehr geändert werden. Die Klondatei 111 befindet sich in einer Klonbaumtiefe von 1. Wenn eine Klondatei 121 erzeugt wird, bei der es sich um einen Klon der Klondatei 111 handelt, wird die Klondatei 111 zur Elterndatei der Klondatei 121, und die Daten in der Klondatei 111 können nur noch gelesen und nicht mehr geändert werden. Die Klondatei 121 befindet sich in einer Baumtiefe von 2. Die Klondatei 111 enthält Daten, die geschrieben oder ergänzt wurden, nachdem die Klondatei 111 erzeugt wurde, und die Klondatei 121 enthält Daten, die geschrieben oder ergänzt wurden, nachdem die Klondatei 121 erzeugt wurde. Wenn ein Benutzer Daten aus der Klondatei 121 liest, werden die Daten daher ohne Wissen des Benutzers aus der Klondatei gelesen, welche die neueste Kopie der Daten enthält, Klondatei 101, Klondatei 111 oder Klondatei 121. Klondatei 1N1 befindet sich in einer Baumtiefe von N am Ende einer Kette von Klondateien und verdeutlicht, dass eine Kette von Klondateien beliebig lang sein kann. Wenn ein Benutzer Daten aus der Klondatei 1N1 liest, werden die Daten ohne Wissen des Benutzers beginnend mit der Klondatei 101 aus einer Klondatei in der Kette gelesen, welche die neueste Kopie der Daten enthält.
  • Die Klondatei 101 hat mehrere Kloddateien. Wie in 1 gezeigt, wurde die Klondatei 101 des Klonbaums 100 ein zweites Mal geklont, wodurch die Klondatei 101 zur Elterndatei einer zweiten Klondatei, der Klondatei 112, wird. In dem Klonbaum 100 wurde die Klondatei 112 zweimal geklont, wodurch sie einmal die Elterndatei von Klondatei 122 und ein zweites Mal die Elterndatei von Klondatei 123 wurde.
  • Bei Ausführungsformen der vorliegenden Erfindung wird deutlich, dass beträchtliche Speichereffizienzgewinne entstehen, wenn Klondateien in einem Klondateibaum wie dem Klondateibaum 100 so gesichert werden, dass Daten auf einem Sicherungsserver nicht repliziert werden. Bei Ausführungsformen der vorliegenden Erfindung wird außerdem deutlich, dass beträchtliche Speichereffizienzgewinne entstehen, wenn ein Klondateibaum nach der Sicherung ganz oder teilweise in seiner ursprünglichen Klondateibaumform in einem Dateisystem wiederhergestellt werden kann, um so die dem Klondateibaum innewohnenden Speicherplatzeffizienzgewinne zu bewahren. Bei Ausführungsformen der vorliegenden Erfindung werden Informationen in einer Klonverwaltungstabelle verwaltet, welche die Sicherung und Wiederherstellung eines Teils oder der Gesamtheit eines Klondateibaums dergestalt ermöglicht, dass Datenredundanzen ausgeschlossen sind und ein Klondateibaum in der Form wiederhergestellt wird, die er bei seiner Sicherung aufgewiesen hat.
  • Bei einer Ausführungsform ist ein Dateisystem enthalten, das in dem Dateisystem in einer als „Inode” bezeichneten Struktur Informationen zu einer Datei speichert. Unixartige Dateisysteme zeichnen in Inodes z. B. Informationen auf, die zum Auffinden und Verwalten von Dateien dienen. In einem unixartigen Dateisystem ist ein informell auch als „Inode” bezeichneter Indexknoten eine Datenstruktur, die für ein Dateisystemobjekt steht, bei dem es sich unter anderem um eine Datei oder ein Verzeichnis handeln kann. Inodes speichern die Attribute und Plattenblockposition(en) der Daten des Dateisystemobjekts. Zu Attributen des Dateisystemobjekts können Bearbeitungsmetadaten (z. B. Änderungs-, Zugriffs- und Modifizierungszeitpunkte) sowie Besitzer- und Berechtigungsdaten (z. B. Gruppen-ID, Benutzer-ID und Berechtigungen) gehören. In manchen Szenarien und Ausführungsformen sind Informationen zu einem oder mehreren Inodes in den Informationen in der Klonverwaltungstabelle enthalten, die zum Verwalten von Klondateien und zur Sicherung und Wiederherstellung von Klondateien und Klondateibäumen dient.
  • In manchen Ausführungsformen und Szenarien wird das automatische Ermitteln der Position eines durch einen Benutzer gelesenen Datenblocks durch Metadaten ermöglicht, die in einem Inode der Klon-Kinddatei und in einem Inode der Klon-Elterndatei gespeichert sind. Die Inode-Metadaten in der Kinddatei geben die Elterndatei an. Andere Daten in der Kinddatei geben die Positionen von Datenblöcken an, die sich in der Kinddatei (modifizierte Daten) und in der Elterndatei (nichtmodifizierte Daten) befinden. Bei einer Ausführungsform beinhalten die Inode-Metadaten in der Elterndatei einen Zählwert der Klon-Kinddateien der Elterndatei.
  • 2 stellt ein verteiltes Datenverarbeitungssystem 200 dar. In manchen Szenarien und Ausführungsformen besteht das Datenverarbeitungssystem 200 aus einen Client-Host 201, der über ein Netzwerk 202 mit einem verteilten Dateisystem 203 verbunden ist. Der Client-Host 201 führt eine Anwendung 212 aus, die auf Dateien in dem verteilten Dateisystem 203 zugreift. Das verteilte Dateisystem 203 besteht aus einer Netzwerkverbindung 204, einem Datenverarbeitungsknoten A 205, einem Datenverarbeitungsknoten B 206 und einem Datenverarbeitungsknoten C 207, einem Speichernetzwerk 208 und Speichereinheiten 209, 210 und 211. Das Speichernetzwerk 208 verbindet den Datenverarbeitungsknoten A 205, den Datenverarbeitungsknoten B 206 und den Datenverarbeitungsknoten C 207 mit den Speichereinheiten 209, 210 und 211 und ermöglicht jedem Datenverarbeitungsknoten den Zugriff auf jede Speichereinheit. Das verteilte Dateisystem 203 ist ein Dateiserver für den Client-Host 201 und stellt Sicherungs- und Wiederherstellungsdienste für Daten bereit, die in dem verteilten Dateisystem 203 gespeichert sind. Klondateien und Klondateibäume können in dem verteilten Dateisystem 203 erzeugt, gespeichert, gesichert und wiederhergestellt werden. Der Fachmann weiß, dass das Datenverarbeitungssystem 200 eine unterschiedliche Anzahl von Datenverarbeitungsknoten und Speichereinheiten aufweisen kann und dass die Anzahl von Client-Hosts und Anwendungen, die auf einem Client-Host ausgeführt werden, variieren kann.
  • Der Datenverarbeitungsknoten A 205, der Datenverarbeitungsknoten B 206 und der Datenverarbeitungsknoten C 207 sind Computer, auf denen sich Software befindet, die das verteilte Dateisystem 203 verwaltet und die als Reaktion auf Anforderungen der auf dem Client-Host 201 ausgeführten Anwendung 212 auf Daten in den Speichereinheiten 209, 210 und 211 zugreifen. Der Datenverarbeitungsknoten A 205, der Datenverarbeitungsknoten B 206 und der Datenverarbeitungsknoten C 207 greifen auch auf die Speichereinheiten 209, 210 und 211 zu, um Daten zu sichern und wiederherzustellen, die von dem verteilten Dateisystem 203 verwaltet werden.
  • 3 stellt den Datenverarbeitungsknoten A in größerer Ausführlichkeit dar. In manchen Szenarien und Ausführungsformen weist der Datenverarbeitungsknoten A einen Dateiserver 301 und einen Sicherungs- und Wiederherstellungsserver 303 auf. Bei alternativen Ausführungsformen befindet sich der Sicherungs- und Wiederherstellungsserver 303 in einem oder mehreren Datenverarbeitungsknoten in dem verteilten Dateisystem 203. Bei einer Ausführungsform beinhaltet der Dateiserver 301 einen Sicherungs- und Wiederherstellungsclient 302. Der Sicherungs- und Wiederherstellungsserver 303 beinhaltet eine Klonverwaltungstabelle 304. Der Dateiserver 301 reagiert auf Datenanforderungen von der Anwendung 212, indem er auf Daten in den Speichereinheiten 209, 210 und 211 zugreift. Als Reaktion auf einen Zeitplan, einen Systemausfall oder eine Wartungsanforderung, die automatisch oder manuell erzeugt werden kann, sichert der Sicherungs- und Wiederherstellungsclient 302 Dateien in den Speichereinheiten 209, 210 und 211 und stellt sie wieder her. Bei einer Ausführungsform enthält die Klonverwaltungstabelle 304 Klonverwaltungsinformationen zu den Klondateien und Klondateibäumen, die in dem verteilten Dateisystem 203 gespeichert sind.
  • 4 stellt ein Detail von Informationen 400 in einem Eintrag in der Klonverwaltungstabelle 304 dar, die auf dem Sicherungs- und Wiederherstellungsserver 303 gespeichert ist. In manchen Szenarien und Ausführungsformen enthält die Klonverwaltungstabelle 304 einen oder mehrere Einträge pro Elterndatei oder Klondatei. Eine Elterndatei oder Klondatei enthält für jeden ihrer Datenblöcke in dem verteilten Dateisystem 203 einen Eintrag in der Klonverwaltungstabelle 304. Ein Dateiname 401 ist der eindeutige Bezeichner für das Dateisystemobjekt (Elterndatei oder Klondatei). Der Dateiname 401 ist der vollqualifizierende Pfad der Datei. Eine Datei-Inode-Nummer 402 ist die Inode-Nummer der Datei. Eine Dateigröße 403 ist die logische Größe der Datei in Dateisystemblöcken, d. h. die Anzahl von Blöcken, welche die Elterndatei am Stamm eines Klondateibaums (Stamm-Elterndatei) in dem Dateisystem verwendet. Datei-Inode-Daten 404 sind Dateimetadaten, die in dem Inode enthalten sind und ein Verwalten und Wiederherstellen der Datei ermöglichen. Bei einer Ausführungsform beinhalten die Datei-Inode-Daten 404 Berechtigungen, Zeitmarken, Zugriffssteuerungslisten (Access Control Lists, ACLs) und erweiterte Attribute (Extended Attributes, EAs). Die Datei-Inode-Daten 404 werden mitunter auch als intelligentes großes Binärobjekt (Binary Large Object Block, BLOB) bezeichnet. Der Block-Offset 405 ist der Offset eines eindeutigen Datenblocks in der Klondatei, die durch den Dateinamen 401 mit einer vorbestimmten Position in Bezug gesetzt wird. Die Blocklänge 406 ist die Länge eines eindeutigen Datenblocks in der Klondatei. Eine Elterndatei-Inode-Nummer 407 ist die Inode-Nummer der Elterndatei zu dem Dateinamen 401. Eine Tiefenebene 408 ist die Ebene der Datei in dem Klondateibaum, wobei der Stamm-Elterndatei ein Wert von 0 zugewiesen ist. Ein Kinddatei-Zählwert 409 ist die Anzahl von Klondateien (Kinddateien), deren Elterndatei die Datei ist, und dient unter anderem dazu, den Stamm eines Klondateibaums aufzufinden. Bei einer Ausführungsform gibt ein Kinddatei-Zählwert von 0 an, dass die Datei keine Kinddateien hat, und ein Dateizählwert von –1 gibt an, dass dieser Eintrag Informationen zu einem zusätzlichen Datenblock in der Datei enthält und dass ein weiterer Eintrag für die Datei den Kinddatei-Zählwert für die Datei enthält. Ein letzter Aktualisierungszeitpunkt 410 ist die Zeitmarke der letzten Aktualisierung dieses Eintrags während einer Sicherungsoperation zum Sichern der Datei. Ein Gültigkeitswert 411 ist ein Wert, der angibt, dass der Eintrag gültig ist. Die Gültigkeit eines Eintrags wird durch den Sicherungs- und Wiederherstellungscliont 302 geprüft, wenn der Sicherungs- und Wiederherstellungsclient 302 eine Gültigkeitsprüfung der Klonverwaltungstabelle 304 durchführt. Bei einer Ausführungsform lautet der Gültigkeitswert 411 „U”, wenn die Datei nicht geprüft ist (z. B. bei einer neuen oder aktualisierten Datei), der Gültigkeitswert 411 lautet „V”, wenn die Datei geprüft wurde und einen gültigen Elternklon aufweist, und der Gültigkeitswert 411 lautet „1”, wenn die Datei zwar geprüft wurde, der Klondateibaum, in dem sich die Datei befindet, jedoch an diesem Punkt der Gültigkeitsprüfung keine Klondatei aufweist.
  • 5 stellt Daten 500 in der Klonverwaltungstabelle 304 dar, wobei es sich um ein Beispiel eines in der Klonverwaltungstabelle 304 enthaltenen Datensatzes handelt, der bei einer Ausführungsform einen in 6 gezeigten Klondateibaum 600 beschreibt. Die Tabelle enthält zwei Elternklondateien in einer Klonbaumtiefe von 0. Jede Klondatei in einer Klonbaumtiefe von 0 ist per definitionem eine Elterndatei. In einer Tiefe von 0 befinden sich eine Klondatei D 601 und eine Klondatei Z 602. Die Klondatei Z 602 hat keine Kinddateien, und die Klondatei D 601 hat zwei Kinddateien. Da sich die Klondatei Z 602 in einer Tiefe von 0 befindet, aber keine Kinddateien hat, ist die Klondatei Z 602 eine Stamm-Elterndatei ohne Kinddateien. Eine Prüfung der Klondateien in der Klonverwaltungstabelle 304 in einer Tiefe von 1 des Klondateibaums 600 zeigt zwei Klondateien auf Ebene 1, Klondatei A 603 und Klondatei G 604, wobei beide Klondateien „0003” als Elterndatei-Inode-Nummer aufweisen. Die Datei-Inode-Nummer der Klondatei D 601 lautet „0003”, weshalb die Klondatei D 601 die Elterndatei der Klondatei A 603 und der Klondatei G 604 ist. Die Klondatei A 603 hat eine Kinddatei, und die Klondatei D 604 hat eine Kinddatei. Die Datei-Inode-Nummer der Klondatei A 603 lautet „0001”, weshalb eine Kinddatei der Klondatei A 603 eine Elterndatei-Inode-Nummer von „0001” aufweist. Die Elterndatei-Inode-Nummer der Klondatei X 605 lautet „0001”, weshalb die Klondatei X 605 die Kinddatei der Klondatei A 603 und die Klondatei A 603 die Elterndatei der Klondatei X 605 ist. Die Klondatei X 605 hat zwei Einträge in der Klonverwaltungstabelle 304, wobei ein Eintrag einen Kinddatei-Zählwert von 0 hat, weshalb die Klondatei X 605 keine Kinddateien aufweist, und ein Eintrag einen Kinddatei-Zählwert von –1 aufweist. Ein Kinddatei-Zählwert von –1 gibt an, dass dieser Eintrag für die Klondatei X 605 die Position von Datenblöcken in der Klondatei X 605 beschreibt, die nicht an Datenblöcke in der Klondatei X 605 angrenzen, die in einem anderen Eintrag für die Klondatei X 605 beschrieben sind.
  • Die Klondatei G 604 hat eine Datei-Inode-Nummer von „0005” und einen Kinddatei-Zählwert von 1, weshalb die Kinddatei der Klondatei G 604 eine Elterndatei-Inode-Nummer von „0005” aufweist. Eine Klondatei E 606 hat einen Elterndatei-Inode-Zählwert von „0005” und ist daher die Kinddatei der Klondatei G 604. Der Eintrag für die Klondatei E 606 in der Klonverwaltungstabelle 304 gibt einen Kinddatei-Zählwert von 0 an, weshalb die Klondatei E 606 keine Kinddateien aufweist.
  • Wenn einige Klondateien in dem verteilten Dateisystem 203 gesichert werden müssen, fordert der Sicherungs- und Wiederherstellungsclient 302 an, dass der Sicherungs- und Wiederherstellungsserver 303 die Klondateien sichert. Der Sicherungs- und Wiederherstellungsserver 303 analysiert die Klonverwaltungstabelle 304 und verwendet Informationen in der Tabelle zum Wiederherstellen der Dateien.
  • In einer beispielhaften Sicherungsoperation einer Klondatei empfängt der Sicherungs- und Wiederherstellungsserver 303 von dem Sicherungs- und Wiederherstellungsclient 302 eine Sicherungsanforderung, um in 7 gezeigte Dateien 700 zu sichern. Bei einer Ausführungsform analysiert der Sicherungs- und Wiederherstellungsserver die Dateien 700 in dem verteilten Dateisystem 203 und aktualisiert die Klonverwaltungstabelle 304, die in der beispielhaften Klondatei-Sicherungsoperation anfänglich Daten 800 enthält, wie in 8 dargestellt. Die Daten 800 stellen eine leere Klonverwaltungstabelle 304 dar. Der Sicherungs- und Wiederherstellungsclient 302 startet den Sicherungsprozess zum Zeitpunkt 99, durchläuft das Dateisystem und findet dabei in dem verteilten Dateisystem 203 eine Klondatei A 701, eine Klondatei C 702 und eine Klondatei B 703. Der Sicherungs- und Wiederherstellungsserver 303 greift auf die Daten 800 zu, um zu ermitteln, ob die Daten 800 auf dem neuesten Stand sind, und findet keinen Eintrag für die Klondatei A 701, die Klondatei C 702 und die Klondatei B 703. Der Sicherungs- und Wiederherstellungsserver 303 sammelt die fehlenden Informationen zu den Klondateien aus Metadaten zu der Klondatei A 701, der Klondatei C 702 und der Klondatei B 703 in dem verteilten Dateisystem 203 und aktualisiert die Daten 800 mit den fehlenden Informationen. 9 stellt Daten 900 in der Klonverwaltungstabelle 304 dar, wobei es sich um die Daten 800 in der Klonverwaltungstabelle 304 handelt, nachdem diese mit den fehlenden Informationen aktualisiert wurde. Der Sicherungs- und Wiederherstellungsserver 303 sichert die Klondatei A 701, die Klondatei C 702 und die Klondatei B 703 in dem verteilten Dateisystem 203 und zeichnet für die Klondatei A 701, die Klondatei C 702 und die Klondatei B 703 einen letzten Sicherungszeitpunkt von „99” in den Daten 900 auf.
  • 10 stellt Daten 1000 in der Klonverwaltungstabelle 304, bei denen es sich um die Daten 900 handelt, nachdem der Sicherungs- und Wiederherstellungsserver 303 von dem Sicherungs- und Wiederherstellungsclient 302 eine Anforderung für eine Gültigkeitsprüfung empfängt und eine Gültigkeitsprüfung für die Daten 900 durchführt. Bei einer Ausführungsform durchläuft der Sicherungs- und Wiederherstellungsserver 303 die Daten 900 und sucht nach Dateieinträgen ohne Informationen zur Elterndatei. Der Sicherungs- und Wiederherstellungsserver 303 findet zuerst die Klondatei A 701, und die Klondatei A 701 wird als geprüft gekennzeichnet, indem der Gültigkeitswert 411 in den Daten 1000 auf „V” gesetzt wird. Da der Kinddatei-Zählwert der Klondatei A 701 „1” lautet (woraus hervorgeht, dass dies die Elterndatei von 1 Kinddatei ist), sucht der Sicherungs- und Wiederherstellungsserver 303 in den Daten 900 nach einem oder mehreren Dateieinträgen, welche die Datei-Inode-Nummer der Klondatei A 701 („0001”) als Elterndatei-Inode-Nummer aufweisen. Der Eintrag für Klondatei B 703 nennt „0001” als deren Elterndatei-Inode-Nummer, weshalb die Klondatei B 703 die Kinddatei der Klondatei A 701 ist. Der Sicherungs- und Wiederherstellungsserver 303 ermittelt, ob die Klondatei B 703 eine Kinddatei hat. Da der Kinddatei-Zählwert 409 in dem Eintrag für die Klondatei B 703 in den Daten 900 auf „0” gesetzt ist, wird der Gültigkeitswert 411 in den Daten 1000 in dem Eintrag für die Klondatei B 703 auf „V” (d. h. validiert) gesetzt. Da die Klondatei A 701 keine ungeprüften Kinddateien in den Daten 900 aufweist, sucht der Sicherungs- und Wiederherstellungsserver 303 in den Daten 900 nach einer Datei ohne Elterndatei und findet die Klondatei C 702. Da die Klondatei C 702 keine Kinddateien hat, validiert der Sicherungs- und Wiederherstellungsserver 303 den Eintrag für die Klondatei C 702 in den Daten 1000 (indem er den Gültigkeitswert 411 auf „V” setzt) und sucht in den Daten 900 nach einem nächsten Dateieintrag ohne Elterndatei. Da in den Daten 900 keine ungeprüften Dateien oder ungültigen Dateien vorhanden sind, endet die Gültigkeitsprüfung.
  • Bei einer Ausführungsform erzeugt der Sicherungs- und Wiederherstellungsserver 303, nachdem er eine Gültigkeitsprüfung abgeschlossen hat, eine Tabelle der ungültigen Einträge, die alle verbleibenden ungültigen oder ungeprüften Einträge in den Daten 900 enthält. Anhand der Tabelle der ungültigen Einträge analysiert ein Benutzer von Hand Unstimmigkeiten bei den Kloddateien in der Tabelle der ungültigen Einträge.
  • Der Sicherungs- und Wiederherstellungsserver 303 kann aus einer (verloren gegangenen oder beschädigten) Klondatei-Kinddatei deren Klondatei-Elterndatei in einem Klondateibaum wiederherstellen, indem er Informationen über die Klondatei-Kinddatei in der Klonverwaltungstabelle 304 analysiert. Wenn der Sicherung- und Wiederherstellungsserver 303 z. B. eine Anforderung von dem Sicherungs- und Wiederherstellungsclient 302 empfängt, die Klondatei C 702 in dem verteilten Dateisystem 203 wiederherzustellen, durchsucht der Sicherungs- und Wiederherstellungsclient 302 die Daten 1000 in der Klonverwaltungstabelle 304 nach einem oder mehreren Einträgen für die Klondatei C 702 und stellt fest, dass die Klondatei C 702 eine Kinddatei der Klondatei A 701 und dass die Klondatei C 702 keine Kinddateien hat. Anhand von Informationen über die Klondatei C 702 in den Daten 1000 erzeugt der Sicherungs- und Wiederherstellungsclient 302 die Klondatei C 702 in dem verteilten Dateisystem 203. 11 zeigt eine Darstellung 1100 der Klondatei C 702 als eine Kinddatei der Klondatei A 701 in dem Klondateibaum 700, nachdem die Klondatei C 702 wiederhergestellt wurde.
  • Der Sicherungs- und Wiederherstellungsserver 303 kann eine (verloren gegangene oder beschädigte) Klondatei-Elterndatei in deren Klondateibaum wiederherstellen, indem er Informationen über die Klondatei-Elterndatei in der Klonverwaltungstabelle 304 analysiert. Wenn der Sicherungs- und Wiederherstellungsserver 303 z. B. eine Anforderung von dem Sicherungs- und Wiederherstellungsclient 302 empfängt, die Klondatei A 702 in dem verteilten Dateisystem 203 wiederherzustellen, durchsucht der Sicherungs- und Wiederherstellungsclient 302 die Daten 1000 in der Klonverwaltungstabelle 304 nach einem oder mehreren Einträgen für die Klondatei A 701 und überprüft, dass die Klondatei A 701 eine oder mehrere Kinddateien hat. Anhand von Informationen über die Klondatei A 701 in den Daten 1000 erzeugt der Sicherungs- und Wiederherstellungsclient 302 die Klondatei A 701 in dem verteilten Dateisystem 203. 12 zeigt eine Darstellung 1200 der Klondatei A 701, nachdem die Klondatei A 701 wiederhergestellt wurde.
  • 13 stellt einen Ablaufplan gemäß einer Ausführungsform der vorliegenden Erfindung dar, der Funktionsschritte veranschaulicht, die von dem Sicherungs- und Wiederherstellungsserver 303 aus 3 durchgeführt werden. In der Ausführungsform aus 13 werden die Schritte aus dem Ablaufplan des Weiteren durch Software realisiert, die auf dem Sicherungs- und Wiederherstellungsserver 303 ausgeführt wird. Bei ihrer Ausführung veranlasst diese Software den Sicherungs- und Wiederherstellungsserver 303, die in den Schritten des Ablaufplans beschriebenen Prozesse durchzuführen. In anderen Ausführungsformen werden mindestens einige der beschriebenen Prozesse durch Hardware realisiert, auf die der Sicherungs- und Wiederherstellungsserver 303 zugreifen kann. Derartige Hardware ist so konfiguriert, dass sie einen oder mehrere der in den Schritten des Ablaufplans enthaltenen Prozesse durchführt. In dieser Ausführungsform erzeugt der Sicherungs- und Wiederherstellungsserver 303 die Klonverwaltungstabelle (Clone Management Table, CMT) 304 (Schritt 1302). Der Sicherungs- und Wiederherstellungsserver 303 zeichnet Klonverwaltungsinformationen zu allen Klondateien in allen Klonbäumen in der Klonverwaltungstabelle 304 auf (Schritt 1304). Der Sicherungs- und Wiederherstellungsserver 303 empfängt eine Anforderung (Schritt 1306). Wenn es sich bei der Anforderung um eine Sicherungsanforderung handelt (Entscheidungsschritt 1308, Verzweigung „JA”), verwendet der Sicherungs- und Wiederherstellungsserver 303 Informationen in der CMT 304, um Datenblöcke in Klondateibäumen zu sichern (Schritt 1309) und beendet den Prozess (Schritt 1330).
  • In Schritt 1309 durchläuft der Sicherungs- und Wiederherstellungsserver 303 vor dem Durchführen einer Sicherungsoperation das Dateisystem und sammelt Informationen zu den Klondateien, die er findet. Für jede gefundene Eltern- oder Kind-Klondatei sammelt der Sicherungs- und Wiederherstellungsserver 303: die Elterndatei-Inode-Nummer („0”, falls keine Elterndatei existiert), eine Liste von eindeutigen Blocksequenzen mit Offset und Länge, eine Klonbaumtiefe und einen Kinddatei-Zählwert. Für jede gefundene Klondatei vergleicht der Sicherungs- und Wiederherstellungsserver 303 die Informationen, die er zu der Klondatei gefunden hat, mit Informationen in der Klonverwaltungstabelle 304 und führt die folgenden Aktionen durch: Wenn in der Klonverwaltungstabelle 304 ein Eintrag für die Klondatei vorhanden ist und alle Werte in dem Eintrag mit den Werten identisch sind, die in dem Dateisystem gefunden wurden, Aktualisieren der Zeitmarke mit dem Sicherungsstartzeitpunkt in der Klonverwaltungstabelle und kein Sichern der Datei. Wenn in der Klonverwaltungstabelle 304 kein Eintrag für die Klondatei vorhanden ist, Erzeugen eines Eintrags in der Klonverwaltungstabelle 304 für jede eindeutige Blocksequenz in der Klondatei und Sichern der Klondatei. Aktualisieren der Zeitmarke in dem Eintrag mit dem Sicherungsstartzeitpunkt. Wenn in der Klonverwaltungstabelle 304 ein Eintrag für die Klondatei vorhanden ist, aber in Blöcke innerhalb der Blocksequenz geschrieben wurde, Aktualisieren des Eintrags für die Klondatei in der Klonverwaltungstabelle 304. Aktualisieren der Zeitmarke in dem Eintrag mit dem Sicherungsstartzeitpunkt. Sichern der Blöcke in der Klondatei, in die geschrieben wurde. Wenn in der Klonverwaltungsdatei 304 ein Eintrag für die Klondatei vorhanden ist, die Blocksequenz in dem Eintrag jedoch durch zusätzliche Blöcke in dem Dateisystem ergänzt wurde, Erzeugen und Hinzufügen von neuen Einträgen für die Klondatei in der Klonverwaltungstabelle 304, welche die zusätzlichen Blöcke beschreiben. Aktualisieren der Zeitmarke für den Dateieintrag mit dem Sicherungsstartzeitpunkt und Sichern der zusätzlichen Blöcke. Wenn in der Klonverwaltungsdatei 304 ein Eintrag für die Klondatei vorhanden ist, in der Blocksequenz in dem Dateisystem jedoch nicht alle Blöcke in dem Eintrag beschrieben werden, Entfernen von Beschreibungen der in dem Dateisystem nicht gefundenen Blöcke aus der Klonverwaltungstabelle 304. Wenn in der Klonverwaltungsdatei 304 ein Eintrag für die Klondatei vorhanden ist und keine Kinddateien aufweist, in dem Dateisystem jedoch eine oder mehrere Kinddateien gefunden wurden, Aktualisieren des Eintrags für die Klondatei in der Klonverwaltungstabelle 304 mit der richtigen Anzahl von Kinddateien. Aktualisieren der Zeitmarke in dem Klondatei-Eintrag in der Klonverwaltungstabelle 304 mit dem Sicherungsstartzeitpunkt.
  • Wenn die Anforderung keine Sicherungsanforderung ist (Entscheidungsschritt 1308, Verzweigung „NEIN”), entscheidet der Sicherungs- und Wiederherstellungsserver 303, ob es sich bei der Anforderung um eine Anforderung zum Wiederherstellen einer Klondatei handelt (Entscheidungsschritt 1310). Wenn die Anforderung lautet, eine Klondatei wiederherzustellen (Entscheidungsschritt 1310, Verzweigung „JA”), verwendet der Sicherungs- und Wiederherstellungsserver 303 Informationen in der CMT, um Datenblöcke in der Klondatei wiederherzustellen (Schritt 1312) und beendet den Prozess (Schritt 1330).
  • Wenn die Anforderung keine Anforderung zum Wiederherstellen einer Klondatei ist (Entscheidungsschritt 1310, Verzweigung „NEIN”), entscheidet der Sicherungs- und Wiederherstellungsserver 303, ob es sich bei der Anforderung um eine Anforderung zum Wiederherstellen einer Klondatei-Elterndatei handelt (Entscheidungsschritt 1314). Wenn die Anforderung lautet, eine Klondatei-Elterndatei wiederherzustellen (Entscheidungsschritt 1314, Verzweigung „JA”), verwendet der Sicherungs- und Wiederherstellungsserver 303 Informationen in der CMT, um Datenblöcke in der Klondatei-Elterndatei wiederherzustellen (Schritt 1316) und beendet den Prozess (Schritt 1330).
  • Wenn die Anforderung keine Anforderung zum Wiederherstellen einer Klondatei-Elterndatei ist (Entscheidungsschritt 1314, Verzweigung „NEIN”), entscheidet der Sicherungs- und Wiederherstellungsserver 303, ob es sich bei der Anforderung um eine Anforderung zum Wiederherstellen eines Klondateibaums handelt (Entscheidungsschritt 1318). Wenn die Anforderung lautet, einen Klondateibaum wiederherzustellen (Entscheidungsschritt 1318, Verzweigung „JA”), verwendet der Sicherungs- und Wiederherstellungsserver 303 Informationen in der CMT, um Datenblöcke in dem Klondateibaum wiederherzustellen (Schritt 1320) und beendet den Prozess (Schritt 1330).
  • Wenn die Anforderung keine Anforderung zum Wiederherstellen eines Klondateibaums ist (Entscheidungsschritt 1318, Verzweigung „NEIN”), entscheidet der Sicherungs- und Wiederherstellungsserver 303, ob es sich bei der Anforderung um eine Dateiablaufanforderung handelt (Entscheidungsschritt 1322). Wenn es sich bei der Anforderung um eine Dateiablaufanforderung handelt (Entscheidungsschritt 1322, Verzweigung „JA”), verwendet der Sicherungs- und Wiederherstellungsserver 303 Informationen in der CMT 304, um Datenblöcke aus Klondateibäumen zu löschen (Schritt 1324) und beendet den Prozess (Schritt 1330).
  • Wenn die Anforderung keine Dateiablaufanforderung ist (Entscheidungsschritt 1322, Verzweigung „NEIN”), entscheidet der Sicherungs- und Wiederherstellungsserver 303, ob es sich bei der Anforderung um eine Anforderung einer Gültigkeitsprüfung handelt (Entscheidungsschritt 1326). Wenn es sich bei der Anforderung um eine Anforderung einer Gültigkeitsprüfung handelt (Entscheidungsschritt 26, Verzweigung „JA”), analysiert der Sicherungs- und Wiederherstellungsserver 303 Informationen in der CMT 304, auf Kohärenz (Schritt 1328) und beendet den Prozess (Schritt 1330). Wenn die Anforderung keine Anforderung einer Gültigkeitsprüfung ist (Entscheidungsschritt 1326, Verzweigung „JA”), meldet der Sicherungs- und Wiederherstellungsserver 303 einen Anforderungsfehler an den Sicherungs- und Wiederherstellungsclient 302 und beendet den Prozess (Schritt 1330).
  • 14 stellt eine beispielhafte Ausführungsform des Datenverarbeitungsknotens A 205 dar, in dem sich der Dateiserver 301 und der Sicherungs- und Wiederherstellungsserver 303 befinden. Der Datenverarbeitungsknoten A 205 enthält Prozessoren 1404, einen Cachespeicher 1416 und eine Datenübertragungsstruktur 1402, die eine Datenübertragung zwischen dem Cachespeicher 1416, einem Arbeitsspeicher 1406, einem dauerhaften Speicher 1408, einer Datenübertragungseinheit 1410 und Eingabe/Ausgabe-Schnittstellen (EIA-Schnittstellen) 1412 bereitstellt. Die Datenübertragungsstruktur 1402 kann mit einer beliebigen Architektur realisiert sein, die so gestaltet wurde, dass Daten oder und/oder Steuerinformationen zwischen Prozessoren (wie z. B. Mikroprozessoren, Datenübertragungs- und Netzwerkprozessoren usw.), einem Systemarbeitsspeicher, Peripherieeinheiten und beliebigen anderen Hardware-Komponenten innerhalb eines Systems Daten fließen können. So kann die Datenübertragungsstruktur 1402 z. B. mit einem oder mehreren Bussen realisiert sein.
  • Bei dem Arbeitsspeicher 1406 und dem dauerhaften Speicher 1308 handelt es sich um computerlesbare Speichermedien. Bei dieser Ausführungsform beinhaltet der Arbeitsspeicher 1406 einen Direktzugriffsspeicher (RAM). Im Allgemeinen kann der Arbeitsspeicher 1406 alle geeigneten flüchtigen oder nichtflüchtigen computerlesbaren Speichermedien beinhalten. Der Cachespeicher 1416 ist ein schneller Arbeitsspeicher, der die Leistung der Prozessoren 1304 verbessert, indem er Daten, auf die kürzlich zugegriffen wurde, und Daten in der Nähe von Daten, auf die aus dem Arbeitsspeicher 1306 zugegriffen wurde, enthält.
  • Programmbefehle und Daten zur praktischen Umsetzung von Ausführungsformen der vorliegenden Erfindung können in dem dauerhaften Speicher 1408 gespeichert sein, um über den Cachespeicher 1416 und einen oder mehrere Arbeitsspeicher des Arbeitsspeichers 1306 durch einen oder mehrere der betreffenden Prozessoren 1404 ausgeführt zu werden. Bei einer Ausführungsform beinhaltet der dauerhafte Speicher 1408 ein magnetisches Festplattenlaufwerk. Alternativ oder zusätzlich zu einem magnetischen Festplattenlaufwerk kann es sich bei dem dauerhaften Speicher 1308 um eine Halbleiter-Festplatte, eine Halbleiter-Speichereinheit, einen Festwertspeicher (Read-Only Memory, ROM), einen löschbaren programmierbaren ROM (Erasable Programmable Read-Only Memory, EPROM), einen Flash-Speicher oder jedes andere computerlesbare Speichermedium handeln, das in der Lage ist, Programmbefehle oder digitale Informationen zu speichern.
  • Die von dem dauerhaften Speicher 1408 verwendeten Medien können auch entfernbar sein. So kann z. B. eine entfernbare Festplatte als dauerhafter Speicher 1408 verwendet werden. Zu anderen Beispielen gehören optische und Magnetplatten, USB-Sticks und Smartcards, die in ein Laufwerk eingeführt werden, um eine Übertragung auf ein weiteres computerlesbares Speichermedium vorzunehmen, das ebenfalls Teil des persistenten Speichers 1408 ist.
  • Die Datenübertragungseinheit 1410 stellt in diesen Beispielen eine Datenübertragung mit anderen Datenverarbeitungssystemen oder -einheiten bereit. In diesen Beispielen enthält die Datenübertragungseinheit 1410 eine oder mehrere Netzwerkschnittstellenkarten. Die Datenübertragungseinheit 1410 kann die Datenübertragung entweder über physische oder drahtlose Datenübertragungsverbindungen oder aber über beide Verbindungsarten bereitstellen. Programmbefehle und Daten zur praktischen Umsetzung von Ausführungsformen der vorliegenden Erfindung können über die Datenübertragungseinheit 1410 in den dauerhaften Speicher 1408 heruntergeladen werden.
  • Die Eingabe/Ausgabe-Einheit(en) 1412 ermöglicht (ermöglichen) eine Eingabe und Ausgabe von Daten in/aus andere(n) Einheiten, die mit jedem einzelnen Computersystem verbunden sein können. So kann die EIA-Schnittstelle 1412 z. B. eine Verbindung zu den externen Einheiten 1418 wie beispielsweise zu einer Tastatur, einem Tastenfeld, einem berührungsempfindlichen Bildschirm und/oder einer anderweitigen geeigneten Eingabeeinheit bereitstellen. Zu den externen Einheiten 1418 können auch tragbare computerlesbare Speichermedien wie z. B. USB-Sticks, tragbare optische oder Magnetplatten und Speicherkarten zählen. Software und Daten zur praktischen Umsetzung von Ausführungsformen der vorliegenden Erfindung können auf derartigen tragbaren computerlesbaren Speichermedien gespeichert und über die EIA-Schnittstelle(n) 1412 in den dauerhaften Speicher 1408 geladen werden. Die EIA-Schnittstelle(n) 1412 ist (sind) auch mit einer Anzeige 1420 verbunden.
  • Die Anzeige 1420 stellt einen Mechanismus bereit, um Daten einem Benutzer anzuzeigen, und es kann sich bei ihr z. B. um einen Computermonitor handeln.
  • Die hier beschriebenen Programme werden auf der Grundlage der Anwendung gekennzeichnet, für die sie in einer spezifischen Ausführungsform der Erfindung realisiert sind. Dabei sollte jedoch klar sein, dass jede hier genannte konkrete Programmnomenklatur lediglich zum Zwecke der Vereinfachung verwendet wird und dass die Erfindung nicht darauf zu beschränken ist, ausschließlich in einer wie auch immer gearteten spezifischen Anwendung verwendet zu werden, die durch eine solche Nomenklatur angegeben und/oder impliziert wird.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein computerlesbares Speichermedium (oder -medien) mit darauf enthaltenen computerlesbaren Programmbefehlen beinhalten, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Erfindung durchzuführen.
  • Das computerlesbare Speichermedium kann eine gegenständliche Einheit sein, die Befehle zur Verwendung durch eine Befehlsausführungseinheit halten und speichern kann. Das computerlesbare Speichermedium kann z. B. eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder eine beliebige geeignete Kombination der vorgenannten Einheiten sein, ohne jedoch darauf beschränkt zu sein. Eine nicht vollständige Liste konkreterer Beispiele des computerlesbaren Speichermediums beinhaltet Folgendes: eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM), einen läschbaren, programmierbaren Nur-Lese-Speicher (EPROM- oder Flash-Speicher), einen statischen Direktzugriffsspeicher (SRAM), einen tragbaren CD-ROM, eine DVD, einen Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie z. B. Lochkarten oder erhabene Strukturen in einer Rille mit darauf aufgezeichneten Befehlen sowie eine beliebige geeignete Kombination der vorgenannten Elemente. Bei einem computerlesbaren Speichermedium, wie es hier verwendet wird, ist nicht davon auszugehen, dass es sich per se um flüchtige Signale wie z. B. Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Hohlleiter oder ein andere Übertragungsmedien ausbreiten (z. B. Lichtimpulse, die ein Lichtwellenleiterkabel durchlaufen), oder elektrische Signalen, die über eine Leitung übertragen werden, handelt.
  • Hier beschriebene computerlesbare Programmbefehle können über ein Netzwerk wie beispielsweise das Internet, ein lokales Netz (Local Area Network, LAN), ein Weitverkehrsnetz (Wide Area Network, WAN) und/oder ein drahtloses Netzwerk von einem computerlesbaren Speichermedium auf entsprechende Datenverarbeitungs/Verarbeitungs-Einheiten oder auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenleiter, eine drahtlose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs/Verarbeitungs-Einheit empfängt computerlesbare Programmbefehle von dem Netzwerk und leitet die computerlesbaren Programmbefehle zur Speicherung auf einem computerlesbaren Speichermedium innerhalb der betreffenden Datenverarbeitungs/Verarbeitungs-Einheit weiter.
  • Bei computerlesbaren Programmbefehlen zum Durchführen von Operationen der vorliegenden Erfindung kann es sich um Assembler-Befehle, ISA-Befehle (Instruction-Set-Architecture), Maschinenbefehle, maschinenabhängige Befehle, Mikrocode, Firmware-Befehle, einen Zustand festlegende Daten oder aber entweder um Quellcode oder um Objektcode handeln, der in einer beliebigen Kombination von einer oder mehreren Programmiersprachen wie z. B. einer objektorientierten Programmiersprache wie Smalltalk, C++ oder dergleichen, sowie in herkömmlichen prozeduralen Programmiersprachen wie z. B. der Programmiersprache „C” oder ähnlichen Programmiersprachen geschrieben ist. Die computerlesbaren Programmbefehle können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder aber vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Im letztgenannten Szenario kann der entfernt angeordnete Computer über eine beliebige Art von Netzwerk, unter anderem ein LAN oder ein WAN, mit dem Computer des Benutzers verbunden sein, oder die Verbindung kann mit einem externen Computer (z. B. über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden. Bei manchen Ausführungsformen kann ein elektronischer Schaltkreis wie z. B. ein programmierbarer Logikschaltkreis, Field-Programmable Gate Arrays (FPGAs) oder Programmable Logic Arrays (PLAs) die computerlesbaren Programmbefehle ausführen, indem er Zustandsdaten der computerlesbaren Programmbefehle verwendet, um die elektronische Schaltung zu personalisieren und Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung werden hier unter Bezugnahme auf Darstellungen von Ablaufplänen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Dabei dürfte klar sein, dass jeder Block der Ablaufplan-Darstellungen und/oder Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplan-Darstellungen und/oder Blockschaubildern durch computerlesbare Programmbefehle realisiert werden kann/können.
  • Diese computerlesbaren Programmbefehle können einem Prozessor eines Universalcomputers, Spezialcomputers oder einer anderweitigen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die Befehle, die über den Prozessor des Computers oder der anderweitigen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel erzeugen, mit dem die Funktionen/Aktionen realisiert werden können, die in dem Block bzw. den Blöcken des Ablaufplans und/oder des Blockschaubilds angegeben werden. Diese computerlesbaren Programmbefehle können auch auf einem computerlesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten anweisen kann, auf eine bestimmte Art und Weise zu funktionieren, so dass das computerlesbare Speichermedium mit darauf gespeicherten Befehlen einen Herstellungsartikel aufweist, der Befehle enthält, welche Aspekte der in dem Block bzw. den Blöcken des Ablaufplans und/oder des Blockschaubilds angegebenen Funktion/Aktion realisieren.
  • Die computerlesbaren Programmbefehle können zudem in einen Computer, eine anderweitige programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um zu veranlassen, dass eine Reihe von Funktionsschritten auf dem Computer, der anderweitigen programmierbaren Datenvorrichtung oder der anderen Einheit ausgeführt wird, so dass die Befehle, die auf dem Computer, der anderweitigen Datenverarbeitungsvorrichtung oder der anderen Einheit ausgeführt werden, die in dem Block bzw. den Blöcken des Ablaufplans und/oder des Blockschaubilds angegebenen Funktionen/Aktionen realisieren.
  • Die Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und den Betrieb möglicher Realisierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Somit kann jeder Block der Ablaufpläne oder Blockschaubilder ein Modul, Segment oder einen Teil von Befehlen darstellen, das/der ein oder mehrere ausführbare Befehle aufweist, mit denen sich die eine oder mehreren angegebenen logischen Funktionen realisieren lassen. Bei manchen alternativen Ausführungsformen können die in dem Block erwähnten Funktionen in einer anderen Reihenfolge als der in den Figuren genannten auftreten. So können zwei aufeinanderfolgend dargestellte Blöcke tatsächlich im Wesentlichen gleichzeitig stattfinden, oder die Blöcke können mitunter in umgekehrter Reihenfolge ausgeführt werden, wobei dies abhängig von der betreffenden Funktionalität ist. Zu erwähnen ist ebenfalls, dass jeder Block der Blockschaubilder und/oder der Ablaufplan-Darstellungen sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplan-Darstellungen durch Spezialsysteme auf Hardware-Grundlage, welche die angegebenen Funktionen oder Handlungen oder Kombinationen hiervon ausführen, oder durch Kombinationen von Spezial-Hardware- und Computerbefehlen realisiert bzw. durchgeführt werden kann/können.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zwecke der Veranschaulichung vorgelegt und sind nicht als vollständig oder auf die offenbarten Ausführungsformen beschränkt zu verstehen.
  • Der Fachmann weiß, dass zahlreiche Änderungen und Abwandlungen möglich sind, ohne vom inhaltlichen Umfang und gedanklichen Wesensgehalt der Erfindung abzuweichen. Die hier verwendete Begrifflichkeit wurde gewählt, um die Grundgedanken der Ausführungsform, die praktische Anwendung oder technische Verbesserung gegenüber marktgängigen Technologien bestmöglich zu erläutern bzw. anderen Fachleuten das Verständnis der hier offenbarten Ausführungsformen zu ermöglichen.
  • Die hier verwendete Begrifflichkeit dient lediglich zur Beschreibung bestimmter Ausführungsformen und ist nicht als Beschränkung der vorliegenden Erfindung gedacht. Im hier verwendeten Sinne sollen die Singularformen „ein/e/r” und ”der/die/das” auch die Pluralformen beinhalten, sofern der Kontext dies nicht eindeutig anderweitig vorgibt.
  • Zusätzlich zur Veranschaulichung von Verfahren und Funktionsumfang der vorliegenden Erfindung in verschiedenen Phasen veranschaulicht jede betreffende Figur auch die Logik des Verfahrens, wie es ganz oder teilweise durch eine oder mehrere Einheiten und Strukturen realisiert wird. Derartige Einheiten und Strukturen sind so konfiguriert (d. h. sie beinhalten eine oder mehrere Komponenten wie Widerstände, Kondensatoren, Transistoren und Ähnliches, die verbunden sind, um das Durchführen eines Prozesses zu ermöglichen), dass sie das Verfahren eines Zusammenführens von einer oder mehreren nicht transaktionsorientierten Speichereinheiten und einem oder mehreren thread-spezifischen transaktionsorientierten Speichern in einer oder mehreren Cachespeicher-Zeilenvorlagen in einem Speicherpuffer in dem Cachespeicher einer Speichereinheit realisieren. Anders ausgedrückt, eine oder mehrere Computerhardware-Einheiten können erzeugt werden, die so konfiguriert sind, dass sie das Verfahren und die Prozesse realisieren, die hier mit Bezug auf die Figuren und ihre jeweiligen Beschreibungen beschrieben sind.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zwecke der Veranschaulichung vorgelegt und sind nicht als vollständig oder auf die offenbarten Ausführungsformen beschränkt zu verstehen. Der Fachmann weiß, dass zahlreiche Änderungen und Abwandlungen möglich sind, ohne von Umfang und Geist der beschriebenen Ausführungsformen abzuweichen. Die hier verwendete Begrifflichkeit wurde gewählt, um die Grundgedanken der Ausführungsform, die praktische Anwendung oder technische Verbesserung gegenüber marktgängigen Technologien bestmöglich zu erläutern bzw. anderen Fachleuten das Verständnis der hier offenbarten Ausführungsformen zu ermöglichen.
  • Ausführungsformen der vorliegenden Erfindung können in einer Vielfalt von elektronischen Anwendungen verwendet werden, darunter, ohne darauf beschränkt zu sein, hochentwickelte Sensoren, Arbeitsspeicher/Datenspeicher, Halbleiter, Mikroprozessoren und andere Anwendungen.
  • Eine resultierende Einheit und Struktur wie z. B. ein IC-Chip (Integrated Circuit, integrierter Schaltkreis) kann durch den Hersteller in Form eines Roh-Wafers (d. h. als ein einzelner Wafer mit mehreren ungepackten Chips), als ein blanker Chip oder in einer gepackten Form vertrieben werden. Im letzteren Fall ist der Chip in einer Einzel-Chip-Packung (wie beispielsweise einem Kunststoffträger mit Leitungen, die an einer Hauptplatine oder einem anderen hochwertigen Träger befestigt sind) oder in einer Packung mit mehreren Chips angebracht (wie beispielsweise einem Keramikträger, der entweder Oberflächenverbindungen und/oder vergrabene Verbindungen aufweist). In jedem Fall ist der Chip dann mit weiteren Chips, diskreten Schaltkreiselementen und/oder weiteren Signalverarbeitungseinheiten als Teil von (a) einem Zwischenprodukt wie z. B. einer Hauptplatine oder (b) einem Endprodukt integriert. Das Endprodukt kann jedes beliebige Produkt sein, das IC-Chips beinhaltet und von Spielwaren und anderen einfachen Anwendungen bis hin zu hochentwickelten Computerprodukten reichen, die über eine Anzeige, eine Tastatur oder eine anderweitige Eingabeeinheit und einen Hauptprozessor verfügen.
  • Die betreffenden Strukturen, Materialien, Handlungen und Äquivalente aller Mittel oder Schritte zusätzlich zu den Funktionselementen in den nachstehenden Ansprüchen sollen sämtliche Strukturen, Materialien oder Handlungen beinhalten, mit denen die Funktion in Verbindung mit anderen beanspruchten Elementen durchgeführt werden kann, wie sie hier ausdrücklich beansprucht sind. Die Beschreibung der vorliegenden Erfindung wurde zum Zwecke der Veranschaulichung und Erläuterung vorgelegt und ist mit Blick auf die in dieser Form beschriebene Erfindung nicht als vollständig oder beschränkend zu verstehen. Der Fachmann weiß, dass zahlreiche Änderungen und Abwandlungen möglich sind, ohne vom inhaltlichen Umfang und gedanklichen Wesensgehalt der Erfindung abzuweichen. Die Ausführungsform wurde ausgewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung bestmöglich zu erläutern und um anderen Fachleuten die Möglichkeit zu geben, die Erfindung mit Blick auf verschiedene Ausführungsformen mit verschiedenen Abwandlungen zu verstehen, wie sie für die jeweilige, in Erwägung gezogene Verwendung geeignet sind.
  • Zwar wurde die Erfindung im Detail nur für eine begrenzte Zahl von Ausführungsformen beschrieben wurde, es sollte jedoch klar sein, dass die Erfindung nicht auf derartige offenbarte Ausführungsformen beschränkt ist. Vielmehr kann die Erfindung so modifiziert werden, dass sie eine beliebige Anzahl von Variationen, Änderungen, Ersetzungen oder äquivalenten Anordnungen beinhaltet, die vorstehend nicht beschrieben wurden, jedoch mit dem gedanklichen Wesensgehalt und inhaltlichen Umfang der Erfindung in Einklang stehen. Obwohl verschiedene Ausführungsformen der Erfindung beschrieben wurden, sollte außerdem klar sein, dass Aspekte der Erfindung durch lediglich einige der beschriebenen Ausführungsformen abgedeckt sein können. Entsprechend ist die Erfindung nicht so zu verstehen, als würde sie durch die obige Beschreibung eingeschränkt. Sofern nicht anderweitig erwähnt, bedeutet eine Bezugnahme auf ein Element in der Einzahl nicht „ein einziges”, sondern vielmehr „ein oder mehrere”. Alle struktur- und funktionsbezogenen Äquivalente der in dieser Offenbarung beschriebenen Elemente der verschiedenen Ausführungsformen, die dem Fachmann bekannt sind oder zu einem späteren Zeitpunkt bekannt sein werden, werden hier ausdrücklich durch Bezugnahme mit aufgenommen und sollen durch die Erfindung eingeschlossen sein. Daher sollte klar sein, dass an den einzelnen offenbarten Ausführungsformen Änderungen vorgenommen werden können, die vom inhaltlichen Umfang der vorliegenden Erfindung abgedeckt sind, wie er durch die beigefügten Ansprüche dargelegt ist.

Claims (9)

  1. Verfahren zum Sichern und Wiederherstellen von einem oder mehreren Klondateibäumen, wobei das Verfahren aufweist: Erzeugen einer Klonverwaltungstabelle durch einen oder mehrere Prozessoren; Aufzeichnen von Klonverwaltungsinformationen zu jeder Klondatei in einem oder mehreren Klondateibäumen in einem Dateisystem durch den einen oder die mehreren Prozessoren in der Klonverwaltungstabelle; als Reaktion auf ein Empfangen einer Sicherungsanforderung Aktualisieren der Klonverwaltungsinformationen und Speichern von einem oder mehreren Datenblöcken, die sich in dem einen oder den mehreren Klondateibäumen befinden, durch den einen oder die mehreren Prozessoren; als Reaktion auf ein Empfangen einer Anforderung zum Wiederherstellen einer Klondatei Analysieren von Klonverwaltungsinformationen zu der Klondatei und Wiederherstellen von einem oder mehreren Datenblöcken in der Klondatei in dem Dateisystem durch den einen oder die mehreren Prozessoren; als Reaktion auf ein Empfangen einer Anforderung zum Wiederherstellen einer Klondatei-Elterndatei Analysieren von Klonverwaltungsinformationen zu der Klondatei-Elterndatei und Wiederherstellen von einem oder mehreren Datenblöcken in der Klondatei-Elterndatei in dem Dateisystem durch den einen oder die mehreren Prozessoren; und als Reaktion auf ein Empfangen einer Anforderung zum Wiederherstellen eines Klondateibaums Analysieren von Klonverwaltungsinformationen zu dem Klondateibaum und Wiederherstellen von einem oder mehreren Datenblöcken in dem Klondateibaum in dem Dateisystem durch den einen oder die mehreren Prozessoren.
  2. Verfahren nach Anspruch 1, wobei Klonverwaltungsinformationen zu einer Klondatei aus Dateiinformationen zu der Klondatei, einer Position von einem oder mehreren Datenblöcken, in die in der Klondatei geschrieben wurde, und einem letzten Sicherungszeitpunkt der Klondatei bestehen.
  3. Verfahren nach Anspruch 2, wobei die Dateiinformationen aus einem Bezeichner der Klondatei, einer Größe der Klondatei, einer Inode-Nummer der Klondatei, Inode-Metadaten der Klondatei, einer Inode-Nummer einer Elterndatei der Klondatei, einer Tiefenebene der Klondatei in einem Klondateibaum, einem Kinddatei-Zählwert der Klondatei und einem Gültigkeitsanzeiger für die Klonverwaltungsinformationen bestehen.
  4. Verfahren nach Anspruch 1, wobei ein Sicherungs- und Wiederherstellungsserver Klondateien in/von dem Dateisystem sichert und wiederherstellt.
  5. Verfahren nach Anspruch 4, wobei sich die Klonverwaltungstabelle auf dem Sicherungs- und Wiederherstellungsserver befindet.
  6. Verfahren nach Anspruch 1, das des Weiteren aufweist: als Reaktion auf ein Empfangen einer Dateiablaufanforderung Aktualisieren der Klonverwaltungsinformationen und Löschen von einem oder mehreren Datenblöcken aus dem einen oder den mehreren Klondateibäumen durch den einen oder die mehreren Prozessoren; als Reaktion auf ein Empfangen einer Anforderung zum Prüfen einer Gültigkeit der Klonverwaltungstabelle Analysieren von Informationen in der Klonverwaltungstabelle auf Kohärenz und Erzeugen einer Liste von ungültigen Informationen, die sich in der Klonverwaltungstabelle befinden, durch den einen oder die mehreren Prozessoren.
  7. Verfahren nach Anspruch 5, wobei der Sicherungs- und Wiederherstellungsserver und die Klonverwaltungstabelle auf eine Mehrzahl von Computern in dem Dateisystem verteilt sind.
  8. Computerprogrammprodukt zum Sichern und Wiederherstellen von einem oder mehreren Klondateibäumen, wobei das Computerprogrammprodukt aufweist: ein oder mehrere computerlesbare Speichermedien und Programmbefehle, die in dem einen oder den mehreren computerlesbaren Speichermedien gespeichert sind, wobei die Programmbefehle aufweisen: Programmbefehle zum Erzeugen einer Klonverwaltungstabelle; Programmbefehle zum Aufzeichnen von Klonverwaltungsinformationen zu jeder Klondatei in einem oder mehreren Klondateibäumen in einem Dateisystem in der Klonverwaltungstabelle; Programmbefehle zum Aktualisieren der Klonverwaltungsinformationen und zum Speichern von einem oder mehreren Datenblöcken, die sich in einem oder mehreren Klondateibäumen befinden, als Reaktion auf ein Empfangen einer Sicherungsanforderung; Programmbefehle zum Analysieren von Klonverwaltungsinformationen zu der Klondatei und zum Wiederherstellen von einem oder mehreren Datenblöcken in der Klondatei in dem Dateisystem als Reaktion auf ein Empfangen einer Anforderung zum Wiederherstellen einer Klondatei; Programmbefehle zum Analysieren von Klonverwaltungsinformationen zu der Klondatei-Elterndatei und zum Wiederherstellen von einem oder mehreren Datenblöcken in der Klondatei-Elterndatei in dem Dateisystem als Reaktion auf ein Empfangen einer Anforderung zum Wiederherstellen einer Klondatei-Elterndatei; und Programmbefehle zum Analysieren von Klonverwaltungsinformationen zu dem Klondateibaum und zum Wiederherstellen von einem oder mehreren Datenblöcken in dem Klondateibaum in dem Dateisystem als Reaktion auf ein Empfangen einer Anforderung zum Wiederherstellen eines Klondateibaums.
  9. Computersystem zum Sichern und Wiederherstellen von einem oder mehreren Klondateibäumen, wobei das Computersystem aufweist: einen oder mehrere Computerprozessoren, ein oder mehrere computerlesbare Speichermedien und auf den computerlesbaren Speichermedien gespeicherte Programmbefehle zum Ausführen durch mindestens einen des einen oder der mehreren Prozessoren, wobei die Programmbefehle aufweisen: Programmbefehle zum Erzeugen einer Klonverwaltungstabelle; Programmbefehle zum Aufzeichnen von Klonverwaltungsinformationen zu jeder Klondatei in einem oder mehreren Klondateibäumen in einem Dateisystem in der Klonverwaltungstabelle; Programmbefehle zum Aktualisieren der Klonverwaltungsinformationen und zum Speichern von einem oder mehreren Datenblöcken, die sich in einem oder mehreren Klondateibäumen befinden, als Reaktion auf ein Empfangen einer Sicherungsanforderung; Programmbefehle zum Analysieren von Klonverwaltungsinformationen zu der Klondatei und zum Wiederherstellen von einem oder mehreren Datenblöcken in der Klondatei in dem Dateisystem als Reaktion auf ein Empfangen einer Anforderung zum Wiederherstellen einer Klondatei; Programmbefehle zum Analysieren von Klonverwaltungsinformationen zu der Klondatei-Elterndatei und zum Wiederherstellen von einem oder mehreren Datenblöcken in der Klondatei-Elterndatei in dem Dateisystem als Reaktion auf ein Empfangen einer Anforderung zum Wiederherstellen einer Klondatei-Elterndatei; und Programmbefehle zum Analysieren von Klonverwaltungsinformationen zu dem Klondateibaum und zum Wiederherstellen von einem oder mehreren Datenblöcken in dem Klondateibaum in dem Dateisystem als Reaktion auf ein Empfangen einer Anforderung zum Wiederherstellen eines Klondateibaums.
DE102016204710.8A 2015-03-30 2016-03-22 Sichern und Wiederherstellen von Klondaten Pending DE102016204710A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US14/672,936 US10049121B2 (en) 2015-03-30 2015-03-30 Clone file backup and restore
US14/672,936 2015-03-30
US14/859,673 US10055299B2 (en) 2015-03-30 2015-09-21 Clone file backup and restore
US14/859,673 2015-09-21

Publications (1)

Publication Number Publication Date
DE102016204710A1 true DE102016204710A1 (de) 2016-10-06

Family

ID=56937689

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016204710.8A Pending DE102016204710A1 (de) 2015-03-30 2016-03-22 Sichern und Wiederherstellen von Klondaten

Country Status (2)

Country Link
US (1) US10055299B2 (de)
DE (1) DE102016204710A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10896157B2 (en) 2015-03-30 2021-01-19 International Business Machines Corporation Clone file backup and restore

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10169600B2 (en) * 2015-10-13 2019-01-01 International Business Machines Corporation Encryption policies for various nodes of a file
US9413826B1 (en) * 2016-01-11 2016-08-09 International Business Machines Corporation Concurrent file and object protocol access using space-efficient cloning
US10812582B2 (en) * 2016-03-10 2020-10-20 Vmware, Inc. Management of applications across nodes using exo-clones
JP6758599B2 (ja) * 2016-06-23 2020-09-23 富士ゼロックス株式会社 端末装置
US10839598B2 (en) * 2016-07-26 2020-11-17 Hewlett-Packard Development Company, L.P. Indexing voxels for 3D printing
US10725965B1 (en) * 2016-09-30 2020-07-28 EMC IP Holding Company LLC Systems and methods for managing copy creation and deletion
US11188422B2 (en) * 2017-06-02 2021-11-30 Apple Inc. Techniques for preserving clone relationships between files
US10310888B2 (en) * 2017-10-31 2019-06-04 Rubrik, Inc. Virtual machine linking
US11269735B2 (en) * 2020-02-28 2022-03-08 EMC IP Holding Company LLC Methods and systems for performing data backups
US11860826B2 (en) 2021-10-15 2024-01-02 Oracle International Corporation Clone-aware approach for space and time efficient replication

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7165154B2 (en) 2002-03-18 2007-01-16 Net Integration Technologies Inc. System and method for data backup
JP4795787B2 (ja) * 2005-12-09 2011-10-19 株式会社日立製作所 ストレージシステム、nasサーバ、及びスナップショット方法
US7913044B1 (en) 2006-02-02 2011-03-22 Emc Corporation Efficient incremental backups using a change database
US7694103B1 (en) * 2006-06-23 2010-04-06 Emc Corporation Efficient use of memory and accessing of stored records
US7873601B1 (en) 2006-06-29 2011-01-18 Emc Corporation Backup of incremental metadata in block based backup systems
JP4749266B2 (ja) * 2006-07-27 2011-08-17 株式会社日立製作所 情報資源の重複を省いたバックアップ制御装置及び方法
JP5414223B2 (ja) * 2008-09-16 2014-02-12 株式会社日立ソリューションズ インターネットバックアップにおける転送データ管理システム
US8356148B2 (en) * 2009-09-22 2013-01-15 Lsi Corporation Snapshot metadata management in a storage system
US8566552B2 (en) * 2010-03-12 2013-10-22 Cleversafe, Inc. Dispersed storage network resource allocation
US8788769B2 (en) 2010-11-16 2014-07-22 Actifio, Inc. System and method for performing backup or restore operations utilizing difference information and timeline state information
US9824091B2 (en) 2010-12-03 2017-11-21 Microsoft Technology Licensing, Llc File system backup using change journal
CN106407044B (zh) * 2010-12-14 2019-09-24 株式会社日立制作所 信息处理系统中的故障恢复方法和信息处理系统
US8738870B1 (en) 2011-09-30 2014-05-27 Emc Corporation Block based backup
US8719286B1 (en) 2012-03-30 2014-05-06 Emc Corporation System and method for block-based subtree virtual machine backup
US20130311429A1 (en) 2012-05-18 2013-11-21 Hitachi, Ltd. Method for controlling backup and restoration, and storage system using the same
US8738585B2 (en) * 2012-07-13 2014-05-27 Symantec Corporation Restore software with aggregated view of site collections
US8914334B2 (en) * 2012-09-12 2014-12-16 International Business Machines Corporation Using a metadata image of a file system and archive instance to restore data objects in the file system
US10311151B2 (en) 2013-02-21 2019-06-04 Hitachi Vantara Corporation Object-level replication of cloned objects in a data storage system
US10049121B2 (en) 2015-03-30 2018-08-14 International Business Machines Corporation Clone file backup and restore

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10896157B2 (en) 2015-03-30 2021-01-19 International Business Machines Corporation Clone file backup and restore

Also Published As

Publication number Publication date
US20160292041A1 (en) 2016-10-06
US10055299B2 (en) 2018-08-21

Similar Documents

Publication Publication Date Title
DE102016204710A1 (de) Sichern und Wiederherstellen von Klondaten
DE112020000749T5 (de) Indexerstellung für sich entwickelnde umfangreiche Datensätze in Hybriden Transaktions- und Analysenverarbeitungssystemen mit mehreren Mastern
DE112017007224T5 (de) Momentaufnahmen-Verwaltung in einer Blockchain
DE102016103769A1 (de) Inkrementelle Replikation eines Quellen-Datasets
DE202010018481U1 (de) Asynchroner verteilter Objekt-Upload für replizierte Assoziativspeichercluster
DE112010004947T5 (de) Wiederherstellung einer vollständigen Systemsicherung und inkrementeller Sicherungen unter Verwendung von mehreren gleichzeitigen Datenströmen von Einheiten
DE202012013432U1 (de) Speichern von Daten auf Speicherknoten
DE102016216843A1 (de) Verteiltes Zusammenführen von Dateien
WO2015090668A1 (de) Posix-kompatibles dateisystem, verfahren zum erzeugen einer dateiliste und speichervorrichtung
DE112019001480T5 (de) Automatisches Optimieren der Ressourcennutzung in einemZieldatenbankverwaltungssystem zum Erhöhen der Arbeitslastleistung
DE102019131291B4 (de) Gleichzeitige ausführung von dienstleistungen
DE112012003695T5 (de) Aufrechterhalten mehrerer Zielkopien
DE102014116369A1 (de) Verwaltung von sprachmarkern bei internationaler datenspeicherung
DE112018001290T5 (de) Verfahren zum Schätzen der Löschbarkeit von Datenobjekten
DE112015000343T5 (de) Erstellen einer Wiederherstellungskopie von einer Quelldaten-Kopie in einem Repository, das Quelldaten an verschiedenen Zeitpunkten aufweist
DE112015000222T5 (de) Zusammenführen von mehreren Zeitpunktkopien zu einer zusammengeführten Zeitpunktkopie
DE112010003262T5 (de) Synchronisierung replizierter sequenzieller Zugriffsspeicherkomponenten
DE202015104128U1 (de) Datenzugriffssystem
DE102021125630A1 (de) Datensynchronisation in einem datenanalysesystem
DE102012223167A1 (de) Gemeinsame Nutzung von Artefakten zwischen kollaborativen Systemen
DE112018003585T5 (de) Deduplizierung eines bandlaufwerkspeichers
DE112018003133T5 (de) Zwischenspeicherverwaltung
DE112017005772T5 (de) Zeitpunktgesteuerte sicherungen über einen speicher-controller in eine objektspeicher-cloud
DE112019000849T5 (de) Hostorientierter Aktualisierungsschreibvorgang
DE112021000338T5 (de) Auslagern der statistikerfassung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication