DE112011101793T5 - Gemeinsame Datennutzung bei Dateiklonen - Google Patents

Gemeinsame Datennutzung bei Dateiklonen Download PDF

Info

Publication number
DE112011101793T5
DE112011101793T5 DE112011101793T DE112011101793T DE112011101793T5 DE 112011101793 T5 DE112011101793 T5 DE 112011101793T5 DE 112011101793 T DE112011101793 T DE 112011101793T DE 112011101793 T DE112011101793 T DE 112011101793T DE 112011101793 T5 DE112011101793 T5 DE 112011101793T5
Authority
DE
Germany
Prior art keywords
node
clone
original
new
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE112011101793T
Other languages
English (en)
Inventor
Thomas Eugene Engelsiepen
Frank Schmuck
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
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112011101793T5 publication Critical patent/DE112011101793T5/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • 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/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • 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

Landscapes

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

Abstract

Ein Verfahren, ein System und ein Computerprogrammprodukt zum Erzeugen und Realisieren von Dateiklonen unter Verwendung umgekehrter Duplikatverweise. Ein Klon-I-Knoten wird als Kopie eines Original-I-Knotens erzeugt. Der Klon-I-Knoten und der Original-I-Knoten sind für einen Endbenutzer nicht zu unterscheiden. Jeder weitere erzeugte Dateiklon führt zur Entstehung eines Klon-I-Knotens. Ein unveränderbarer klonübergeordneter I-Knoten wird erzeugt, der die Adressen der Plattenblöcke enthält, während beschreibbare Klon-I-Knoten stattdessen Duplikate enthalten, die den Klon-I-Knoten mit Datenblöcken verknüpfen, auf die im klonübergeordneten I-Knoten verwiesen wird. Datenblock-Adressverknüpfungen im Original-I-Knoten werden auf den neuen klonübergeordneten I-Knoten verschoben, und Duplikate ersetzen die Original-Datenblock-Adressverknüpfungen im Original-I-Knoten. Wenn eine Klondatei aktualisiert wird, werden die neuen Daten auf einen neuen Plattenspeicherplatz geschrieben, und ein entsprechendes Duplikat im Klon-I-Knoten wird durch die Adresse einer Datenblockverknüpfung ersetzt, wodurch die Daten des klonübergeordneten I-Knotens intakt gehalten werden.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung betrifft allgemein Datenverarbeitungssysteme und insbesondere Daten und Dateien in einem Datenverarbeitungssystem. Vor allem betrifft die vorliegende Erfindung ein verbessertes Verfahren zur Realisierung von unveränderbaren Dateiklonen zur gemeinsamen Datennutzung.
  • HINTERGRUND
  • Viele Dateisysteme einschließlich des General Parallel File System (GPFS) der IBM Corporation unterstützen Dateisystem-Momentaufnahmen (Snapshots). Dateisystem-Momentaufnahmen sind logische zeitpunktgesteuerte Kopien eines Dateisystems. Momentaufnahmen können zur Sicherung des Dateisystems verwendet werden. Das Sichern von Daten aus einer Momentaufnahme gewährleistet, dass der Inhalt des Dateisystems in einem konsistenten Zustand gehalten wird. Eine weitere übliche Verwendung von Momentaufnahmen besteht darin, regelmäßige Momentaufnahmen zu erzeugen, sowie darin, eine gewisse Anzahl neuester Momentaufnahmen online aufzubewahren, sodass ein Anwender eine frühere Kopie einer Datei abrufen kann, die versehentlich gelöscht oder überschrieben wurde.
  • Momentaufnahmen werden normalerweise mithilfe eines Kopie-beim-Schreiben-erstellen-Mechanismus realisiert. Das Erstellen einer Kopie beim Schreiben verzögert das Zuordnen von Plattenspeicherplatz zu einer Datei in der Momentaufnahme, bis die Originaldatei geändert oder gelöscht wurde. Das hat den Vorteil, dass die Erzeugung der Momentaufnahme sehr schnell vonstatten geht (zum Zeitpunkt der Erzeugung der Momentaufnahme werden keine Daten kopiert) und der von einer Momentaufnahme belegte Plattenspeicherplatz auf die Menge der Daten begrenzt ist, die seit der Erzeugung der Momentaufnahme geändert oder gelöscht wurden. Das GPFS realisiert das Kopieren beim Schreiben mithilfe logischer Verweise, die als „Duplikate” (Dittos) bezeichnet werden. Duplikate werden in I-Knoten und indirekten Blöcken von Dateien in einer Momentaufnahme (anstelle von Verweisen auf physischen Plattenspeicher) gespeichert, um anzuzeigen, dass die entsprechenden Daten oder Metadaten in der Originaldatei noch nicht geändert worden sind. Wenn eine Originaldatei geändert wird, werden Duplikate in einer Momentaufnahme durch Verweise auf Kopien der Originaldatei ersetzt. Das GPFS lässt gegenwärtig lediglich das Erzeugen einer Momentaufnahme eines ganzen Dateisystems zu. In GPFS erzeugte Momentaufnahmen sind jedoch schreibgeschützt. Obwohl ein Benutzer Dateien der Momentaufnahme lesen kann, kann er Dateien in einer Momentaufnahme nicht verändern oder löschen.
  • Außerdem kann eine Datenverwaltungs-API (Data Management Application Programming Interface, DMAPI) installiert sein, mit deren Hilfe die Anwendung eines Drittanbieters Plattenspeicherplatz in einem Dateisystem verwalten kann. DMAPI-Anwendungen funktionieren so, dass Daten in einen Offline-Speicher verschoben werden, auf die selten zugegriffen wird. Die selten verwendeten Daten können dann wiederhergestellt werden, wenn sie benötigt werden. Eine normale DMAPI-Anwendung erkennt Momentaufnahmen nicht. Daher treten erhebliche Schwierigkeiten bei der Verwaltung von Momentaufnahmen dieses Dateisystems auf, da die Momentaufnahmen unter Umständen entweder neu erzeugt werden müssen, da die Momentaufnahmen verschoben worden sind, oder von den Originaldateien getrennt werden müssen. Darüber hinaus erfordert das Wiederherstellen einer verschobenen Momentaufnahme eine beträchtliche Menge an zusätzlichem Plattenspeicherplatz, da die Momentaufnahme anschließend geändert wird, um aktualisierte Daten aufzunehmen.
  • KURZDARSTELLUNG
  • Es werden ein Verfahren, ein System und ein Computerprogrammprodukt zum Erzeugen und Realisieren von Dateiklonen offenbart. Ein Klon-I-Knoten wird als Kopie eines Original-I-Knotens erzeugt. Der Klon-I-Knoten und der Original-I-Knoten sind für einen Endbenutzer nicht zu unterscheiden. Jeder weitere erzeugte Dateiklon führt zur Entstehung eines Klon-I-Knotens. Ein unveränderbarer klonübergeordneter I-Knoten wird erzeugt, der die Adressen der Plattenblöcke enthält, während ein beschreibbarer Klon-I-Knoten stattdessen Duplikate enthält, die den Klon-I-Knoten mit Datenblöcken verknüpfen, auf die im klonübergeordneten I-Knoten verwiesen wird. Somit werden Datenblock-Adressverknüpfungen im Original-I-Knoten auf den neuen klonübergeordneten I-Knoten verschoben, und Duplikate ersetzen die Original-Datenblock-Adressverknüpfungen im Original-I-Knoten. Wenn eine Klondatei aktualisiert wird, werden die neuen Daten auf einen neuen Plattenspeicherplatz geschrieben, und ein entsprechendes Duplikat im Klon-I-Knoten wird durch die Adresse einer Datenblockverknüpfung ersetzt, wodurch die Daten des klonübergeordneten I-Knotens intakt gehalten werden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Im Folgenden werden lediglich als Beispiel eine bevorzugte Ausführungsform bzw. Ausführungsformen der vorliegenden Erfindung unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, wobei:
  • 1 ein Blockschaltbild eines Datenverarbeitungssystems ist, in dem die vorliegende Erfindung realisiert werden kann;
  • 2 die Darstellung eines Blockschaltbildes eines I-Knotens ist, der gemäß einer Ausführungsform physische Verweise auf beispielhafte Datenblöcke auf einer Plattendatei und ein I-Knotenzuordnungsschema enthält;
  • 3 die Darstellung eines Blockschaltbildes eines Klonschemas gemäß einer Ausführungsform ist, in das der Original-I-Knoten aus 2 einbezogen ist;
  • 4 ein Blockschaltbild ist, das die Erzeugung eines neuen Klon-I-Knotens eines klonübergeordneten I-Knotens gemäß einer Ausführungsform veranschaulicht;
  • 5 ein Blockschaltbild ist, das die Beziehung eines klonübergeordneten I-Knotens, eines Original-I-Knotens, der nun als Klon-I-Knoten des klonübergeordneten I-Knotens fungiert, eines Klons des klonübergeordneten I-Knotens und zweier Klon-I-Knoten des Klons des klonübergeordneten I-Knotens gemäß einer Ausführungsform veranschaulicht;
  • 6 ein Übersichts-Logikablaufplan eines beispielhaften Prozesses zum Erzeugen eines klonübergeordneten I-Knotens eines Original-I-Knotens gemäß einer Ausführungsform ist;
  • 7 ein Übersichts-Logikablaufplan der Initialisierung eines Klon-I-Knotens gemäß einer Ausführungsform ist;
  • 8 ein Übersichts-Logikablaufplan des Prozesses zum Erzeugen eines neuen (dritten) Klon-I-Knotens eines klonübergeordneten I-Knotens gemäß einer Ausführungsform ist;
  • 9 ein Übersichts-Logikablaufplan des Prozesses zum Initialisieren eines Klon-I-Knotens gemäß einer Ausführungsform ist;
  • 10 ein Übersichts-Logikablaufplan des Prozesses zum Löschen eines ausgewählten I-Knotens gemäß einer Ausführungsform ist.
  • DETAILLIERTE BESCHREIBUNG
  • Die veranschaulichenden Ausführungsformen stellen ein Verfahren, ein System und ein Computerprogrammprodukt bereit, um gemäß einer Ausführungsform unter Verwendung umgekehrter Duplikatverweise Dateiklone zur gemeinsamen Datennutzung zu realisieren.
  • In der folgenden eingehenden Beschreibung beispielhafter Ausführungsformen der Erfindung werden bestimmte beispielhafte Ausführungsformen, in denen die Erfindung praktisch umgesetzt werden kann, so eingehend beschrieben, dass Fachleute die Erfindung praktisch umsetzen können, und es versteht sich, dass andere Ausführungsformen genutzt werden können und dass logische, architektonische, programmtechnische, mechanische, elektrische oder andere Änderungen vorgenommen werden können, ohne dass vom Gedanken oder Schutzbereich der vorliegenden Erfindung abgewichen wird. Die folgende eingehende Beschreibung ist daher nicht in einschränkendem Sinne zu verstehen, und der Schutzbereich der vorliegenden Erfindung ist durch die beigefügten Ansprüche definiert.
  • Es versteht sich, dass die Verwendung von bestimmten Komponenten-, Einheiten- und/oder Parameternamen nur als Beispiel dient und nicht als Einschränkung der Erfindung gedacht ist. Die Erfindung kann daher ohne Einschränkung unter Verwendung einer anderen Nomenklatur bzw. Terminologie realisiert werden, als sie im vorliegenden Dokument zur Beschreibung der Komponenten/Einheiten/Parameter verwendet wird. Jeder der im vorliegenden Dokument verwendeten Begriffe ist im jeweiligen Kontext, in dem er verwendet wird, im breitesten Sinne zu verstehen. Obwohl die zu den beschriebenen Ausführungsformen gehörende Funktionalität allgemein als auf ein Dateisystem anwendbar beschrieben wird, gilt die Funktionalität auch für beliebige andere Arten von Dateisystemen oder Speichersystemen wie zum Beispiel eine Datenbank oder einen Objektspeicher, die dateiähnliche Objekte speichern. Diese Systeme können allgemein als mittels Computer realisierte(r) Dateispeicher und/oder Verwaltungseinrichtung bezeichnet werden.
  • Unter Bezugnahme auf 1 ist dort ein Blockschaltbild eines Datenverarbeitungssystems (DPS) 102 dargestellt, in dem die vorliegende Erfindung realisiert werden kann. Das DPS 102 enthält einen Prozessor bzw. Prozessoren 104, die mit einem Systembus 106 verbunden sind. Bei den Prozessoren 104 kann es sich um einen einzelnen Prozessor, um einen Prozessor mit mehreren Kernen oder um eine Anordnung aus mehreren Prozessoren handeln. Die mit dem Systembus 106 verbundene Videoschnittstelle 108 ermöglicht den Anschluss einer Anzeigeeinheit 130 an das DPS 102, sodass ein Benutzer des DPS 102 eine Benutzeroberfläche (mit Text und Grafik) anzeigen kann. Der Systembus 106 ermöglicht außerdem den Datenaustausch mit einem auf Hardware beruhenden lesbaren Speichermedium 112 (z. B. Nur-Lese-Speicher in Form einer Compact Disk (CD-ROM), Flash-Speicherlaufwerk). Die ebenfalls mit dem Systembus 106 verbundene Eingabe/Ausgabe-Schnittstelle (E/A-Schnittstelle) 114 dient der Interaktion des Benutzers mit dem DPS, zum Beispiel zur Dateneingabe über die Tastatur 116 oder mithilfe der Maus 117. Das DPS 102 weist darüber hinaus Systemspeicher 118 auf, der mit dem Systembus 106 verbunden ist. Innerhalb des Systemspeichers 118 ist eine Reihe von Software-/Firmware-/Logikkomponenten dargestellt, zu denen das Betriebssystem (BS) 124 (z. B. Microsoft Windows®, eine Handelsmarke der Microsoft Corp., oder GNU®/Linux®, eingetragene Handelsmarken der Software Foundation und von The Linux Mark Institute) und Anwendungen 122 gehören. Der Systemspeicher 118 kann des Weiteren eine DMAPI-Anwendung 126 enthalten, die einer weiteren Anwendung eines Drittanbieters (z. B. die Anwendungen 122) die Verwaltung von Plattenspeicherplatz in einem Dateisystem ermöglicht. Bei einer Ausführungsform ermöglicht die DMAPI 126 der Drittanbieter-Anwendung, Daten auf einen Offline-Speicher zu verschieben, auf die selten zugegriffen wird. Die selten verwendeten Daten können dann wiederhergestellt werden, wenn sie benötigt werden. Wie gezeigt weist der Systemspeicher 118 außerdem FCDS-Logik (FCDS = File Clone Data Sharing, gemeinsame Nutzung von Dateiklondaten) 120 zum Realisieren der in den 2 bis 10 beschriebenen Prozesse auf. Bei einer Ausführungsform kann das DPS 102 darüber hinaus ausführbaren Code der FCGS-Logik 120 nutzen, um unter Verwendung umgekehrter Duplikatverweise unveränderbare Dateiklone zu realisieren, wie nachfolgend in den 2 bis 10 eingehender beschrieben wird. Bei einer Ausführungsform kann die FCDS-Logik innerhalb des Speicheradapters 145 bereitgestellt sein. Diese Ausführungsform ist wahrscheinlich realisiert, wenn oder falls die Dateigruppen und ihre zugehörigen I-Knoten im internen Speicher 150 oder auf dem Dateisystem des externen Speichers 165 gespeichert werden, das über Code zugänglich gemacht wird, der im Speicheradapter 145 ausgeführt wird.
  • Das DPS 102 weist auch über einen entsprechenden Speicheradapter 145 verbundenen Systemspeicher 150 auf. Der Systemspeicher 150 speichert Daten/Anweisungen/Code einer oder mehrerer Anwendungen. Wie veranschaulicht enthält der Systemspeicher 150 das Dateisystem 155, in dem eine oder mehrere Dateigruppen gespeichert sind, die über entsprechende I-Knoten/I-Knotenblöcke zugänglich sind. Bei einer Ausführungsform ist das Dateisystem 155 als General Parallel File System (GPFS) formatiert. Außerdem kann das DPS 102 auch mit einem Dateisystem eines externen Speichers 165 verbunden sein, der externen Speicher bereitstellt, der dem internen Systemspeicher 150 ähnelt, aber anders als dieser über den Speicheradapter 145 oder das Netzwerk 142 mit dem DPS 102 verbunden ist.
  • Das DPS 102 ist darüber hinaus mit einer Netzwerkschnittstelle 110 veranschaulicht, über die das DPS 102 mit einer oder mehreren über das Netzwerk zugänglichen Einheiten verbunden sein kann, zum Beispiel mit dem externen Speicher 165 oder mit dem Server 162. Diese Einheiten sind über ein oder mehrere Netzwerke 142 zugänglich. Die Netzwerkschnittstelle 110 kann so konfiguriert sein, dass sie über eine drahtgestützte oder drahtlose Verbindung mit einem Zugriffspunkt des Netzwerks 142 wirkverbunden ist. Bei dem Netzwerk 142 kann es sich um ein externes Netzwerk wie zum Beispiel das Internet oder ein Weitverkehrsnetzwerk (Wide Area Network, WAN), um ein internes Netzwerk wie zum Beispiel ein Ethernet-Netzwerk (Local Area Network, LAN) oder um ein virtuelles privates Netzwerk (Virtual Private Network, VPN) handeln. Wenn es sich bei dem Netzwerk 142 um ein internes Netzwerk wie zum Beispiel ein LAN handelt, kann die Verbindung zum externen Netzwerk (Internet) mit einem oder mehreren Servern (162) hergestellt werden, die bei einer Ausführungsform auch Daten/Anweisungen/Code zur Verwendung durch oder Ausführung auf dem DPS 102 bereitstellen können.
  • Bei einer Ausführungsform können bestimmte zur FCDS-Logik 120 gehörende Funktionen über einen Software bereitstellenden Server (z. B. der Server 162) zur Verfügung stehen, und das DPS 102 tauscht unter Verwendung der Netzwerkschnittstelle 110 über das Netzwerk 142 Daten mit dem Software bereitstellenden Server (162) aus. Dann kann die FCDS-Logik 120 über den Software bereitstellenden Server (162) aus dem/auf/über das Netzwerk bereitgestellt werden. Bei dieser Konfiguration kann der Software bereitstellende Server (162) alle zur Ausführung der FCDS-Logik 120 gehörenden Funktionen durchführen. Demzufolge muss das DPS 102 keine internen Datenverarbeitungsressourcen des DPS 102 nutzen, um die FCDS-Logik 120 auszuführen. Alternativ kann der Software bereitstellende Server das DPS 102 zum Herunterladen des ausführbaren Codes aktivieren, der zur Realisierung der verschiedenen Merkmale der beschriebenen Ausführungsformen erforderlich ist.
  • Wie hier veranschaulicht und beschrieben kann es sich beim DPS 102 um einen Computer oder um eine Datenverarbeitungseinheit handeln, der bzw. die die erforderlichen Hardwarekomponenten aufweist und mit der FCDS-Logik 120 programmiert ist, die auf dem Prozessor ausgeführt wird, um die Funktionalität der beschriebenen Ausführungsformen bereitzustellen. Die im DPS 102 abgebildeten Hardwareelemente sind nicht als vollständig anzusehen, sondern dienen vielmehr der Hervorhebung wesentlicher Komponenten, die zur Realisierung der vorliegenden Erfindung genutzt werden können. Beispielsweise können unterschiedliche Konfigurationen von Datenverarbeitungssystemen bzw. Datenverarbeitungseinheiten genutzt werden, die andere Einheiten bzw. Komponenten enthalten, die zusätzlich zur abgebildeten Hardware oder an deren Stelle verwendet werden können. Das abgebildete Beispiel ist nicht als architektonische oder anderweitige Einschränkung in Bezug auf die gegenwärtig beschriebenen Ausführungsformen und/oder auf die allgemeine Erfindung gedacht. Bei dem in 1 abgebildeten Datenverarbeitungssystem kann es sich zum Beispiel um ein System des Typs IBM eServer pSeries, ein Produkt der International Business Machines Corporation in Armonk, N.Y. USA, handeln, das auf dem Betriebssystem Advanced Interactive Executive (AIX) oder LINUX ausgeführt wird.
  • Unter Bezugnahme auf 2 ist dort eine Darstellung eines beispielhaften Zuordnungsschemas zwischen Datendateien und I-Knoten gemäß einer Ausführungsform der Erfindung abgebildet. Wie in 2 gezeigt enthält der Original-I-Knoten (i1) 202 zugehörige Datenblock-Adressverknüpfungen 204a-n, die einer im DPS 102 gespeicherten Datei entsprechen. Die Datenblock-Adressverknüpfungen 204a-n verknüpfen den Original-I-Knoten (i1) 202 mit den Datenblöcken 206a-n. Die Datenblöcke 206a-n enthalten die Zieldaten des Original-I-Knotens (i1) 202 und können zu jedem beliebigen Zeitpunkt durch den Prozessor bzw. durch die Prozessoren 104 (1) aufgerufen werden.
  • Unter Bezugnahme auf 3 ist dort eine Darstellung eines Klonschemas gemäß einer Ausführungsform der Erfindung abgebildet, in das der Original-I-Knoten einbezogen ist. Wie gezeigt sorgt das Klonschema dafür, dass der Klon-I-Knoten (i0) 302 als klonübergeordnetes Element der Momentaufnahme des Original-I-Knotens (i1) 202 erzeugt worden ist. Der Klon-I-Knoten (i0) 302 fungiert als unveränderbare Datei-Momentaufnahme (klonübergeordneter I-Knoten), die als Grundlage für spätere Dateiklone dient.
  • Zur Erzeugung eines Klon-I-Knotens (i0) 302 wählt oder erhält die Logik des DPS 102 (zum Beispiel die FCDS-Logik 120) zunächst eine Auswahl eines ausgewählten I-Knotens (Original-I-Knoten (i1) 202), der einer Originaldatei entspricht, und erzeugt einen Klon-I-Knoten (i0) 302. Die protokollierte Erzeugungszeit des Klon-I-Knotens (i0) 302 kann vom Original-I-Knoten (i1) 202 kopiert oder anhand der aktuellen Zeit festgelegt werden, zu der der Klon-I-Knoten (i0) 302 erzeugt wird. Nach dem Zuordnen des Klon-I-Knotens (i0) 302 wird der Status des Klon-I-Knotens (i0) 302 als „erzeugt” festgelegt. Anschließend kann ein Name des neuen Klon-I-Knotens (i0) 302 eingefügt werden. Der Name des Klon-I-Knotens (i0) 302 kann durch einen Benutzer des DPS 102 eingegeben oder durch die auf dem DPS 102 ausgeführte Logik (z. B. die FCDS-Logik 120) selbstständig zugewiesen werden. Bei einer alternativen Ausführungsform kann ein Name des Klon-I-Knotens (i0) 302 durch einen Computer 160a-n bereitgestellt werden, der über das Netzwerk 142 mit dem DPS 102 verbunden ist. Auch ein Zielverzeichnis kann durch einen Benutzer des DPS 102 eingegeben oder durch die auf dem DPS 102 ausgeführte Logik (z. B. die FCDS-Logik 120) selbstständig zugewiesen werden. Als Reaktion auf das Erhalten eines Namenseintrags und eines Zielverzeichnisses wird der Klon-I-Knoten (i0) 302 in das ausgewählte Zielverzeichnis eingefügt und der angegebene Namenseintrag zugewiesen.
  • Nachdem der Klon-I-Knoten (i0) 302 im Zielverzeichnis angelegt und für den Knoten ein Name vergeben worden ist, wird der Klon-I-Knoten (i0) 302 als klonübergeordnetes Element des Original-I-Knotens (i1) 202 initialisiert. Sobald er als klonübergeordnetes Element initialisiert wurde, wird ein klonübergeordneter I-Knoten zu einer unveränderbaren Kopie eines Original-I-Knotens. Der Initialisierungsprozess weist die Schritte auf: (1) Kopieren der Datenblock-Adressverknüpfungen 204a-n und eines Kopfes des Original-I-Knotens (i0) 302, (2) Setzen eines Verknüpfungszählwertes im Klon-I-Knoten (i0) 302 auf 2, (3) Kopieren von I-Knoten-Zeitstempeln und -Berechtigungsbits des Original-I-Knotens (i1) 202 auf den Klon-I-Knoten (i0) 302, (4) Ermitteln von Eigentümerberechtigungsnachweisen des Klon-I-Knotens (i0) 302 und (5) Setzen eines Eigentümerfeldes des Klon-I-Knotens (i0) 302 auf der Grundlage der ermittelten Eigentümerberechtigungsnachweise. Bei einer Ausführungsform können die Schritte 1 bis 5 auch protokolliert werden, um jeden Schritt genau nachvollziehbar zu machen.
  • Bei einem Verknüpfungszählwert handelt es sich um einen Zählwert der Anzahl von I-Knoten, die von diesem bestimmten I-Knoten abhängen. Beispielsweise würde ein geklonter untergeordneter I-Knoten ohne Klone von sich selbst einen Verknüpfungszählwert von eins haben, da er nur von sich selbst abhängt. Ein übergeordneter I-Knoten mit zwei untergeordneten Klonen würde einen Verknüpfungszählwert von drei haben (einen Zählwert für sich selbst und zwei Zählwerte für die zwei abhängigen untergeordneten Klone). Da das Löschen eines übergeordneten I-Knotens in einem Dateisystem erhebliche Probleme verursachen kann, können Anforderungen zum Löschen von I-Knoten zurückgewiesen werden, wenn eine angeforderte Löschoperation auf einen übergeordneten Knoten zielt. Daher dürfen I-Knoten mit einem Verknüpfungszählwert von über eins nicht gelöscht werden (da ein untergeordneter I-Knoten nach wie vor von einem I-Knoten mit einem Verknüpfungszählwert von über eins abhängt).
  • Die Eigentümerberechtigungsnachweise stellen Daten zur Kennzeichnung des Eigentümers eines I-Knotens bereit. Bei einer Ausführungsform können die Eigentümerberechtigungsnachweise für einen Klon-I-Knoten (i0) 302 einfach im Original-I-Knoten (i1) 202 erkannt und aus diesem kopiert werden. Bei einer alternativen Ausführungsform können die Eigentümerberechtigungsnachweise auf der Grundlage eines aktuellen Benutzers des DPS 102 oder auf der Grundlage eines gerade ausgeführten Prozesses des DPS 102 selbstständig erzeugt werden. Außerdem kann ein Plattenblockkontingent des Original-I-Knotens (i1) 202 auf den Eigentümer des Klon-I-Knotens (i0) 302 übertragen werden, wenn sich der Eigentümer des Klon-I-Knotens (i0) 302 von einem Eigentümer des Original-I-Knotens (i1) 202 unterscheidet.
  • Als Reaktion auf den Abschluss der Initialisierung des Klon-I-Knotens (i0) 302 wird der Original-I-Knoten (i1) 202 aktualisiert, um die Änderungen widerzuspiegeln. Da der Klon-I-Knoten (i0) 302 das neue klonübergeordnete Element des Original-I-Knotens (i1) 202 bildet, sind die Datenblock-Adressverknüpfungen 204a-n, die zuvor dem Original-I-Knoten (i1) 202 zugeordnet waren, stattdessen auf den Klon-I-Knoten (i0) 302 verschoben worden (als Datenblock-Adressverknüpfungen 204a-n veranschaulicht). Die ursprünglich zum Original-I-Knoten (i1) 202 gehörenden Datenblöcke werden nun durch Duplikate 312a-n ersetzt. Jedes Duplikat 312a-n entspricht einer der Datenblock-Adressverknüpfungen 204a-n. Bei einem Duplikat handelt es sich um einen Verweis, der in einem I-Knoten oder in einem indirekten Block in einer Momentaufnahme gespeichert ist und mehreren Dateien die gemeinsame Nutzung desselben Plattenspeicherplatzes ermöglicht, indem Leseanforderungen auf eine andere Datei umgeleitet werden. Duplikate zeigen an, dass die entsprechende Daten oder Metadaten in der Originaldatei noch nicht verändert worden sind. Da es sich bei Duplikaten nur um Verweise auf den ursprünglichen Plattenspeicherplatz handelt, wird kein weiterer Systemspeicher benötigt, bis der Original-I-Knoten verändert wird. Bei einer Ausführungsform enthalten die Adressverknüpfungen einer unveränderbaren Datei (das klonübergeordnete Element) die Blockadressen der Platte, während die Adressverknüpfungen in einer beschreibbaren Datei (die Klondatei) Duplikate enthalten. Die Duplikate zeigen auf die im klonübergeordneten Element gespeicherten Adressverknüpfungen der Plattenblöcke. Wenn eine Klondatei aktualisiert wird, werden die neuen Daten auf einen neuen Speicherplatz auf der Platte geschrieben, und das Duplikat im Klon wird dann durch eine tatsächliche Datenblock-Verknüpfungsadresse ersetzt.
  • Nach dem Ersetzen jeder der Datenblock-Verknüpfungen 204a-n durch die Duplikate 312a-n wird der Blockzählwert des Original-I-Knotens (i1) 202 auf null gesetzt. Der Original-I-Knoten 202 wird als untergeordnetes Element des Klon-I-Knotens (i0) 302 aktualisiert, und eine I-Knotenzuordnung wird aktualisiert, um den Klon-I-Knoten (i0) 302 als in Gebrauch befindlich zu kennzeichnen. Der Blockzählwert eines I-Knotens kennzeichnet die Anzahl von Datenblöcken, die in diesem I-Knoten gespeichert sind. Da der Original-I-Knoten (i1) 202 jetzt nur Duplikate 312a-n enthält, beträgt der Blockzählwert null. Wenn der Original-I-Knoten 202 verändert wird, werden die betroffenen Duplikate durch Verweise auf Kopien der Originaldaten ersetzt und der Blockzählwert bei jedem weiteren Duplikat 312a-n um eins erhöht, das durch einen Datenblock ersetzt wurde.
  • Bei einer weiteren Ausführungsform ist der Klon-I-Knoten (i0) 302 ein neuer I-Knoten. Bei dem Klon-I-Knoten (i0) 302 kann es sich aber auch um einen bestehenden I-Knoten handeln, der in einen Klon des Original-I-Knotens (i1) 202 umfunktioniert worden ist. Um einen bestehenden I-Knoten umzufunktionieren, muss zunächst ein Klonattribut in dem bestehenden I-Knoten gespeichert werden. Der bestehende I-Knoten kann anschließend als klonübergeordnetes Element markiert werden.
  • Bei einer Ausführungsform kann das DPS 102 eine darin verkörperte DMAPI-Anwendung (z. B. die DMAPI 126) aufweisen, die dazu genutzt wird, um Daten in den Offline-Speicher zu verschieben, auf die selten zugegriffen wird, und um bei Bedarf die Daten in transparenter Weise wiederherzustellen, wobei die Anwendung nicht konfiguriert ist, um geklonte Dateien korrekt zu verwalten. Da klonübergeordnete Elemente (z. B. der Klon-I-Knoten (i0) 302) unveränderbar sind, müssen die Daten, die durch den unsichtbaren Schreibvorgang auf ein Duplikat wiederhergestellt werden, identisch mit den Daten sein, die sich noch im übergeordneten Element befinden. Dadurch bleiben Klondateien erhalten, wenn sie auf den bzw. vom Offline-Speicher migriert werden. Als Reaktion darauf, dass die DMAPI-Anwendung eine oder mehrere geklonte Dateien vom Speicher des Datenverarbeitungssystems auf den Offline-Speicher verschiebt und bei jeder geklonten Datei einen Datenlesebefehl ausgibt, führt die auf dem DPS 102 ausgeführte Logik (z. B. die FCDS-Logik 120) einen unsichtbaren Datenlesevorgang für Daten durch, die über die Duplikate im Klon-I-Knoten indirekt verknüpft sind. Als Reaktion darauf, dass die DMAPI-Anwendung bei jeder geklonten Datei einen Datenlesebefehl ausgibt, ignoriert die Logik den Schreibbefehl stillschweigend, wenn der Schreibbefehl dazu führen würde, dass ein oder mehrere Duplikate des Klon-I-Knotens überschrieben werden.
  • Außerdem kann die Logik als Reaktion darauf, dass die DMAPI-Anwendung auf der Grundlage einer letzten Zugriffszeit eine oder mehrere geklonte Dateien auf den bzw. vom Offline-Speicher auf den Speicher des Datenverarbeitungssystems migriert, selbstständig die letzte Zugriffszeit des geklonten I-Knotens aktualisieren, um Plattenadressen aufzulösen.
  • Unter Bezugnahme auf 4 ist dort eine Darstellung eines Original-I-Knotens (i1) 202, eines geklonten I-Knotens (i0) 302, eines neuen Klons des Klon-I-Knotens (i0) 302 und eines neuen I-Knotens (i2) 402 gemäß einer Ausführungsform abgebildet. Der Klon-I-Knoten (i0) 302 ist das unveränderbare klonübergeordnete Element des Original-I-Knotens (i1) 202, wie in 3 dargestellt. Der neue I-Knoten (i2) 402 ist ebenfalls als neuer Klon des Klon-I-Knotens (i0) 302 erzeugt worden.
  • Um den neuen I-Knoten (i2) 402 zu erzeugen, muss zunächst der neue I-Knoten (i2) 402 als neuer Klon-I-Knoten zugeordnet werden. Name und Zielverzeichnisse werden ebenfalls wie oben beschrieben verwendet. Als Reaktion auf das Erhalten eines neuen Nameneintrags und des Zielverzeichnisses für den neuen I-Knoten (i2) 402 wird der neue I-Knoten (i2) 402 mit dem neuen Namen als neuer Eintrag in das ausgewählte Zielverzeichnis eingefügt.
  • Nachdem der neue I-Knoten (i2) 402 im Zielverzeichnis angelegt und für den Knoten ein Name vergeben worden ist, wird der neue I-Knoten (i2) 402 als Klon des Klon-I-Knotens (i0) 302 initialisiert. Der Initialisierungsprozess weist die Schritte auf: (1) Kopieren des Kopfes des klonübergeordneten Elements (i0) 302 auf den neuen I-Knoten (i2) 402, (2) Setzen eines oder mehrerer Duplikate 404a-n, die der einen oder mehreren Datenblock-Adressverknüpfungen 204a-n entsprechen, die im Klon-I-Knoten (i0) 302 gespeichert sind, (3) Setzen eines Verknüpfungszählwertes im neuen I-Knoten (i2) 402 auf 1, (4) Setzen des Blockzählwertes des neuen I-Knotens (i2) 402 auf null und (5) Registrieren des Klon-I-Knotens (i0) 302 als neues klonübergeordnetes Element des neuen I-Knotens (i2) 402. Bei einer Ausführungsform können die Schritte 1 bis 5 auch protokolliert werden, um jeden Schritt genau nachvollziehbar zu machen. Sobald der neue I-Knoten (i2) 402 initialisiert ist, werden der Verknüpfungszählwert des Klon-I-Knotens (i0) 302 um eins erhöht und die I-Knotenzuordnung aktualisiert, um den neuen I-Knoten (i2) 402 als in Gebrauch befindlich zu kennzeichnen. Das Erhöhen des Verknüpfungszählwertes des Klon-I-Knotens (i0) 302 kennzeichnet den Klon-I-Knoten (i0) 302 als übergeordnetes Element eines anderen I-Knotens (in diesem Fall des neuen I-Knotens (i2) 402).
  • Unter Bezugnahme auf 5 ist dort eine Darstellung einer beispielhaften Ausführungsform abgebildet, die einen klonübergeordneten I-Knoten (Klon-I-Knoten (i0) 302), einen Original-I-Knoten, der jetzt als Klon des klonübergeordneten I-Knotens (Original-I-Knoten (i1) 202) fungiert, einen Klon des klonübergeordneten I-Knotens (neuer I-Knoten (i2) 402) und zwei Klone des klonübergeordneten I-Knotens (erster Klon-I-Knoten (i3) 522 und zweiter Klon-I-Knoten (i4) 542) aufweist. 5 veranschaulicht, wie sowohl der übergeordnete I-Knoten als auch der Klon-I-Knoten einzeln gelesen oder geschrieben werden können. Der neue I-Knoten (i2) 402 ist auch der übergeordnete I-Knoten zweier untergeordneter Klon-I-Knoten – des ersten Klon-I-Knotens (i3) 522 und des zweiten Klon-I-Knotens (i4) 542. Sowohl der erste Klon-I-Koten (i3) 522 als auch der zweite Klon-I-Knoten (i4) 542 weisen die Duplikate 524a-d bzw. 544a-d auf. Insbesondere veranschaulicht 5, dass der Original-I-Knoten (i1) 202 die Duplikate 312a-d aufweist, dass der Klon-I-Knoten (i0) 302 (bei dem es sich um das klonübergeordnete Element des Original-I-Knotens 202 handelt) Datenblock-Adressverknüpfungen 204a-d aufweist und dass der neue I-Knoten (i2) 402 zwei Duplikate 404a-b aufweist, die den Datenblock-Adressverknüpfungen und zwei Datenblock-Adressverknüpfungen 508c-d entsprechen. Der neue I-Knoten (i2) 402 ist ein Klon des Klon-I-Knotens (i0) 302.
  • Wie in der oben genannten beispielhaften 5 veranschaulicht weist der neue I-Knoten (i2) 402 zwei Duplikate 404a-b auf, die den Datenblock-Adressverknüpfungen 204a-b des Klon-I-Knotens (i0) 302 entsprechen. Außerdem weist der neue I-Knoten (i2) 402 auch die Datenblock-Adressverknüpfungen 508c-d auf, die auf die Datenblöcke 506c-d zeigen. Dies ist dadurch entstanden, dass eine Zieldatei des neuen I-Knotens (i2) 402 verändert wurde, wovon zwei Duplikate betroffen waren. Anstatt den Klon-I-Knoten (i0) 302 abzuändern wurden die untergeordneten Duplikate 404c-d durch Datenblock-Adressverknüpfungen 508c-d ersetzt, die Verweise auf die aktualisierten Daten enthalten, die auf den Datenblöcken 506c-d gespeichert sind. Daher bleiben die Datenverweise der Datenblock-Adressverknüpfungen 204a-b unberührt, wodurch die Klon-Momentaufnahme beibehalten wird.
  • Alle Veränderungen an Dateien, die durch den neuen Knoten (i2) 402 verknüpft sind, würden sich auf die Duplikate 524a-d und die Duplikate 544a-d des ersten Klon-I-Knotens (i3) 522) bzw. des zweiten Klon-I-Knotens (i4) 542 auswirken. Das Ergebnis einer derartigen Operation besteht darin, dass die Duplikate 524a-b und die Duplikate 544a-b nach wie vor indirekt auf Datenblock-Adressverknüpfungen 204a-b zeigen, während die Duplikate 524c-d und die Duplikate 544c-d auf die Datenblock-Adressverknüpfungen 508c-d zeigen. Im Gegensatz hierzu zeigen die Duplikate 312a-d des Original-I-Knotens (i1) 202 nach wie vor auf 204a-d, da der Original-I-Knoten (i1) 202 nicht verändert worden ist.
  • Unter Bezugnahme auf 6 ist dort ein Übersichts-Logikablaufplan eines beispielhaften Prozesses zum Erzeugen eines klonübergeordneten I-Knotens eines Original-I-Knotens gemäß einer Ausführungsform der Erfindung dargestellt. Der Prozess beginnt wie dargestellt bei Block 600 und geht anschließend zu Block 605 über, in dem ein Original-I-Knoten ausgewählt wird. Sobald der Original-I-Knoten ausgewählt ist, wird ein Klon-I-Knoten erzeugt, der als neuer klonübergeordneter I-Knoten des Original-I-Knotens vorgesehen ist (Block 610). Bei Block 615 werden ein Namenseintrag und der Status des Klon-I-Knotens erstellt. Der Status des Klon-I-Knotens wird auf „klonübergeordnetes Element” gesetzt. Außerdem wird für den Klon-I-Knoten ein gewünschtes Zielverzeichnis erstellt (Block 617). Anschließend wird der Klon-I-Knoten anhand des gewählten Namens als Verzeichniseintrag in das ausgewählte Zielverzeichnis eingefügt (Block 620). Bei Block 625 wird der Klon-I-Knoten als klonübergeordnetes Element initialisiert. Die Teilschritte der in Block 625 durchgeführten Initialisierung werden in 7 ausführlicher erläutert.
  • Sobald der Klon-I-Knoten als klonübergeordnetes Element initialisiert worden ist, wird der Original-I-Knoten aktualisiert (Block 630). Zum Aktualisieren des Klon-I-Knotens gehört auch das Setzen jeder der einen oder mehreren im Original-I-Knoten enthaltenen Datenblock-Adressverknüpfungen auf ein oder mehrere Duplikate. Die Duplikate adressieren indirekt eine oder mehrere Datenblock-Adressverknüpfungen, die jetzt im Klon-I-Knoten (dem neuen klonübergeordneten I-Knoten) enthalten sind. Da der Original-I-Knoten jetzt Datenblock-Adressverknüpfungen enthält, wird der Blockzählwert des Original-I-Knotens auf null gesetzt. Bei Block 635 wird die I-Knotenzuordnung aktualisiert, um den Klon-I-Knoten als neuen klonübergeordneten I-Knoten des Original I-Knotens widerzuspiegeln. Der Prozess endet bei Block 690.
  • Unter Bezugnahme auf 7 ist dort ein Übersichts-Logikablaufplan der Initialisierung des in Block 625 von 6 erwähnten Klon-I-Knotens gemäß einer Ausführungsform der Erfindung dargestellt. Wie dargestellt beginnt der Prozess bei Block 700 und geht anschließend zu Block 705 über, in dem die Datenblock-Adressverknüpfungen und die Kopfdaten aus dem Original-I-Knoten auf den Klon-I-Knoten kopiert werden. Der Klon-I-Knoten enthält jetzt die zuvor im Original-I-Knoten gespeicherten Daten, und der Verknüpfungszählwert des Klon-I-Knotens wird erhöht (oder auf 2 gesetzt), da sowohl der Klon-I-Knoten und der Original-I-Knoten jetzt von dem neuen klonübergeordneten I-Knoten (dem Klon-I-Knoten) abhängen (Block 710). Bei Block 715 werden Zeitstempel und Berechtigungsbits aus dem Original-I-Knoten auf den Klon-I-Knoten kopiert, wodurch der Klon-I-Knoten identisch zu dem Original-I-Knoten wird, den der Klon-I-Knoten jetzt ersetzt. Die Eigentümerberechtigungsnachweise des Klon-I-Knotens werden in Block 720 ermittelt. Die Eigentümerberechtigungsnachweise können identisch mit denen des Original-I-Knotens sein oder es kann sich um die Eigentümerberechtigungsnachweise eines aktuellen Benutzers oder eines ausgeführten Prozesses handeln.
  • Bei Block 725 wird eine Ermittlung dahingehend vorgenommen, ob sich der Eigentümer des Klon-I-Knotens vom Eigentümer des Original-I-Knotens unterscheidet. Wenn sich der Eigentümer des Klon-I-Knotens vom Eigentümer des Original-I-Knotens unterscheidet, wird das Plattenblockkontingent des Original-I-Knotens vollständig auf den Eigentümern des Klon-I-Knotens übertragen (Block 750), und der Prozess geht zu Block 750 über. Bei Block 750 wird das Eigentümerfeld des Klon-I-Knotens auf der Grundlage der zuvor ermittelten Eigentümerberechtigungsnachweise aktualisiert. Der Prozess endet bei Block 790.
  • Unter Bezugnahme auf 8 ist dort ein Übersichts-Logikablaufplan eines beispielhaften Prozesses zum Erzeugen eines neuen (dritten) Klon-I-Knotens eines klonübergeordneten I-Knotens gemäß einer Ausführungsform der Erfindung dargestellt. Der Prozess beginnt bei Block 800, bei dem ein neuer Klon-I-Knoten als Klon des klonübergeordneten I-Knotens erzeugt wird. Bei Block 810 werden von einem Benutzer oder einem ausgeführten Prozess für den neuen Klon-I-Knoten ein Name und ein Zielverzeichniseintrag erhalten. Bei Block 815 wird der Namenseintrag des neuen Klon-I-Knotens gesetzt, und der neue Klon-I-Knoten wird im Zielverzeichnis eingefügt. Bei Block 820 wird der neue Klon-I-Knoten als Klon des klonübergeordneten I-Knotens initialisiert. Die Teilschritte der in Block 820 durchgeführten Initialisierung werden in 9 ausführlicher erläutert.
  • Bei Block 825 wird der Verknüpfungszählwert des klonübergeordneten I-Knotens erhöht, da der klonübergeordneten I-Knoten jetzt einen neuen abhängigen I-Knoten (neuer Klon-I-Knoten) hat. Bei Block 830 wird die I-Knotenzuordnung aktualisiert, um den Status des neuen Klon-I-Knotens als in Gebrauch befindlich widerzuspiegeln. Der Prozess endet bei Block 890.
  • Unter Bezugnahme auf 9 ist dort ein Übersichts-Logikablaufplan der Initialisierung des neuen Klon-I-Knotens dargestellt, die in Block 820 gemäß einer Ausführungsform der Erfindung durchgeführt wird. Wie dargestellt beginnt der Prozess bei Block 900 und geht dann zu Block 905 über, bei dem der Kopf aus dem klonübergeordneten I-Knoten auf den neuen Klon-I-Knoten kopiert wird. Bei Block 910 werden Duplikate im neuen Klon-I-Knoten erzeugt und so gesetzt, dass sie auf die Datenblock-Adressverknüpfungen des klonübergeordneten I-Knotens zeigen. Der Verknüpfungszählwert des neuen Klon-I-Knotens wird anschließend auf 1 gesetzt, da der neue Klon-I-Knoten nur von sich selbst abhängt (Block 915). Bei Block 920 wird der Blockzählwert des neuen Klon-I-Knotens auf 0 gesetzt, da der neue Klon-I-Knoten nur Duplikate enthält und noch keine Datenblock-Adressverknüpfungen speichert. Der klonübergeordnete I-Knoten wird anschließend im neuen Klon-I-Knoten als klonübergeordnetes Element des neuen Klon-I-Knotens registriert, und die Erzeugungszeit des neuen Klon-I-Knotens wird auf die aktuelle Zeit gesetzt (Block 925). Der Prozess endet bei Block 990.
  • Unter Bezugnahme auf 10 ist dort ein Übersichts-Logikablaufplan des Prozesses zum Löschen eines ausgewählten I-Knotens gemäß einer Ausführungsform dargestellt. Der Prozess beginnt bei Block 1000 und endet bei Block 1005, bei dem für einen ausgewählten Knoten eine Löschanweisung erhalten wird. Als Reaktion auf das Erhalten der Löschanweisung wird eine Ermittlung dahingehend vorgenommen, ob es sich bei dem ausgewählten I-Knoten um ein klonübergeordnetes Element handelt (Block 1010). Wenn es sich bei dem ausgewählten I-Knoten nicht um ein klonübergeordnetes Element handelt, geht der Prozess zu Block 1030 über.
  • Wenn es sich bei einem ausgewählten I-Knoten um einen klonübergeordneten I-Knoten handelt, geht der Prozess zu Block 1020 über, bei dem eine Ermittlung dahingehend vorgenommen wird, ob es sich bei dem klonübergeordneten Element nach wie vor um ein übergeordnetes Element beliebiger untergeordneter Elemente handelt. Diese Ermittlung wird durchgeführt, indem der Verknüpfungszählwert des ausgewählten I-Knotens gelesen und ermittelt wird, ob der Verknüpfungszählwert gleich eins (1) ist. Wenn der Verknüpfungszählwert ungleich eins (1) ist, weist der I-Knoten nach wie vor abhängige untergeordnete Klonelemente auf, und der Prozess geht zu Block 1025 über, bei dem die Löschanforderung zurückgewiesen wird. Der Prozess endet bei Block 1090. Wenn der Verknüpfungszählwert des ausgewählten I-Knotens gleich eins (1) ist, geht der Prozess zu Block 1030 über.
  • Bei Block 1030 wird das übergeordnete Element des ausgewählten Knotens ermittelt. Als Reaktion auf das Ermitteln des übergeordneten Elements des ausgewählten Knotens wird der Verknüpfungszählwert des ausgewählten I-Knotens um eins verringert (Block 1035). Der Verknüpfungszählwert des übergeordneten Elements des ausgewählten I-Knotens wird verringert, da der ausgewählte I-Knoten zum Löschen vorgesehen ist und nicht mehr von seinem übergeordneten i-Knoten abhängt. Bei Block 1040 wird der ausgewählte I-Knoten gelöscht. Der Prozess endet bei Block 1090.
  • Die in den verschiedenen Figuren dargelegten und hier beschriebenen Ablaufpläne und Blockschaltbilder veranschaulichen die Architektur, Funktionalität und Funktionsweise möglicher Realisierungsformen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Dementsprechend kann jeder Block in den Ablaufplänen oder in den Blockschaltbildern ein Modul, ein Segment oder einen Teil des Codes darstellen, der eine oder mehrere ausführbare Anweisungen zur Realisierung der angegebenen Logikfunktion bzw. Logikfunktionen aufweist. Außerdem sollte beachtet werden, dass bei einigen alternativen Realisierungsformen die im Block angegebenen Funktionen in einer anderen als der in den Figuren angegebenen Reihenfolge ausgeführt werden können. Beispielsweise können zwei hintereinander aufgeführte Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können je nach der damit verbundenen Funktionalität manchmal in umgekehrter Reihenfolge ausgeführt werden. Darüber hinaus ist anzumerken, dass jeder Block der dargestellten Blockschaltbilder und/oder des dargestellten Ablaufplans sowie Kombinationen von Blöcken in den dargestellten Blockschaltbildern und/oder im dargestellten Ablaufplan mithilfe von speziellen Systemen auf der Grundlage von Hardware zur Ausführung der angegebenen Funktionen bzw. Aktionen oder mithilfe von Kombinationen aus spezieller Hardware und Computeranweisungen realisiert werden kann bzw. können.
  • In den oben aufgeführten Ablaufplänen können eines oder mehrere der Verfahren in einen computerlesbaren Medium verkörpert sein, das computerlesbaren Code enthält, sodass eine Reihe von Schritten ausgeführt wird, wenn der computerlesbare Code (durch eine Verarbeitungseinheit) auf einer Datenverarbeitungseinrichtung ausgeführt wird. Bei einigen Realisierungsformen werden bestimmte Prozesse der Verfahren kombiniert, gleichzeitig oder in einer anderen Reihenfolge ausgeführt oder möglicherweise weggelassen, ohne das vom Gedanken und Schutzbereich der Erfindung abgewichen würde. Daher soll die Verwendung einer bestimmten Reihenfolge von Prozessen keine Einschränkung der Erfindung darstellen, auch wenn die Prozesse in einer bestimmten Reihenfolge beschrieben und veranschaulicht werden. Es können Änderungen hinsichtlich der Reihenfolge von Prozessen vorgenommen werden, ohne dass vom Gedanken oder Schutzbereich der Erfindung abgewichen würde. Die Verwendung einer bestimmten Reihenfolge ist daher nicht in einem einschränkenden Sinne zu verstehen, und der Schutzbereich der vorliegenden Erfindung wird einzig durch die beigefügten Ansprüche und Äquivalente davon definiert.
  • Fachleuten wird klar sein, dass Aspekte der vorliegenden Erfindung in Form eines Systems, Verfahrens oder Computerprogrammprodukts verkörpert sein können. Demzufolge können Aspekte der vorliegenden Erfindung die Form einer komplett in Hardware realisierten Ausführungsform, einer komplett in Software realisierten Ausführungsform (unter anderem Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardwareaspekte kombiniert, die hier allgemein als „Schaltung”, „Modul” oder „System” bezeichnet werden. Ferner können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien verkörpert ist, auf denen computerlesbarer Programmcode verkörpert ist.
  • Es können beliebige Kombinationen eines oder mehrerer computerlesbarer Medien verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Zu computerlesbaren Speichermedien können beispielsweise, ohne darauf beschränkt zu sein, ein elektronisches, magnetisches, optisches oder elektromagnetisches System bzw. ein Infrarot- oder Halbleitersystem bzw. eine derartige Vorrichtung oder Einheit oder eine beliebige geeignete Kombination des Vorstehenden gehören. Zu den genaueren Beispielen (unvollständige Liste) computerlesbarer Speichermedien zählen unter anderem folgende: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein Nur-Lese-Speicher in Form einer Compact Disc (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination des Vorstehenden. Im Kontext des vorliegenden Dokuments kann ein computerlesbares Speichermedium jedes beliebige vergegenständlichte Medium sein, das ein Programm enthalten oder speichern kann, das von oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung genutzt werden kann.
  • Ein computerlesbares Signalmedium kann unter anderem ein im Basisband oder als Teil einer Trägerwelle übertragenes Datensignal mit darin verkörpertem computerlesbarem Programmcode aufweisen. Ein derartiges übertragenes Signal kann eine beliebige Vielfalt von Formen annehmen, einschließlich, ohne darauf beschränkt zu sein, einer elektromagnetischen oder optischen Form oder einer beliebigen geeigneten Kombinationen davon. Ein computerlesbares Signalmedium kann ein beliebiges computerlesbares Medium sein, bei dem es sich nicht um ein computerlesbares Speichermedium handelt und das ein Programm übertragen, senden oder transportieren kann, das von oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung genutzt werden kann.
  • Auf einem computerlesbaren Medium verkörperter Programmcode kann unter Verwendung jedes beliebigen geeigneten Mediums, beispielsweise und ohne Beschränkung auf die Aufzählung, über drahtlose oder drahtgebundene Medien, Lichtwellenleiter, HF usw., oder unter Verwendung beliebiger geeigneter Kombinationen des Vorstehenden übertragen werden. Computerprogrammcode zum Ausführen von Operationen bei Aspekten der vorliegenden Erfindung kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen, darunter in einer objektorientierten Programmiersprache wie Java, Smalltalk, C++ oder dergleichen und in herkömmlichen prozeduralen Programmiersprachen wie „C” oder ähnlichen Programmiersprachen geschrieben sein. Der Programmcode kann 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 vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Beim letztgenannten Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über eine beliebige Art von Netzwerk verbunden sein, unter anderem über ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (beispielsweise über das Internet unter Nutzung eines Internet-Dienstanbieters (Internet Service Provider)).
  • Nachstehend werden Aspekte der vorliegenden Erfindung unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder und Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschaltbildern durch Computerprogrammanweisungen realisiert werden kann bzw. können. Diese Computerprogrammanweisungen können einem Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder anderer programmierbarer Datenverarbeitungsvorrichtungen bereitstellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel zum Realisieren der in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschaltbildes angegebenen Funktionen/Aktionen schaffen.
  • Diese Computerprogrammanweisungen können ebenfalls in einem computerlesbaren Medium gespeichert sein, das einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, sodass die im computerlesbaren Medium gespeicherten Anweisungen ein Fertigprodukt erzeugen, das die Anweisungen aufweist, die die in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschaltbildes angegebene Funktion/Aktion realisieren. Die Computerprogrammanweisungen können auch in einen Computer, in andere programmierbare Datenverarbeitungsvorrichtungen oder in andere Einheiten geladen werden, um zu bewirken, dass auf dem Computer, auf anderen programmierbaren Vorrichtungen oder anderen Einheiten eine Reihe von Arbeitsschritten ausgeführt wird, um einen mittels Computer realisierten Prozess zu schaffen, sodass die Anweisungen, die auf dem Computer oder auf anderen programmierbaren Vorrichtungen ausgeführt werden, Prozesse zur Realisierung der in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschaltbildes angegebenen Funktionen/Aktionen bereitstellen.
  • Ferner versteht sich, dass die Prozesse bei Ausführungsformen der vorliegenden Erfindung unter Verwendung einer beliebigen Kombination aus Software, Firmware oder Hardware realisiert werden können. Als Vorbereitungsschritt zur praktischen Umsetzung der Erfindung in Software wird der Programmiercode (gleichgültig, ob Software oder Firmware) normalerweise auf einem oder mehreren maschinenlesbaren Medien wie z. B. Festplattenlaufwerken, Disketten optischen Platten, Magnetband, Halbleiterspeichern wie ROMs, PROMs usw. gespeichert, wodurch ein Fertigprodukt gemäß der Erfindung erzeugt wird. Das Fertigprodukt, das den Programmiercode enthält, wird verwendet, indem entweder der Code direkt von der Speichereinheit aus ausgeführt wird, indem der Code von der Speichereinheit auf eine andere Speichereinheit wie z. B. eine Festplatte, RAM usw. kopiert oder mithilfe von Übertragungsmedien wie z. B. digitalen und analogen Datenübertragungsverbindungen zur Ausführung auf einem entfernt angeordneten System übertragen wird. Die Verfahren der Erfindung können praktisch umgesetzt werden, indem ein oder mehrere maschinenlesbare Speichereinheiten, die den Code entsprechend der vorliegenden Erfindung enthalten, zur Verarbeitung des darin enthaltenen Codes mit geeigneter Verarbeitungshardware kombiniert werden. Eine Vorrichtung zur praktischen Umsetzung der Erfindung könnte aus einer oder mehreren Verarbeitungseinheiten und einem oder mehreren Speichersystemen bestehen, die einen Netzwerkzugriff auf erfindungsgemäß codierte Programme enthalten oder aufweisen.
  • Daher ist es wichtig, dass es, obwohl eine veranschaulichende Ausführungsform der vorliegenden Erfindung im Kontext eines voll funktionsfähigen Computer(server)-Systems mit installierter (oder ausgeführter) Software beschrieben wurde, Fachleuten klar ist, dass die Softwareaspekte einer veranschaulichenden Ausführungsform der vorliegenden Erfindung in einer Vielfalt von Formen als Programmprodukt verteilt sein können und dass eine veranschaulichende Ausführungsform der vorliegenden Erfindung unabhängig davon gilt, welche Art von Medien für die eigentliche Durchführung der Verteilung verwendet wird.
  • Obwohl die Erfindung unter Bezugnahme auf beispielhafte Ausführungsformen beschrieben wurde, wird Fachleuten klar sein, dass verschiedene Änderungen vorgenommen werden können und Elemente der Erfindung durch Äquivalente ersetzt werden können, ohne dass vom Schutzbereich der Erfindung abgewichen würde. Außerdem können viele Modifikationen vorgenommen werden, um ein bestimmtes System, eine bestimmte Einheit oder Komponente davon an die Erkenntnisse der Erfindung anzupassen, ohne dass von deren wesentlichem Schutzbereich abgewichen würde. Daher soll die Erfindung nicht auf die jeweiligen Ausführungsformen beschränkt sein, die zur Realisierung dieser Erfindung offenbart wurden, sondern die Erfindung schließt alle Ausführungsformen ein, die in den Schutzbereich der beigefügten Ansprüche fallen. Darüber hinaus bezeichnet die Verwendung der Begriffe „erster/erste/erstes”, „zweiter/zweite/zweites” usw. keinerlei Reihenfolge oder Bedeutung, sondern die Begriffe „erster/erste/erstes”, „zweiter/zweite/zweites” usw. werden verwendet, um ein Element von einem anderen zu unterscheiden.
  • Die hier verwendete Terminologie dient ausschließlich zur Beschreibung bestimmter Ausführungsformen und ist nicht als Einschränkung der Erfindung gedacht. Die hier verwendeten Einzahlformen „ein/eine” und „der/die/das” schließen auch die Pluralformen ein, sofern im Kontext nicht ausdrücklich etwas anderes angegeben ist. Es versteht sich des Weiteren, dass die Begriffe „weist auf” bzw. „aufweisen” bei Verwendung in der vorliegenden Beschreibung das Vorhandensein angegebener Merkmale, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten bezeichnen, jedoch das Vorhandensein oder die Hinzufügung eines bzw. einer oder mehrerer anderer Merkmale, Ganzzahlen, Schritte, Operationen, Elemente, Komponenten und/oder Gruppen davon nicht ausschließen.
  • Die entsprechenden Strukturen, Materialien, Aktionen und Äquivalente aller Mittel bzw. Schritt-plus-Funktion-Elemente (Step plus Function Elements) in den folgenden Ansprüchen sollen alle Strukturen, Materialien oder Aktionen zur Ausführung der Funktion in Verbindung mit anderen ausdrücklich beanspruchten Elementen mit einschließen. Die Beschreibung der vorliegenden Erfindung soll der Veranschaulichung und Beschreibung dienen, ist jedoch nicht vollständig oder auf die Erfindung in der offenbarten Form beschränkt. Für Fachleute sind viele Modifikationen und Variationen denkbar, ohne dass diese eine Abweichung vom Schutzbereich und Gedanken der Erfindung darstellen würden. Die Ausführungsform wurde ausgewählt und beschrieben, um die Grundgedanken und die praktische Anwendung der Erfindung auf bestmögliche Weise zu erklären und anderen Fachleuten ein Verständnis dafür zu ermöglichen, dass verschiedene Ausführungsformen der Erfindung mit verschiedenen Modifikationen denkbar sind, die sich für die jeweils beabsichtigte Verwendung eignen.

Claims (19)

  1. Verfahren zum Erzeugen und Realisieren von Dateiklonen in einem Datenverarbeitungssystem, das einen Prozessor aufweist und Zugriff auf eine Dateispeicher- und Dateiverwaltungseinrichtung aufweist, wobei das Verfahren aufweist: Auswählen eines Original-I-Knotens, der einer Originaldatei entspricht, wobei der Original-I-Knoten eine oder mehrere Datenblock-Adressverknüpfungen aufweist; Erzeugen eines Klon-I-Knotens; Erhalten eines Namenseintrags und eines Zielverzeichnisses für den Klon-I-Knoten; als Reaktion auf das Erhalten des Namenseintrags Einfügen eines Verzeichniseintrags, der den Namenseintrag enthält, in das Zielverzeichnis; Initialisieren des Klon-I-Knotens als klonübergeordnetes Element, das unveränderbar ist; und Aktualisieren einer I-Knotenzuordnung, um den Klon-I-Knoten als in Gebrauch befindlich zu kennzeichnen.
  2. Verfahren nach Anspruch 1, bei dem das Initialisieren des Klon-I-Knotens als klonübergeordnetes Element ferner aufweist: Kopieren der einen oder mehreren Datenblock-Adressverknüpfungen und eines Kopfes des Original-I-Knotens auf den Klon-I-Knoten; Aktualisieren eines Blockzählwertes des Klon-I-Knotens auf einen Wert, der der Anzahl von Datenblock-Adressverknüpfungen entspricht, wobei der Blockzählwert des Klon-I-Knotens identisch mit der Anzahl von Datenblöcken ist, die im Original-I-Knoten gespeichert sind; Setzen eines Verknüpfungszählwertes im Klon-I-Knoten auf zwei (2); Kopieren von I-Knoten-Zeitstempeln und -Berechtigungsbits des Original-I-Knotens auf den Klon-I-Knoten; Ermitteln von Eigentümerberechtigungsnachweisen einer aktuell ausgeführten Operation; Setzen eines Eigentümerfeldes des Klon-I-Knotens auf der Grundlage der Eigentümerberechtigungsnachweise der aktuell ausgeführten Operation; und Protokollieren eines oder mehrerer Initialisierungsschritte als genau nachvollziehbare Transaktion.
  3. Verfahren nach Anspruch 1, ferner aufweisend: Aktualisieren jeder der einen oder mehreren Datenblock-Adressverknüpfungen des Original-I-Knotens auf ein oder mehrere Duplikate, wobei das eine oder die mehreren Duplikate der einen oder den mehreren Datenblock-Adressverknüpfungen entsprechen und anzeigen, dass entsprechende Daten oder Metadaten in der Originaldatei noch nicht verändert worden sind; Setzen eines Blockzählwertes des Original-I-Knotens auf null, wobei der Blockzählwert des Original-I-Knotens einer Anzahl von Datenblock-Adressverknüpfungen wiedergibt, die im Original-I-Knoten gespeichert sind, und Registrieren des Klon-I-Knotens als klonübergeordnetes Element des Original-I-Knotens.
  4. Verfahren nach Anspruch 1, ferner aufweisend: Erkennen eines Eigentümers des Klon-I-Knotens; Ermitteln, ob sich der Eigentümer des Klon-I-Knotens von einem Eigentümer des Original-I-Knotens unterscheidet; und als Reaktion darauf, dass sich der Eigentümer des Klon-I-Knotens von dem Eigentümer des Original-I-Knotens unterscheidet, Übertragen eines Plattenblockkontingents des Original-I-Knotens auf den Eigentümer des Klon-I-Knotens.
  5. Verfahren nach Anspruch 1, bei dem der zugeordnete Klon-I-Knoten auf eine bestehende Datei zeigt und das Verfahren ferner aufweist: Speichern eines Klonattributs in der bestehenden Datei; und Markieren der bestehenden Datei als klonübergeordnetes Element.
  6. Verfahren nach Anspruch 1, ferner aufweisend: Zuordnen eines neuen I-Knotens als neuen Klon; Erhalten eines neuen Namenseintrags und eines Zielverzeichnisses für den neuen I-Knoten; als Reaktion auf das Erhalten des neuen Namenseintrags und des Zielverzeichnisses für den neuen I-Knoten Einfügen eines Namenseintrags, der den neuen Namenseintrag enthält, in das Zielverzeichnis des neuen I-Knotens; Initialisieren des neuen I-Knotens, wobei das Initialisieren ferner aufweist: Kopieren des Kopfes des Klon-I-Knotens auf den neuen I-Knoten; Setzen eines oder mehrerer Duplikate für die eine oder die mehreren Datenblock-Adressverknüpfungen des neuen Klon-I-Knotens; Setzen eines Verknüpfungszählwertes des neuen I-Knotens auf eins (1); Setzen eines Blockzählwertes des neuen I-Knotens auf null; Registrieren des Klon-I-Knotens als klonübergeordnetes Element des neuen I-Knotens; und Setzen einer Erzeugungszeit des neuen I-Knotens auf eine aktuelle Zeit; Erhöhen des Verknüpfungszählwertes des Klon-I-Knotens; und Aktualisieren der I-Knotenzuordnung, um den neuen I-Knoten als in Gebrauch befindlich zu kennzeichnen.
  7. Verfahren nach Anspruch 1, das als Reaktion auf ein Erhalten einer neuen Datenaktualisierung auf die Originaldatei ferner aufweist: Ersetzen der Duplikate des Original-I-Knotens durch Verknüpfungen auf Kopien der Originaldatenblöcke; Aktualisieren des Original-I-Knotens mit der neuen Datenaktualisierung; und Aktualisieren des Blockzählwertes des Original-I-Knotens.
  8. Verfahren nach Anspruch 6, ferner aufweisend: als Reaktion auf das Erhalten einer Löschanforderung für den neuen I-Knoten: Lesen des Verknüpfungszählwertes des Klon-I-Knotens; als Reaktion darauf, dass der Verknüpfungszählwert des Klon-I-Knotens gleich eins (1) ist: Löschen des neuen I-Knotens; und Verringern des Verknüpfungszählwertes des Klon-I-Knotens; und als Reaktion darauf, dass der Verknüpfungszählwert des Klon-I-Knotens ungleich eins (1) ist, Ignorieren der Löschanforderung.
  9. Verfahren nach Anspruch 1, ferner aufweisend: als Reaktion darauf, dass eine Datenverwaltungsanwendung eine oder mehrere geklonte Dateien vom Speicher des Datenverarbeitungssystems auf den Offline-Speicher verschiebt und bei jeder geklonten Datei einen Datenlesebefehl ausgibt, Durchführen eines unsichtbaren Lesevorgangs von Daten, die über die Duplikate im Klon-I-Knoten indirekt verknüpft sind; als Reaktion darauf, dass die Datenverwaltungsanwendung bei jeder geklonten Datei einen Datenschreibbefehl ausgibt, stillschweigendes Ignorieren des Schreibbefehls, wenn der Schreibbefehl dazu führen würde, dass ein oder mehrere Duplikate des Klon-I-Knotens überschrieben werden; und als Reaktion darauf, dass die Datenverwaltungsanwendung auf der Grundlage einer letzten Zugriffszeit die Migration einer oder mehrerer geklonter Dateien vom Offline-Speicher auf den Speicher des Datenverarbeitungssystems anfordert, das selbstständige Aktualisieren der letzten Zugriffszeit des geklonten I-Knotens.
  10. Datenverarbeitungssystem, aufweisend: einen lokalen Prozessor; einen Dateispeicher und eine Dateiverwaltungseinrichtung, die für den lokalen Prozessor zugänglich sind; und auf dem Prozessor ausgeführte Verarbeitungslogik, die dem Datenverarbeitungssystem ermöglicht, die Funktionen auszuführen: Auswählen eines Original-I-Knotens, der einer Originaldatei entspricht, wobei der Original-I-Knoten eine oder mehrere Datenblock-Adressverknüpfungen aufweist; Erzeugen eines Klon-I-Knotens; Erhalten eines Namenseintrags und eines Zielverzeichnisses für den Klon-I-Knoten; als Reaktion auf das Erhalten des Namenseintrags das Einfügen eines Verzeichniseintrags, der den Namenseintrag enthält, in das Zielverzeichnis; Initialisieren des Klon-I-Knotens als klonübergeordnetes Element, das unveränderbar ist; und Aktualisieren einer I-Knotenzuordnung, um den Klon-I-Knoten als in Gebrauch befindlich zu kennzeichnen.
  11. Datenverarbeitungssystem nach Anspruch 10, bei dem das Initialisieren des Klon-I-Knotens als klonübergeordnetes Element ferner Verarbeitungslogik aufweist für: das Kopieren der einen oder mehreren Datenblock-Adressverknüpfungen und eines Kopfes des Original-I-Knotens auf den Klon-I-Knoten; das Aktualisieren eines Blockzählwertes des Klon-I-Knotens auf einen Wert, der der Anzahl von Datenblock-Adressverknüpfungen entspricht, wobei der Blockzählwert des Klon-I-Knotens identisch mit der Anzahl von Datenblöcken ist, die im Original-I-Knoten gespeichert sind; das Setzen eines Verknüpfungszählwertes im Klon-I-Knoten auf zwei (2); das Kopieren von I-Knoten-Zeitstempeln und -Berechtigungsbits des Original-I-Knotens auf den Klon-I-Knoten; das Ermitteln von Eigentümer Berechtigungsnachweisen einer gegenwärtig ausgeführten Operation; das Setzen eines Eigentümerfeldes des Klon-I-Knotens auf der Grundlage der Eigentümerberechtigungsnachweise der gegenwärtig ausgeführten Operation; und das Protokollieren eines oder mehrerer Initialisierungsschritte als genau nachvollziehbare Transaktion.
  12. Datenverarbeitungssystem nach Anspruch 10, bei dem die Verarbeitungslogik ferner Logik aufweist für: das Aktualisieren jeder der einen oder mehreren Datenblock-Adressverknüpfungen des Original-I-Knotens auf ein oder mehrere Duplikate, wobei das eine oder die mehreren Duplikate der einen oder den mehreren Datenblock-Adressverknüpfungen entsprechen und anzeigen, dass entsprechende Daten oder Metadaten in der Originaldatei noch nicht verändert worden sind. das Setzen eines Blockzählwertes des Original-I-Knotens auf null, wobei der Blockzählwert des Original-I-Knotens eine Anzahl von Datenblock-Adressverknüpfungen wiedergibt, die im Original-I-Knoten gespeichert sind, und das Registrieren des Klon-I-Knotens als klonübergeordnetes Element des Original-I-Knotens.
  13. Datenverarbeitungssystem nach Anspruch 10, bei dem die Verarbeitungslogik ferner Logik aufweist für: das Erkennen eines Eigentümers des Klon-I-Knotens; das Ermitteln, ob sich der Eigentümer des Klon-I-Knotens von einem Eigentümer des Original-I-Knotens unterscheidet; und als Reaktion darauf, dass sich der Eigentümer des Klon-I-Knotens von dem Eigentümer des Original-I-Knotens unterscheidet, das Übertragen eines Plattenblockkontingents des Original-I-Knotens auf den Eigentümer des Klon-I-Knotens.
  14. Verfahren nach Anspruch 10, bei dem der zugeordnete Klon-I-Knoten auf eine bestehende Datei zeigt und die Verarbeitungslogik ferner Logik aufweist für: das Speichern eines Klonattributs in der bestehenden Datei; und das Markieren der bestehenden Datei als klonübergeordnetes Element.
  15. Datenverarbeitungssystem nach Anspruch 10, bei dem die Verarbeitungslogik ferner Logik aufweist für: das Zuordnen eines neuen I-Knotens als neuen Klon; das Erhalten eines neuen Namenseintrags und eines Zielverzeichnisses für den neuen I-Knoten; als Reaktion auf das Erhalten des neuen Namenseintrags und des Zielverzeichnisses für den neuen I-Knoten das Einfügen eines Namenseintrags, der den neuen Namenseintrag enthält, in das Zielverzeichnis des neuen I-Knotens; das Initialisieren des neuen I-Knotens, wobei das Initialisieren ferner aufweist: das Kopieren des Kopfes des Klon-I-Knotens auf den neuen I-Knoten, das Setzen eines oder mehrerer Duplikate für die eine oder die mehreren Datenblock-Adressverknüpfungen des neuen Klon-I-Knotens, das Setzen eines Verknüpfungszählwertes des neuen I-Knotens auf eins (1), das Setzen eines Blockzählwertes des neuen I-Knotens auf null, das Registrieren des Klon-I-Knotens als klonübergeordnetes Element des neuen I-Knotens, und das Setzen einer Erzeugungszeit des neuen I-Knotens auf eine aktuelle Zeit; das Erhöhen des Verknüpfungszählwertes des Klon-I-Knotens; und das Aktualisieren der I-Knotenzuordnung, um den neuen I-Knoten als in Gebrauch befindlich zu kennzeichnen.
  16. Datenverarbeitungssystem nach Anspruch 10, bei dem die Verarbeitungslogik ferner Logik aufweist, um als Reaktion auf das Erhalten einer neuen Datenaktualisierung auf die Originaldatei: die Duplikate des Original-I-Knotens durch Verknüpfungen auf Kopien der Originaldatenblöcke zu ersetzen; den Original-I-Knoten mit der neuen Datenaktualisierung zu aktualisieren; und den Blockzählwert des Original-I-Knotens zu aktualisieren.
  17. Datenverarbeitungssystem nach Anspruch 15, bei dem die Verarbeitungslogik ferner Logik aufweist, um als Reaktion auf das Erhalten einer Löschanforderung für den neuen I-Knoten: den Verknüpfungszählwert des Klon-I-Knotens zu lesen; als Reaktion darauf, dass der Verknüpfungszählwert des Klon-I-Knotens gleich eins (1) ist: den neuen I-Knoten zu löschen; und den Verknüpfungszählwert des Klon-I-Knotens zu verringern; und als Reaktion darauf, dass der Verknüpfungszählwert des Klon-I-Knotens ungleich eins (1) ist, die Löschanforderung zu ignorieren.
  18. Datenverarbeitungssystem nach Anspruch 10, bei dem die Verarbeitungslogik ferner Logik aufweist für: als Reaktion darauf, dass eine Datenverwaltungsanwendung eine oder mehrere geklonte Dateien vom Speicher des Datenverarbeitungssystems auf den Offline-Speicher verschiebt und bei jeder geklonten Datei einen Datenlesebefehl ausgibt, das Durchführen eines unsichtbaren Lesevorgangs von Daten, die über die Duplikate im Klon-I-Knoten indirekt verknüpft sind; als Reaktion darauf, dass eine Datenverwaltungsanwendung bei jeder geklonten Datei einen Datenschreibbefehl ausgibt, das stillschweigende Ignorieren des Schreibbefehls, wenn der Schreibbefehl dazu führen würde, dass ein oder mehrere Duplikate des Klon-I-Knotens überschrieben werden; und als Reaktion darauf, dass eine Datenverwaltungsanwendung auf der Grundlage einer letzten Zugriffszeit die Migration einer oder mehrerer geklonter Dateien vom Offline-Speicher auf den Speicher des Datenverarbeitungssystems anfordert, das selbstständige Aktualisieren der letzten Zugriffszeit des geklonten I-Knotens.
  19. Computerlesbares Speichermedium des Datenverarbeitungssystems, das eine Vielzahl von Anweisungen aufweist, die von der darin verkörperten Maschine verarbeitet werden können, wobei die Vielzahl von Anweisungen bei der Verarbeitung durch die Maschine die Maschine veranlassen, das Verfahren nach einem der Ansprüche 1 bis 9 durchzuführen.
DE112011101793T 2010-07-30 2011-07-20 Gemeinsame Datennutzung bei Dateiklonen Ceased DE112011101793T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/847,724 US8290996B2 (en) 2010-07-30 2010-07-30 Data sharing for file clones using reverse ditto references
US12/847,724 2010-07-30
PCT/EP2011/062482 WO2012013561A1 (en) 2010-07-30 2011-07-20 Data sharing for file clones

Publications (1)

Publication Number Publication Date
DE112011101793T5 true DE112011101793T5 (de) 2013-04-25

Family

ID=44628924

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011101793T Ceased DE112011101793T5 (de) 2010-07-30 2011-07-20 Gemeinsame Datennutzung bei Dateiklonen

Country Status (5)

Country Link
US (1) US8290996B2 (de)
CN (1) CN103038767B (de)
DE (1) DE112011101793T5 (de)
GB (1) GB2496336A (de)
WO (1) WO2012013561A1 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150293938A1 (en) * 2012-09-27 2015-10-15 Hewlett-Packard Development Company, L.P. Replacing virtual file system data structures deleted by a forced unmount
US9207926B2 (en) * 2013-06-04 2015-12-08 International Business Machines Corporation Dynamic image composition system employing fenced applications
US9250828B2 (en) 2013-10-29 2016-02-02 Skyera, Llc Writable clone data structure
CN104239444B (zh) * 2014-09-01 2017-11-03 上海爱数信息技术股份有限公司 Oracle数据库用的一致性数据保护与捕获一致性状态的方法
US20170083630A1 (en) * 2015-09-21 2017-03-23 Egemen Tas Method to virtualize large files in a sandbox
US9569110B2 (en) * 2014-11-18 2017-02-14 International Business Machines Corporation Efficient management of cloned data
CN104461780B (zh) * 2014-11-28 2017-12-15 华为技术有限公司 一种释放数据块的方法及装置
CN105183385A (zh) * 2015-09-10 2015-12-23 深圳大学 一种闪存及其拷贝方法和系统
JP6700337B2 (ja) * 2018-05-30 2020-05-27 日本電信電話株式会社 保護装置及び保護方法
CN109597707B (zh) * 2018-10-25 2024-04-23 平安科技(深圳)有限公司 克隆卷数据拷贝方法、装置及计算机可读存储介质
CN109788054B (zh) * 2019-01-07 2022-04-15 平安科技(深圳)有限公司 一种分布式应用协调服务节点的配置方法、服务器及介质
CN110162525B (zh) * 2019-04-17 2023-09-26 平安科技(深圳)有限公司 基于b+树的读写冲突解决方法、装置及存储介质
CN110750496A (zh) * 2019-10-23 2020-02-04 深信服科技股份有限公司 一种文件拷贝方法、系统、设备及计算机可读存储介质
KR20210068699A (ko) 2019-12-02 2021-06-10 삼성전자주식회사 스토리지 장치, 스토리지 시스템 및 스토리지 장치의 동작 방법
CN111090824B (zh) * 2019-12-23 2023-09-19 百度国际科技(深圳)有限公司 内容处理方法和装置
EP4087212A4 (de) * 2020-01-17 2023-01-04 Huawei Technologies Co., Ltd. Verfahren und vorrichtung zum klonen eines dateisystems
CN111581288B (zh) * 2020-05-07 2023-01-06 苏州浪潮智能科技有限公司 一种对象克隆的方法、系统、设备及介质
CN114020764B (zh) * 2022-01-05 2022-04-22 南京云信达科技有限公司 一种高性能数据克隆副本的处理方法及系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6868417B2 (en) * 2000-12-18 2005-03-15 Spinnaker Networks, Inc. Mechanism for handling file level and block level remote file accesses using the same server
US6662198B2 (en) 2001-08-30 2003-12-09 Zoteca Inc. Method and system for asynchronous transmission, backup, distribution of data and file sharing
US6829617B2 (en) * 2002-02-15 2004-12-07 International Business Machines Corporation Providing a snapshot of a subset of a file system
US7409511B2 (en) 2004-04-30 2008-08-05 Network Appliance, Inc. Cloning technique for efficiently creating a copy of a volume in a storage system
US7716183B2 (en) 2007-04-11 2010-05-11 Dot Hill Systems Corporation Snapshot preserved data cloning
US8055864B2 (en) 2007-08-06 2011-11-08 International Business Machines Corporation Efficient hierarchical storage management of a file system with snapshots
US7949692B2 (en) * 2007-08-21 2011-05-24 Emc Corporation Systems and methods for portals into snapshot data
CN100541441C (zh) * 2007-11-09 2009-09-16 中国科学院计算技术研究所 一种计算机文件系统的快照创建、删除及修改方法
US7991973B2 (en) 2008-05-05 2011-08-02 Panasas, Inc. Data storage systems, methods and networks having a snapshot efficient block map

Also Published As

Publication number Publication date
CN103038767B (zh) 2016-01-27
US20120030439A1 (en) 2012-02-02
CN103038767A (zh) 2013-04-10
US8290996B2 (en) 2012-10-16
WO2012013561A1 (en) 2012-02-02
GB201302340D0 (en) 2013-03-27
GB2496336A (en) 2013-05-08

Similar Documents

Publication Publication Date Title
DE112011101793T5 (de) Gemeinsame Datennutzung bei Dateiklonen
DE112018000193B4 (de) Daten sequenziell in Zonen in einem verstreuten Speichernetzwerk speichern
DE102013204972B4 (de) Hybride Sicherung und Wiederherstellung eines sehr grossen Dateisystems unter Verwendung von Metadaten-Abbildsicherung und herkömmlicher Sicherung
DE112012005037B4 (de) Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds
DE602005001041T2 (de) Speicherauszugssystem
DE602005002024T2 (de) Fernkopiersystem und Fernkopierverfahren
DE202014010953U1 (de) Gruppierung von Objekten in einem verteilten Datenspeichersystem basierend auf Protokollen und Platzierungsrichtlinien
DE102016119298B4 (de) Zeitpunktkopieren mit klonen von ketten
DE112017005868T5 (de) Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem
DE202009019149U1 (de) Asynchron verteilte Speicherbereinigung für replizierte Speichercluster
DE112019002948T5 (de) Feststellen einer optimalen speicherumgebung für datensätze und für das migrieren von datensätzen
DE202014010898U1 (de) Hierarchische Stückelung von Objekten in einem dezentralen Speichersystem
DE102016103769A1 (de) Inkrementelle Replikation eines Quellen-Datasets
DE112011100618T5 (de) Verwalten von Schreiboperationen auf einen Speicherbereich von Spuren, der zwischen Speichereinheiten verlagert wird
DE102013215535A1 (de) Sicherung oder wiederherstellung von daten mit hilfe eines hauptspeichers und nichtflüchtiger speichermedien
DE102018002884A1 (de) Komponentenbasierte Synchronisierung von Digitalassets
DE102019111068A1 (de) Datenspeichersystem mit LUN-Archivierung in die Cloud unter Verwendung einer Volume-to-Object(Volumen-zu-Objekt)-Umsetzung
DE102013215009A1 (de) Verfahren und System zur Optimierung der Datenübertragung
DE102009019271A1 (de) Übertragen von Sequenzzahlen für das Wiederherstellen nach Stromausfall bei einem nichtflüchtigen Speicher
DE102016204710A1 (de) Sichern und Wiederherstellen von Klondaten
EP3084638A1 (de) Posix-kompatibles dateisystem, verfahren zum erzeugen einer dateiliste und speichervorrichtung
DE112017000190T5 (de) Durchgehende Verschlüsselung und Backup in Datenschutzumgebungen
DE602004007925T2 (de) Verwalten einer beziehung zwischen einem zielvolumen und einem quellenvolumen
DE102014116369A1 (de) Verwaltung von sprachmarkern bei internationaler datenspeicherung
DE102012223167A1 (de) Gemeinsame Nutzung von Artefakten zwischen kollaborativen Systemen

Legal Events

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

Free format text: PREVIOUS MAIN CLASS: G06F0017300000

Ipc: G06F0016000000

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