DE69920713T2 - Datei-system bild-übertragung - Google Patents

Datei-system bild-übertragung Download PDF

Info

Publication number
DE69920713T2
DE69920713T2 DE69920713T DE69920713T DE69920713T2 DE 69920713 T2 DE69920713 T2 DE 69920713T2 DE 69920713 T DE69920713 T DE 69920713T DE 69920713 T DE69920713 T DE 69920713T DE 69920713 T2 DE69920713 T2 DE 69920713T2
Authority
DE
Germany
Prior art keywords
file system
memory
memory blocks
image
dump
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.)
Expired - Lifetime
Application number
DE69920713T
Other languages
English (en)
Other versions
DE69920713D1 (de
Inventor
David Hitz
Steven Kleiman
Guy Harris
Sean O'malley
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.)
NetApp Inc
Original Assignee
Network Appliance Inc
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 Network Appliance Inc filed Critical Network Appliance Inc
Publication of DE69920713D1 publication Critical patent/DE69920713D1/de
Application granted granted Critical
Publication of DE69920713T2 publication Critical patent/DE69920713T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • 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
    • 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/1456Hardware arrangements for backup
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Description

  • Hintergrund der Erfindung
  • 1. Gebiet der Erfindung
  • Diese Erfindung bezieht sich auf Speichersysteme.
  • 2. Technisches Gebiet
  • In Computer-Dateisystemen zum Speichern und Wiedererlangen von Information ist es manchmal vorteilhaft, das gesamte Dateisystem oder einen Teil davon zu duplizieren. Zum Beispiel erfüllt das Duplizieren eines Dateisystems den Zweck, eine Sicherungskopie des Dateisystems zu erhalten, um einen Schutz hinsichtlich verlorengegangener Information zu bieten. Das Duplizieren eines Dateisystems dient dem weiteren Zweck, Kopien der Daten in dem Dateisystem durch viele Server bereitzustellen, um die bei dem Zugriff der Daten auftretende Last zu teilen.
  • Ein Problem der bekannten Verfahren ist es, dass bekannte Techniken zum Duplizieren von Daten in einem Dateisystem entweder relativ ungünstig und langsam (wie z.B. das Kopieren auf ein Band) oder relativ teuer sind (wie z.B. das Kopieren auf einen zusätzlichen Satz von Festplattenlaufwerken). Zum Beispiel beruhen bekannte Techniken zum Duplizieren auf ein Band auf logischen Operationen des Dateisystems und dem logischen Format des Dateisystems. Dadurch, dass diese Verfahren relativ mühsam und langsam sind, wird von einer häufigen Benutzung abgeschreckt, wodurch Sicherungskopien entstehen, die relativ alt sind. Wenn ein Datenverlust auftritt, kann in diesem Fall die letzte Sicherungskopie einen oder mehrere Tage alt sein, wodurch der Wert der Sicherungskopie stark reduziert wird.
  • Ähnlich beruhen bekannte Techniken der Duplizierung auf einen zusätzlichen Satz von Festplatten auf dem physikalischen Format des Dateisystems, wie es auf dem ursprünglichen Satz von Festplatten gespeichert ist. Diese bekannten Techniken verwenden einen zusätzlichen Satz von Festplatten zur Duplizierung des gesamten Dateisystems. Dadurch, dass diese Techniken relativ teuer sind, wird von ihrer Benutzung abgeschreckt, insbesondere für große Dateisysteme. Ebenso wird durch das Vertrauen auf das physikalische Format des Dateisystems der Betrieb des Wiedererlangens von Sicherungsdaten und des Durchführens einer inkrementalen Sicherung erschwert.
  • EP-A-0566967 offenbart ein Dateisystem, in dem getrennte „Primary" und „Alternate" „Session Bitmaps" für volle und inkrementale Sicherungen geführt werden.
  • Demzufolge würde es erwünscht sein, ein Verfahren und ein System zum Duplizieren eines gesamten Dateisystems oder eines Teils davon anzugeben, welche mit einer beliebigen Art von Speichermedium arbeiten können, ohne entweder relativ komplex oder teuer zu sein, und welche alle bekannten Funktionen der Sicherung und Wiederherstellung ermöglichen können. Dieser Vorteil wird in einer Ausführungsform der Erfindung erhalten, in welcher konsistente Kopien des Dateisystems gepflegt werden, wodurch diese konsistenten Speicherauszüge unter Verwendung der eigenen Blockebenen-Operationen des Dateiservers in einer Speicherblock-Ebene übertragen werden können.
  • Zusammenfassung der Erfindung
  • Die Erfindung gibt ein Verfahren und ein Dateisystem an, wie in den beigefügten Patentansprüchen definiert, wodurch ein gesamtes Dateisystem oder ein Teil davon dupliziert werden kann, während konsistente Kopien des Dateisystems erhalten werden.
  • Der Dateiserver erhält einen Satz von Speicherauszügen, die jeder einen Satz von Speicherblöcken anzeigen, welche eine konsistente Kopie des Dateisystems bilden, wie es zu einer bekannten Zeit bestand. Jeder Speicherauszug kann auch für einen anderen Zweck verwendet werden, als das Erhalten der Kohärenz des Dateisystems, wie z.B. für das Duplizieren oder Übertragen einer Sicherungskopie des Dateisystems auf ein Ziel-Speichermedium. In einer bevorzugten Ausführungsform können die Speicherauszüge manipuliert werden, um Sätze von Speicherblöcken in dem Dateisystem für eine inkrementale Sicherung oder Kopie zu identifizieren, oder um eine Sicherungskopie des Dateisystems zu ermöglichen, die sowohl vollständig als auch relativ günstig ist.
  • Kurzbeschreibung der Zeichnungen
  • 1 zeigt ein Blockschaltbild eines ersten Systems zur Übertragung von Dateisystemabbildern.
  • 2 zeigt ein Blockschaltbild eines Satzes von Speicherauszügen in einem System zur Übertragung von Dateisystemabbildern.
  • 3 zeigt ein Ablaufdiagramm eines Verfahrens zur Übertragung von Dateisystemabbildern.
  • Ausführliche Beschreibung der bevorzugten Ausführungsform
  • In der folgenden Beschreibung wird eine bevorzugte Ausführungsform der Erfindung in Bezug auf bevorzugte Verfahrensschritte und Datenstrukturen beschrieben. Die Fachleute auf dem Gebiet können jedoch nach dem Studium dieser Anmeldung erkennen, dass Ausführungsformen der Erfindung unter Verwendung von einem oder mehreren für allgemeine Zwecke vorgesehene Prozessoren (oder für spezielle Zwecke vorgesehene Prozessoren, die an die bestimmten Verfahrensschritte und Datenstrukturen angepasst sind), die unter einer Programmsteuerung arbeiten, implementiert werden können, und dass die Implementierung der hier beschriebenen bevorzugten Verfahrensschritte und Datenstrukturen unter Verwendung von solchen Vorrichtungen kein übermäßiges Experimentieren und keine weitere Erfindung benötigt.
  • Hier beschriebene Erfindungen können im Zusammenhang mit den in den folgenden Anmeldungen beschriebenen Erfindungen verwendet werden:
    • – Anmeldung Nr. 08/471,218, angemeldet am 05. Juni 1995 im Namen der Erfinder David Hitz et al., mit dem Titel „A Method for Providing Parity in a Raid Sub-System Using Non-Volatile Memory", jetzt US-Patent Nr. 5,948,110 vom 07. September 1999;
    • – Anmeldung Nr. 08/454,921, angemeldet am 31. Mai 1995 im Namen der Erfinder David Hitz et al., mit dem Titel „Method For Maintaining Consistent States of a File System and for Creating User-Accessible Read-Only Copies of a File System", jetzt US-Patent Nr. 5,819,292 vom 06. Oktober 1998.
    • – Anmeldung Nr. 08/464,591, angemeldet am 31. Mai 1995 im Namen der Erfinder David Hitz et al., mit dem Titel „Method for Allocating Files in a File System Integrated with a Raid Disk Sub-System", jetzt US-Patent Nr. 6,038,570 vom 14. März 2000.
  • Diese Anmeldungen werden gemeinsam als die „WAFL-Offenbarungen" bezeichnet.
  • Dateiserver und Übertragung des Dateisystemabbilds
  • 1 zeigt ein Blockschaltbild eines Systems zur Übertragung von Dateisystemabbildern.
  • Ein System 100 zur Übertragung von Dateisystemabbildern umfasst einen Dateiserver 110 und ein Ziel-Dateisystem 120.
  • Der Dateiserver 110 umfasst einen Prozessor 111, einen Satz von Programm- und Datenspeichern 112 und einen Massenspeicher 113 und ist vorzugsweise ein Dateiserver, wie in den WAFL-Offenbarungen beschrieben ist. In einer bevorzugten Ausführungsform umfasst der Massenspeicher 113 ein RAID-Speicher-Untersystem und speichert Daten für das Dateisystem 114.
  • Das Ziel-Dateisystem 120 umfasst einen Massenspeicher, wie z.B. einen Flash-Speicher, ein Laufwerk für magnetische oder optische Platten, ein Bandlaufwerk oder eine andere Speichervorrichtung. In einer bevorzugten Ausführungsform umfasst das Ziel-Dateisystem 120 ein RAID-Speicher-Untersystem. Das Ziel-Dateisystem 120 kann unter Verwendung einer Kommunikationsverbindung 130 direkt oder indirekt mit dem Dateiserver 110 verbunden sein.
  • In einer ersten bevorzugten Ausführungsform ist das Ziel-Dateisystem 120 mit dem Dateiserver 110 verbunden und wird von dem Prozessor 111 ähnlich zu dem Massenspeicher 113 gesteuert. In dieser ersten bevorzugten Ausführungsform umfasst die Kommunikationsverbindung 130 einen internen Bus für den Dateiserver 110, wie z.B. einen I/O-Bus, einen Zwischenbus oder einen anderen Systembus.
  • In einer zweiten bevorzugten Ausführungsform ist das Ziel-Dateisystem 120 in einem zweiten Dateiserver 140 enthalten. Der zweite Dateiserver 140 umfasst, ähnlich zu dem ersten Dateiserver 110, einen Prozessor, einen Satz von Programm- und Datenspeichern und einen Massenspeicher, der in Bezug auf den ersten Dateiserver 110 als das Ziel-Dateisystem 120 dient. Der zweite Dateiserver 140 ist vorzugsweise ein Dateiserver, wie er in den WAFL-Offenbarungen beschrieben ist. In dieser zweiten bevorzugten Ausführungsform umfasst die Kommunikationsverbindung 130 eine Netzwerkverbindung zwischen dem ersten Dateiserver 110 und dem zweiten Dateiserver 140, wie z.B. eine direkte Kommunikationsverbindung, ein LAN (Local Area Network), ein WAN (Wide Area Network), ein NUMA-Netzwerk oder eine andere Verbindung.
  • In einer dritten bevorzugten Ausführungsform umfasst die Kommunikationsverbindung 130 ein zwischengeschaltetes Speichermedium, wie z.B. ein Band, und das Ziel-Dateisystem 120 kann entweder der erste Dateiserver 110 selbst oder ein zweiter Dateiserver 140 sein. Wählt der erste Dateiserver 110 einen Satz von Speicherblöcken zur Übertragung in das Ziel-Dateisystem 120, so kann dieser Satz von Speicherblöcken übertragen werden, indem diese auf das zwischengeschaltete Speichermedium gespeichert werden, wie es nachfolgend gezeigt ist. Das Wiedererlangen dieses Satzes von Speicherblöcken von dem zwischengeschalteten Speichermedium zu einer späteren Zeit vervollständigt die Übertragung.
  • Es ist ein Gesichtspunkt der Erfindung, dass keine besonderen Beschränkungen hinsichtlich der Kommunikationsverbindung 130 bestehen. Zum Beispiel kann ein ersten Teil der Kommunikationsverbindung 130 eine Übertragungsverbindung mit relativ hoher Geschwindigkeit umfassen, wohingegen ein zweiter Teil der Kommunikationsverbindung 130 ein zwischengeschaltetes Speichermedium umfassen kann.
  • Es ist ein weiterer Gesichtspunkt der Erfindung, dass das Ziel-Dateisystem 120 in dem ersten Dateiserver 110, in einem zweiten Dateiserver 140 oder auf eine Mehrzahl von Dateiservern aufgeteilt vorhanden sein kann. Die Übertragung von Speicherblöcken von dem ersten Dateiserver 110 an das Ziel-Dateisystem 120 ist deshalb vollständig allgemein und umfasst die Möglichkeit einer großen Anzahl von unterschiedlichen Dateisystem-Operationen:
    • – Speicherblöcke von dem ersten Dateiserver 110 können auf einem zwischengeschalteten Speichermedium, wie z.B. einem Band oder einem zweiten Plattenlaufwerk, abgelegt werden, dort für einen Zeitabschnitt aufbewahrt werden und anschließend auf dem ersten Dateiserver 110 wiederhergestellt werden. Auf diese Weise kann der erste Dateiserver 110 selbst das Ziel-Dateisystem sein.
    • – Speicherblöcke des ersten Dateiservers 110 können auf einen zweiten Dateiserver 140 übertragen werden und in dem zweiten Dateiserver 140 verwendet werden. Auf diese Weise können Speicherblöcke en masse von dem ersten Dateiserver 110 auf den zweiten Dateiserver 140 kopiert werden.
    • – Speicherblöcke von dem ersten Dateiserver 110 können unter Verwendung einer Mehrzahl von unterschiedlichen Kommunikationsverbindungen 130 verteilt werden, so dass auf einige der Speicherblöcke unmittelbar zugegriffen werden kann, wohingegen andere auf einem relativ langsamen zwischengeschalteten Speichermedium, wie z.B. einem Band, aufgezeichnet sind.
    • – Speicherblöcke des ersten Dateiservers 110 können aus einem vollständigen Dateisystem ausgewählt werden, unter Verwendung der Kommunikationsverbindung 130 übertragen werden und anschließend bearbeitet werden, um ein vollständiges Dateisystem an dem Ziel-Dateisystem 120 zu bilden.
  • In hier beschriebenen alternativen Ausführungsformen kann der zweite Dateiserver 140 ein zweites Ziel-Dateisystem aufweisen. Das zweite Ziel-Dateisystem kann in dem zweiten Dateiserver 140 enthalten sein oder in einem dritten Dateiserver enthalten sein, der ähnlich zu dem ersten Dateiserver 110 oder dem zweiten Dateiserver 140 ist.
  • Weiter verallgemeinert kann jeder n-te Dateiserver ein Ziel-Dateisystem aufweisen, das entweder innerhalb des n-ten Dateiservers oder innerhalb eines (n+1)-ten Dateiservers enthalten ist. Der Satz von Dateiservern kann auf diese Weise einen gerichteten Graphen bilden, vorzugsweise einen Baum, wobei der erste Dateiserver 110 die Wurzel dieses Baums ist.
  • Dateisystem-Speicherblöcke
  • Wie in den WAFL-Offenbarungen beschrieben umfasst ein Dateisystem 114 auf dem Dateiserver 110 (und im Allgemeinen auf dem n-ten Dateiserver) einen Satz von Speicherblöcken 115, von denen jeder entweder in dem Speicher 112 oder in dem Massenspeicher 113 gespeichert ist. Das Dateisystem 114 umfasst eine- aktuelle Blockabbildung, welche aufzeichnet, welche Speicherblöcke 115 Teil des Dateisystems 114 sind und welche Speicherblöcke 115 frei sind.
  • Wie in den WAFL-Offenbarungen beschrieben, ist das Dateisystem in dem Massenspeicher 113 zu allen Zeiten konsistent. Deshalb umfassen die in dem Dateisystem enthaltenen Speicherblöcke 115 immer ein konsistentes Dateisystem 114.
  • Wie hier verwendet, bedeutet der Ausdruck „konsistent" in Bezug auf ein Dateisystem (oder auf Speicherblöcke in einem Dateisystem) ein Satz von Speicherblöcken für dieses Dateisystem, der alle für die Daten und Dateistruktur dieses Dateisystems benötigten Blöcke umfasst. Deshalb ist ein konsistentes Dateisystem selbständig und kann verwendet werden, um einen Zustand des Dateisystems zu einem Zeitpunkt zu identifizieren, der sowohl vollständig als auch eigenständig ist.
  • Wie in den WAFL-Offenbarungen beschrieben, wird bei Änderungen des Dateisystems 114 in dem Massenspeicher 113 die Blockabbildung geändert, um diejenigen Speicherblöcke 115 zu zeigen, die ein Teil des überlassenen Dateisystems 114 sind. In einer bevorzugten Ausführungsform aktualisiert der Dateiserver 110 das Dateisystem oft, wie z.B. etwa einmal alle 10 Sekunden.
  • Speicherauszüge
  • 2 zeigt ein Blockdiagramm eines Satzes von Speicherauszügen in einem System zur Übertragung von Dateisystemabbildern.
  • Wie hier verwendet, ist ein „Speicherauszug" ein Satz von Speicherblöcken, wobei die dazugehörigen Speicherblöcke ein konsistentes Dateisystem bilden, welche unter Verwendung einer Datenstruktur abgelegt sind, die eine effiziente Verwaltung des Satzes erlaubt. Die effiziente Verwaltung des Satzes kann eine Zeiteffizienz für Operationen des Satzes umfassen (wie z.B. logische Summe, logische Differenz, Zugehörigkeit, Zufügen eines Elements, Entfernen eines Elements). Zum Beispiel kann die Zeiteffizienz die 0(n)-Zeit oder weniger für n Speicherblöcke umfassen. Die effiziente Verwaltung des Satzes kann auch eine Speicherplatzeffizienz für die Aufzählung des Satzes umfassen (wie z.B. eine Zuordnung mit der physikalischen Position im Massenspeicher oder die Invertierung der Zugehörigkeitsfunktion). Die Speicherplatzeffizienz kann etwa 4 Byte Plattenplatz oder weniger pro 4K-Speicherblock belegen, ein Verhältnis von etwa 1000:1 besser, als die Duplizierung des Speicherplatzes.
  • Wie hier beschrieben, ist die Datenstruktur für den Speicherauszug in dem Dateisystem gespeichert, so dass kein Bedürfnis besteht, das Dateisystem zu durchlaufen, um es wiederherzustellen. In einer bevorzugten Ausführungsform ist jeder Spei cherauszug als ein Objekt des Dateisystems gespeichert, wie z.B. als eine Blockabbildung. Die Blockabbildung umfasst eine Bit-Ebene mit 1 Bit für jeden Speicherblock, unterschiedlich zu Bits, die verwendet werden, um zu identifizieren, ob der Speicherblock in dem aktiven Dateisystem vorhanden ist.
  • Wird das Dateisystem sicherungskopiert, wiederhergestellt oder anders kopiert oder übertragen, so wird die Blockabbildung innerhalb des Dateisystems darüber hinaus als ein Teil derselben Operation selbst ebenfalls sicherungskopiert, wiederhergestellt oder anders kopiert oder übertragen. Auf diese Weise umfassen Operationen mit dem Dateisystem inhärent die Sicherung von Speicherauszügen.
  • Jeder beliebige Speicherauszug kann durch jede beliebige Kommunikationstechnik übertragen werden, umfassend
    • – die Übertragung unter Verwendung der Speicherung in einem zwischengeschalteten Speichermedium (wie z.B. ein nichtflüchtiger Speicher, Band, Platte in demselben Dateisystem, Platte in einem unterschiedlichen Dateisystem oder über einige Dateisysteme verteilte Platte);
    • – die Übertragung unter Verwendung von einer oder mehrerer Netzwerknachrichten,
    • – die Übertragung unter Verwendung einer Kommunikation innerhalb eines einzigen Dateiservers oder eines Satzes von Dateiservern (wie z.B. für die Speicherung auf Platte in demselben Dateisystem, auf Platte in einem unterschiedlichen Dateisystem oder auf über einige Dateisysteme verteilte. Platten).
  • Eine Sammlung 200 von Speicherauszügen 210 umfasst eine Bitebene für jeden Speicherauszug 210. Jede Bitebene zeigt einen Satz von ausgewählten Speicherblöcken 115 an. In der Figur zeigt jede Spalte eine Bitebene an (d.h. einen Speicherauszug 210) und jede Zeile zeigt einen Speicherblock 115 an (d.h., die Historie des Einschlusses oder Ausschlusses dieses Speicherblocks 115 in aufeinander folgenden Speicherauszügen 210). An dem Schnittpunkt jeder Spalte mit jeder Zeile besteht ein Bit 211, das anzeigt, ob der bestimmte Speicherblock 115 in dem bestimmten Speicherauszug 210 enthalten ist.
  • Jeder Speicherauszug 210 umfasst eine Sammlung ausgewählter Speicherblöcke 115 des Dateisystems 114, das das gesamte oder ein Teil des (konsistenten) Dateisystems 114 zu einem bestimmten Zeitpunkt bildet. Ein Speicherauszug 210 kann auf Grundlage der Blockzuordnung zu jeder Zeit erzeugt werden, indem die Bits von der Blockzuordnung, die anzeigt, welche Speicherblöcke 115 Teil des Dateisystems 114 sind, in die korrespondierenden Bites 211 für den Speicherauszug 210 kopiert werden.
  • Die Unterschiede zwischen den Speicherauszügen 210 und dem (aktiven) Dateisystem 114 umfassen die folgenden:
    • – Das Dateisystem 114 ist ein konsistentes Dateisystem 114, das verwendet und vielleicht modifiziert wird, wohingegen die Speicherauszüge 210 Kopien des Dateisystems 114 darstellen, die nur gelesen werden können.
    • – Das Dateisystem 114 wird oft aktualisiert, wohingegen die Speicherauszüge 210 Kopien des Dateisystems 114 darstellen, die in einer relativ entfernten Vergangenheit erstellt wurden.
    • – Es besteht nur ein aktives Dateisystem 114, wohingegen viele Speicherauszüge 210 existieren können (und typischerweise existieren).
  • Zu ausgewählten Zeitpunkten erzeugt der Dateiserver 110 eine neue Bitebene auf Grundlage der Blockabbildung, um einen neuen Speicherauszug 210 zu erzeugen. Wie hier beschrieben, werden Speicherauszüge 210 verwendet, um das Dateisystem 114 zu sichern und zu spiegeln, so dass in bevorzugten Ausführungsformen in periodischen Zeitabschnitten neue Speicherauszüge 210 erzeugt werden, wie z.B. einmal pro Stunde, Tag, Woche, Monat, oder wie ansonsten durch einen Bediener des Dateiservers 110 angeordnet.
  • Speicherabbilder und Abbildströme
  • Wie hier verwendet, umfasst ein „Speicherabbild" einen Indikator für einen Satz von Speicherblöcken, die abhängig von einem oder mehreren Speicherauszügen ausgewählt wurden. Die Technik zur Auswahl kann logische Operationen an Sätzen (wie z.B. Paaren) von Speicherauszügen umfassen. In einer bevorzugten Ausführungsform können diese logischen Operationen die logische Summe und die logische Differenz umfassen.
  • Wie hier verwendet, umfasst ein „Abbildstrom" eine Sequenz von Speicherblöcken eines Speicherabbilds. Ein Satz zugehöriger Blockpositionen für diese Speicherblöcke von dem Speicherabbild kann entweder explizit oder implizit in dem Abbildstrom angegeben sein. Als ein erstes Beispiel kann der Satz zugehöriger Blockpositionen explizit angegeben sein, indem Inhalts-Blocknummern innerhalb des Abbildstroms enthalten sind. Als zweites Beispiel kann der Satz zugehöriger Blockpositionen implizit durch die Ordnung angegeben sein, in der die Speicherblöcke von dem Speicherabbild innerhalb des Abbildstroms angeordnet sind oder von diesem übertragen werden.
  • Die Abfolge von Speicherblöcken innerhalb des Abbildstroms kann für eine Dateisystemoperation optimiert werden. Zum Beispiel kann die Abfolge von Speicherblöcken innerhalb des Ab bildstroms für die Operation einer Sicherungskopie oder einer Wiederherstellung des Dateisystems optimiert werden.
  • In einer bevorzugten Ausführungsform ist die Abfolge von Speicherblöcken so optimiert, dass das Kopieren eines Abbildstroms und die Übertragung dieses Abbildstroms von einem Dateiserver zu einem anderen optimiert sind. Insbesondere ist die Abfolge von Speicherblöcken so ausgewählt, dass in dem Abbildstrom vorhandene Speicherblöcke so viel wie möglich von einer Mehrzahl von Platten in einem RAID-Dateispeichersystem parallel kopiert werden können, um die Übertragungsbandbreite von dem ersten Dateiserver zu maximieren.
  • Ein Speicherabbild 220 umfasst einen Satz von Speicherblöcken 115, der von dem Dateisystem 114 in das Ziel-Dateisystem 120 kopiert werden soll.
  • Die Speicherblöcke 115 in dem Speicherabbild 220 sind so ausgewählt, dass sie bei der Kopie kombiniert werden können, um ein neues konsistentes Dateisystem 114 in dem Ziel-Dateisystem 120 zu bilden. In verschiedenen bevorzugten Ausführungsformen kann das kopierte Speicherabbild 220 mit Speicherblöcken 115 aus anderen Speicherabbildern 220 kombiniert werden (welche zuvor übertragen wurden).
  • Wie hier gezeigt, erzeugt der Dateiserver 110 jedes Speicherabbild 220 abhängig von einem oder mehreren Speicherauszügen 210.
  • Ein Abbildstrom 230 umfasst eine Abfolge von Speicherblöcken 115 von einem Speicherabbild 220. Wenn das Speicherabbild 220 aus dem Dateisystem 114 kopiert wird, werden die Speicherblöcke 115 in den Abbildstrom 230 eingeordnet und mit Blockpositionsinformation markiert. Wird der Abbildstrom 230 in dem Ziel-Dateisystem 120 empfangen, so werden die Speicherblöcke 115 in dem Abbildstrom 230 abhängig von der Blockpositionsinformation in das Ziel-Dateisystem 120 kopiert.
  • Abbildaddition und -subtraktion
  • Das System 100 manipuliert die Bits 211 in einem ausgewählten Satz von Speicherabbildern 220, um Sätze von Speicherblöcken 115 auszuwählen und so ein neues Speicherabbild 220 zu bilden.
  • Zum Beispiel sind die folgenden unterschiedlichen Arten der Manipulation möglich:
    • – Das System 100 kann eine logische Summe von zwei Speicherabbildern 220 A + B bilden, indem ein Satz von Bits 211 gebildet wird, von denen jedes die logische Veroderung (A v B) der korrespondierenden Bits 211 in den beiden Speicherabbildern 220 ist. Die logische Summe von 2 Speicherabbildern 220 A + B ist die Vereinigung dieser beiden Speicherabbilder 220.
    • – Das System 100 kann eine logische Differenz von zwei Speicherabbildern 220 A – B bilden, indem ein Satz von Bits 211 gebildet wird, von denen jedes nur dann logisch „1" ist, wenn in den beiden Speicherabbildern 220 das korrespondierende Bit 211 A logisch „1" ist und das korrespondierende Bit 211 B logisch „0" ist.
  • Die logische Summe von zwei Speicherabbildern 220 A + B umfasst ein Speicherabbild 220, das Speicherblöcke 115 umfasst, die in einem beliebigen der beiden ursprünglichen Speicherabbilder 220 enthalten sind. Durch die Verwendung der logischen Summe kann das System 100 nicht nur einen einzigen vorherigen Zustand des Dateisystems 114 bestimmen, sondern auch eine Historie der vorherigen Zustände des Dateisystems 114, die als Speicherauszüge 210 aufgezeichnet wurden.
  • Die logische Differenz von zwei ausgewählten Speicherabbildern 220 A – B umfasst nur diejenigen Speicherblöcke, die in dem Speicherabbild 220 A umfasst sind und nicht in dem Speicherabbild 220 B umfasst sind. (Um die Integrität von inkrementalen Speicherabbildern zu sichern, ist das subtrahierte Speicherabbild 220 B immer ein Speicherauszug 210.) Eine logische Differenz kann verwendet werden, um ein Speicherabbild 220 zu bestimmen, das einen Satz von Speicherblöcken aufweist, die ein inkrementales Abbild bilden, welches in Kombination mit vollständigen Abbildern verwendet werden kann.
  • In alternativen Ausführungsformen können auch andere und weitere Arten der Manipulation sinnvoll sein. Zum Beispiel kann es sinnvoll sein, eine logische Schnittmenge von Speicherauszügen 210 zu bestimmen, um zu bestimmen, welche Speicherblöcke 115 zwischen diesen Speicherauszügen 210 nicht verändert wurden.
  • In weiteren alternativen Ausführungsformen kann das System 100 auch die Bits 211 jedes Speicherauszugs 210 für andere Zwecke verwenden, wie z.B., um andere Operationen mit den Speicherblöcken 115 auszuführen, die durch diese Bits 211 dargestellt werden.
  • Inkrementale Speicherabbilder
  • Wie hier verwendet, ist ein „inkrementales Speicherabbild" eine logische Differenz zwischen einem ersten Speicherabbild und einem zweiten Speicherabbild.
  • Wie hier verwendet, wird bei der logischem Differenz A – B das Speicherabbild 220 A als das „oberste" Speicherabbild 220 bezeichnet und das Speicherabbild 220 B wird als das „grundlegende" Speicherabbild 220 bezeichnet.
  • Wenn das grundlegende Speicherabbild 220B einen vollen Satz F von Speicherblöcken 115 in einem konsistenten Dateisystem 114 umfasst, so umfasst die logische Differenz A – B diejenigen inkrementalen Änderungen des Dateisystems 114, die zwischen dem grundlegenden Speicherabbild 220 B und dem obersten Speicherabbild 220 A liegen.
  • Jedes inkrementale Speicherabbild 220 weist ein oberstes Speicherabbild 220 und ein grundlegendes Speicherabbild 220 auf. Inkrementale Speicherabbilder 220 können miteinander verlinkt werden, wenn eine Sequenz von Speicherabbildern 220 Ci besteht, bei der ein grundlegendes Speicherabbild 220 für jedes Ci ein oberstes Speicherabbild 220 für ein nächstes Ci+1 ist.
  • Beispiele von inkrementalen Abbildern
  • Für ein erstes Beispiel kann das System 100 jeden Tag einen Speicherauszug 210 machen und abhängig von der logischen Summe von täglichen Speicherauszügen 210 ein Ebene0-Speicherabbild 220 bilden.
  • Juni3.Ebene0 = Juni3 + Juni2 + Juni1
  • (Juni3, Juni2 und Juni1 sind an diesen jeweiligen Daten genommene Speicherauszüge 220).
  • Das Juni3.Ebene0-Speicherabbild 220 umfasst alle Speicherblöcke 115 der täglichen Speicherauszüge 210 Juni3, Juni2 und Juni1. Demzufolge umfasst das Juni3.Ebene0-Speicherabbild 220 alle Speicherblöcke 115 in einem konsistenten Dateisystem 114 (wie auch möglicherweise andere Speicherblöcke 115, die für das konsistente Dateisystem 114, das zur Zeit des Juni3-Speicherauszugs 210 aktiv war, nicht benötigt werden).
  • In dem ersten Beispiel kann das System 100 abhängig von der logischen Summe von täglichen Speicherauszügen 210 und der logischen Differenz mit einem einzigen Speicherauszug 210 ein (inkrementales) Ebene1-Speicherabbild 220 bilden.
  • Juni5.Ebene1 = Juni5 + Juni4 – Juni3
  • (Juni5, Juni4 und Juni3 sind an diesen jeweiligen Daten genommene Speicherauszüge 220.)
  • Es ist nicht erforderlich, die Juni2 und Juin1-Speicherauszüge 210 zu subtrahieren, wenn das Juni5.Ebene1-Speicherabbild 220 gebildet wird. Alle Speicherblöcke 115, die der Juni5-Speicherauszug 210 und der Juni4-Speicherauszug 210 gemeinsam mit entweder dem Juni2-Speicherauszug 210 oder dem Juni1-Speicherauszug 210 haben, haben sie notwendigerweise auch gemeinsam mit dem Juni3-Speicherauszug 210. Dies ist der Fall, da ein beliebiger Speicherblock 115, der Teil des Dateisystems 114 während Juni2 oder Juni1 war und immer noch Teil des Dateisystems 114 während Juni5 oder Juni4 ist, auch Teil des Dateisystems 114 während Juni3 gewesen sein muss.
  • In dem ersten Beispiel kann das System 100 abhängig von der logischen Summe von täglichen Speicherauszügen 210 und der Differenz mit einem einzigen Speicherauszug 210 zur Zeit des grundlegenden Speicherabbilds 220 der Ebene1 ein (inkrementales) Ebene2 Speicherabbild 220 bilden.
  • Juni7.Ebene2 = Juni7 + Juni6 – Juni5
  • (Juni7, Juni6 und Juni5 sind an diesen jeweiligen Daten genommene Speicherauszüge 210.)
  • In dem ersten Beispiel umfassen die Speicherabbilder 220 Juni3.Ebene0, Juni5.Ebene1 und Juni7.Ebene2 zusammen alle Spei cherblöcke 115, die benötigt werden, um einen vollen Satz F von Speicherblöcken 115 in einem konsistenten Dateisystem 114 aufzubauen.
  • Für ein zweites Beispiel kann das System 100 abhängig von der logischen Summe von täglichen Speicherauszügen 210 und der logischen Differenz mit einem einzigen Speicherauszug 210 zu der Zeit des Ebene0-Speicherabbilds 220 ein unterschiedliches (inkrementales) Ebene1-Speicherabbild 220 bilden.
  • Juni9.Ebene1 = Juni9 + Juni8 – Juni3
  • (Juni9, Juni8 und Juni3 sind an diesen jeweiligen Daten genommene Speicherauszüge 210.)
  • Ähnlich zu dem ersten Beispiel umfassen die Speicherabbilder 220 Juni3.Ebene0 und Juni9.Ebene1 zusammen alle Speicherblöcke 115, die benötigt werden, um einen vollen Satz F von Speicherblöcken 115 in einem konsistenten Dateisystem 114 aufzubauen. Es besteht kein bestimmtes Bedürfnis, dass das Juni9.Ebene1 Speicherabbild 220 in beliebiger Art im Zusammenhang mit dem Juni7.Ebene2 Speicherabbild 220 steht oder im Zusammenhang mit diesem benutzt wird.
  • Dateisystem-Abbildübertragungstechniken
  • Um eine dieser Kopieroperationen auszuführen, umfasst der Dateiserver 110 ein Betriebssystem oder Anwendungssoftware zur Steuerung des Prozessors 111 und Datenverbindungen zum Übertragen von Daten von dem Massenspeicher 113 zu der Kommunikationsverbindung 130 zu dem Ziel-Dateisystem 120. Die ausgewählten Speicherblöcke 115 in dem Abbildstrom 230 werden jedoch ohne logische Dateisystemverarbeitung von dem Dateisystem 114 auf dem ersten Dateiserver 110 von dem Dateisystem 114 in das korrespondierende Ziel-Dateisystem 120 kopiert.
  • In einer bevorzugten Ausführungsform ist das System 100 angeordnet, um eine von wenigstens vier solchen Kopieroperationen auszuführen:
    • – Kopieren des Inhalts. Das System 100 kann angeordnet sein, um einen Abbildstrom 230 zum Kopieren des Dateisystems 114 in das Ziel-Dateisystem 120 zu erzeugen.
  • Der Abbildstrom 230 umfasst eine Sequenz von Speicherblöcken 115 von einem Speicherabbild 220. Wie in beinahe allen der hier beschriebenen Abbildübertragungstechniken kann das Speicherabbild 220 ein volles Abbild oder ein inkrementales Abbild sein:
    Volles Abbild: Die Speicherblöcke 115 und das Speicherabbild 220 stellen ein komplettes und konsistentes Dateisystem 114 dar.
    Inkrementales Abbild: Die Speicherblöcke 115 und das Speicherabbild 220 stellen einen inkrementalen Satz von Änderungen zu einem konsistenten Dateisystem 114 dar, welche bei Kombination mit diesem Dateisystem 114 ein neues konsistentes Dateisystem 114 bilden.
  • Der Abbildstrom 230 kann unter Verwendung einer beliebigen Übertragungstechnik von dem Dateiserver 110 zu dem Ziel-Dateisystem 120 kopiert werden. Hierin enthalten ist eine direkte Kommunikationsverbindung, ein LAN (Local Area Network), ein WAN (Wide Area Network), die Übertragung mittels eines Bandes oder eine Kombination davon. Wird der Abbildstrom 230 unter Verwendung eines Netzwerks übertragen, so werden die Speicherblöcke 115 unter Verwendung eines Netzwerk-Kommunikationsprotokolls, das dem Dateiserver 110 und dem Ziel-Dateisystem 120 bekannt ist, in Nachrichten gekapselt. In einigen Netzwerk-Kommunikationsprotokollen können zwischen den Dateiserver 110 und dem Ziel-Dateisystem 120 zusätzliche Nachrichten auftreten, um den Empfang einer kompletten und richtigen Kopie des Abbildstroms 230 zu sichern.
  • Das Ziel-Dateisystem 120 empfängt den Abbildstrom 230 und identifiziert die Speicherblöcke 115 aus dem Massenspeicher 113, die in dem Ziel-Dateisystem 120 aufgezeichnet werden sollen.
  • Stellen die Speicherblöcke 115 ein komplettes und konsistentes Dateisystem 114 dar, so zeichnet das Ziel-Dateisystem 120 dieses Dateisystem 114 ohne logische Änderungen auf. Das Ziel-Dateisystem 120 kann dieses Dateisystem 114 für Nurlesezugriffe durch lokale Prozesse zur Verfügung stellen. In alternativen Ausführungsformen kann das Ziel-Dateisystem 120 dieses Dateisystem 114 zum Zugriff durch lokale Prozesse zur Verfügung stellen, ohne dem Dateiserver 110, der die Quelle des Dateisystems 114 war, Änderungen durch diese lokalen Prozesse zur Verfügung zu stellen.
  • Stellen die Speicherblöcke 115 einen inkrementalen Satz von Änderungen zu einem konsistenten Dateisystem 114 dar, so kombiniert das Ziel-Dateisystem 120 diese Änderungen mit dem Dateisystem 114, um ein neues konstantes Dateisystem 114 zu bilden. Das Ziel-Dateisystem 120 kann dieses neue Dateisystem 114 für Nurlesezugriffe durch lokale Prozesse zur Verfügung stellen.
  • In Ausführungsformen, in denen das Ziel-Dateisystem 120 das übertragene Dateisystem 114 für einen Zugriff durch lokale Prozesse zur Verfügung stellt, können Änderungen an dem Dateisystem 114 in dem Ziel-Dateisystem 120 geleert werden, wenn ein nachfolgender inkrementaler Satz von Änderungen an dem Ziel-Dateisystem 120 empfangen wird.
  • Alle Aspekte des Dateisystems 114 sind in dem Abbildstrom 230 enthalten, einschließlich der Dateidaten, der Hierarchie der Dateistruktur und der Dateiattribute. Die Dateiattribute umfassen vorzugsweise NFS-Attribute, CIFS-Attribute und diejenigen Speicherauszüge 210, die schon in dem Dateisystem 114 erhalten werden.
  • Kopieren einer Platte. In einer ersten bevorzugten Ausführungsform des Kopierens des Inhalts (hier als „Kopieren einer Platte" bezeichnet) kann das Ziel-Dateisystem 120 ein Plattenlaufwerk oder eine andere ähnlich zugreifbare Speichervorrichtung umfassen. Das System 100 kann die Speicherblöcke 115 von dem Massenspeicher 113 zu der zugreifbaren Speichervorrichtung kopieren, wodurch eine Kopie des Dateisystems 114 erzeugt wird, die zur aktuellen Zeit betrachtet werden kann.
  • Bei dem Ausführen des Kopierens einer Platte erzeugt das System 100 einen Abbildstrom 230 und kopiert die ausgewählten Speicherblöcke 115 von dem Massenspeicher 113 in dem Dateiserver 110 an korrespondierende Positionen des Ziel-Dateisystems 120. Da der Massenspeicher 113 in dem Dateiserver 110 und das Ziel-Dateisystem 120 beide Plattenlaufwerke sind, sollte das Kopieren an korrespondierende Positionen einfach und effektiv sein.
  • Es ist möglich, dass Positionen von Speicherblöcken 115 in dem Massenspeicher 113 in dem Dateiserver 110 und dem Ziel-Dateisystem 120 nicht schon zusammenfallen, wie z.B., wenn der Massenspeicher 113 und das Ziel-Dateisystem 120 unterschiedliche Größen oder eine unterschiedliche Formatierung aufweisen. In diesen Fällen kann das Ziel-Dateisystem 120 die Speicherblöcke 115 in dem Abbildstrom 230 ähnlich umordnen, wie die hier beschriebene „Bandsicherungs"-Ausführungsform.
  • Bandsicherung. In einer zweiten bevorzugten Ausführungsform des Kopierens des Inhalts (nachfolgend als „Bandsicherung" bezeichnet), kann das Ziel-Dateisystem 120 eine Bandvorrichtung oder eine andere ähnliche Speichervorrichtung zur Langzeitspeicherung umfassen. Das System 100 kann Speicherblöcke 115 von dem Massenspeicher 113 zu der Langzeit-Speichervorrichtung kopieren, wodurch eine Sicherungskopie des Dateisystems 114 erzeugt wird, die zu einer späteren Zeit wiederhergestellt werden kann.
  • Bei dem Ausführen einer Bandsicherung erzeugt das System 100 einen Abbildstrom 230 und kopiert die ausgewählten Speicherblöcke 115 von dem Massenspeicher 113 in dem Dateiserver 110 in eine Sequenz neuer Positionen in dem Ziel-Dateisystem 120. Da das Ziel-Dateisystem 120 ein oder mehrere Bandlaufwerke umfasst, erzeugt und überträgt das System 100 eine Tabelle, die anzeigt, welche Positionen in dem Massenspeicher 113 zu welchen Positionen in dem Ziel-Dateisystem 120 korrespondieren.
  • Ähnlich zur Übertragung eines Abbildstroms 230 unter Verwendung eines Netzwerk-Kommunikationsprotokolls kann das Ziel-Dateisystem 120 zusätzliche Information zu dem Abbildstrom 230 zur Aufzeichnung auf Band hinzufügen. Diese zusätzliche Information kann Band-Kopfteile und Bandlücken, das Zusammenfassen oder Clustern von Speicherblöcken 115 zur Aufzeichnung auf Band und das Umformatieren von Speicherblöcken 115 zur Aufzeichnung auf Band umfassen.
  • Dateisicherung. In einer dritten bevorzugten Ausführungsform des Kopierens von Inhalt (nachfolgend als „Dateisicherung" bezeichnet) kann der Abbildstrom 230 in eine neue Datei innerhalb eines Dateisystems 114 entweder in dem Dateiserver 110 oder in einem Dateisystem 114 auf dem Ziel-Dateisystem 120 kopiert werden.
  • Ähnlich zu der Bandsicherung kann das Ziel-Dateisystem 120 zusätzliche Informationen zu dem Abbildstrom 230 zum Aufzeichnen in einer Datei hinzufügen. Diese zusätzliche Information kann Datei-Metadaten umfassen, die für das Dateisystem 114 nützlich sind, um Speicherblöcke 115 innerhalb der Datei zu lokalisieren.
    • – Spiegeln des Inhalts. Das System 100 kann angeordnet sein, um Abbildströme 230 zum Kopieren des Dateisystems 114 in das an einen zweiten Dateiserver 110 gekoppelte Ziel-Dateisystem 120 häufig zu übertragen, wodurch eine Spiegelkopie des Dateisystems 114 erreicht wird.
  • In einer bevorzugten Ausführungsform kann die Spiegelkopie des Dateisystems 114 zur Übernahme von einem zweiten Dateiserver 110 von dem ersten Dateiserver 110 verwendet werden, wie z.B. wenn der erste Dateiserver 110 ausfällt.
  • Bei der Ausführung des Spiegelns von Inhalt überträgt das System 100 zunächst einen Abbildstrom 230, der ein vollständiges Dateisystem 114 darstellt, von dem Dateiserver 110 zu dem Ziel-Dateisystem 120. Das System 100 überträgt dann periodisch Abbildströme 230, die inkrementale Änderungen zu diesem Dateisystem 114 darstellen, von dem Dateiserver 110 zu dem Ziel-Dateisystem 120. Das Ziel-Dateisystem 120 kann eine aktuellste Form des konsistenten Dateisystems 114 aus dem ursprünglichen vollen Abbildstrom 230 und der Sequenz von inkrementalen Abbildströmen 230 rekonstruieren.
  • Es ist möglich, das Spiegeln von Inhalt unter Verwendung des Kopierens von Inhalt von einem vollen Speicherabbild 230 und einer Sequenz von inkrementalen Speicherabbildern 230 auszuführen. Jedoch kann das Bestimmen der Speicherblöcke 115, die in einem inkrementalen Speicherabbild 230 enthalten sein sollen, für ein relativ großes Dateisystem 114 eine beträchtliche Zeit in Anspruch nehmen, wenn dieses durch eine logische Subtraktion ausgeführt wird.
  • Wie hier verwendet ist ein „Markierung-bei-Zuweisung-Speicherabbild" ein Teilsatz eines Speicherauszugs, wobei die zugehörigen Speicherblöcke diejenigen sind, die zu einem Speicherauszug hinzugefügt wurden, der ursprünglich ein konsistentes Dateisystem gebildet hat.
  • In einer bevorzugten Ausführungsform führt der Dateiserver 110 anstelle der Verwendung einer logischen Subtraktion, wie zuvor beschrieben, zu der Zeit, zu der die inkrementalen Speicherabbilder 230 demnächst übertragen werden, ein separates „Markierung-bei-Zuweisung"-Speicherabbild 230. Das Markierung-bei-Zuweisung-Speicherabbild 230 wird durch das Setzen eines Bits für jeden Speicherblock 115, wenn dieser zu dem konsistenten Dateisystem 114 hinzugefügt wird, aufgebaut. Das Markierungbei-Zuweisung-Speicherabbild 230 muss nicht in dem Massenspeicher 113 gespeichert werden, in der Blockabbildung enthalten sein oder anders gesichert werden; es kann aus anderen Speicherabbildern 230, die schon in dem Dateiserver 110 bestehen, rekonstruiert werden.
  • Wird ein inkrementales Speicherabbild 230 übertragen, so wird ein erstes Markierung-bei-Zuweisung-Speicherabbild 230 verwendet, um zu bestimmen, welche Speicherblöcke 115 in dem Speicherabbild 230 zur Übertragung enthalten sein sollen. Ein zweites Markierung-bei-Zuweisung-Speicherabbild 230 wird verwendet, um Änderungen an dem Dateisystem 114 aufzuzeichnen, während die Übertragung ausgeführt wird. Nachdem die Übertragung ausgeführt ist, tauschen das erste und das zweite Markierung-bei-Zuweisung-Speicherabbild 230 ihre Rollen.
  • Volle Spiegelung. In einer ersten bevorzugten Ausführungsform des Spiegelns von Inhalt (nachfolgend als „volle Spiegelung" bezeichnet) umfasst das Ziel-Dateisystem 120 ein Plattenlaufwerk oder eine andere ähnlich zugreifbare Speichervorrichtung.
  • Bei der initialen Übertragung des vollen Speicherabbilds 230 von dem Dateiserver 110 erzeugt das Ziel-Dateisystem eine Kopie des konsistenten Dateisystems 114. Bei der sequentiellen Übertragung von jedem inkrementalen Speicherabbild 230 von dem Dateiserver 110 aktualisiert das Ziel-Dateisystem 120 seine Kopie des konsistenten Dateisystems 114. Das Ziel-Dateisystem 120 erhält auf diese Weise seine Kopie des Dateisystems 114 nahezu aktuell und kann jederzeit beobachtet werden.
  • Bei dem Ausführen einer vollen Spiegelung erzeugt das System 100 ähnlich zu dem Kopieren einer Platte einen Abbildstrom 230 und kopiert die ausgewählten Speicherblöcke 115 von dem Massenspeicher 113 in dem Dateiserver 110 an korrespondierende Positionen in dem Ziel-Dateisystem 120.
  • Inkrementale Spiegelung. In einer zweiten bevorzugten Ausführungsform des Spiegelns von Inhalt (nachfolgend als „inkrementale Spiegelung" bezeichnet) kann das Ziel-Dateisystem 120 sowohl (1) eine Bandvorrichtung oder eine andere relativ langsame Speichervorrichtung als auch (2) ein Plattenlaufwerk oder eine andere relativ schnelle Speichervorrichtung umfassen.
  • Wie hier gebraucht, ist ein „inkrementaler Spiegel" eines ersten Dateisystems ein grundlegendes Speicherabbild von dem ersten Dateisystem und wenigstens ein inkrementales Speicherabbild von dem ersten Dateisystem auf zwei Speichermedien von wesentlich unterschiedlicher Art. Auf diese Weise kann eine vollständige Kopie des ersten Dateisystems aus den beiden oder mehreren Objekten rekonstruiert werden.
  • Bei der initialen Übertragung des vollen Speicherabbilds 230 von dem Dateiserver 110 kopiert das Ziel-Dateisystem 120 einen kompletten Satz von Speicherblöcken 115 von dem Massenspeicher 113 auf die relativ langsame Speichervorrichtung. Bei der sequentiellen Übertragung von jedem inkrementalen Speicherabbild 230 von dem Dateiserver 110 kopiert das Ziel-Dateisystem 120 inkrementale Sätze von Speicherblöcken 115 von dem Massenspeicher 113 auf die relativ schnelle Speichervorrichtung. Auf diese Weise stellen der volle Satz von Speicherblöcken 115 zusammen mit dem inkrementalen Satz von Speicherblöcken 115 kollektiv ein aktuelles Dateisystem 114 dar, wobei kein vollständig dupliziertes Plattenlaufwerk benötigt wird.
  • Bei dem Ausführen des inkrementalen Spiegelns für das grundlegende Speicherabbild 230 erzeugt das System 100 einen Abbildstrom 230 und kopiert die ausgewählten Speicherblöcke 115 von dem Massenspeicher 113 in dem Dateiserver 110 in einen Satz neuer Positionen auf der relativ langsamen Speichervorrichtung. Das System 100 schreibt den Abbildstrom 230 einschließlich von Speicherblock-Positionsinformation in das Ziel-Dateisystem 120. In einer bevorzugten Ausführungsform verwendet das System 100 ein Band als ein Zwischenziel-Speichermedium, so dass das grundlegende Speicherabbild 230 für einen wesentlichen Zeitabschnitt gespeichert werden kann, ohne dass Plattenplatz belegt werden muss.
  • Für jedes inkrementale Speicherabbild 230 erzeugt das System 100 einen neuen Abbildstrom 230 und kopiert die ausgewählten Speicherblöcke 115 aus dem Massenspeicher 113 in dem Dateiserver 110 in einen Satz neuer Positionen auf der zugreifbaren Speichervorrichtung. Inkrementale Speicherabbilder 230 werden kontinuierlich und automatisch zu periodischen Zeitpunkten erzeugt, die relativ nahe beieinander liegen.
  • Die inkrementalen Speicherabbilder 230 werden von dem Ziel-Dateisystem 120 empfangen, welches diese auspackt und die kopierten Speicherblöcke 115 in einer Inkrementalspiegel- Datenstruktur aufzeichnet. Da jedes neue inkrementale Speicherabbild 230 kopiert wird, überschreiben die kopierten Speicherblöcke 115 die äquivalenten Speicherblöcke 115 von früheren inkrementalen Speicherabbildern 230. In einer bevorzugten Ausführungsform umfasst die Inkrementalspiegel-Datenstruktur eine zerstreute Dateistruktur, die nur diejenigen Speicherblöcke 115 umfasst, die sich von dem grundlegenden Speicherabbild 230 unterscheiden.
  • In einer bevorzugten Ausführungsform werden die inkrementalen Speicherabbilder 230 mit einer Datenstruktur in das Ziel-Dateisystem 120 kopiert, die einen Satz von Speicherblöcken 115 anzeigt, welche von dem Dateisystem auf dem Dateiserver 110 freigegeben (d.h. entfernt) wurden. Auf diese Weise sind die Abbilder Markierung-bei-Freigabe-Abbilder der Speicherblöcke. Abhängig von dieser Datenstruktur entfernt das Ziel-Dateisystem 120 diejenigen angezeigten Speicherblöcke 115 aus seiner Inkrementalspiegel-Datenstruktur. Dies erlaubt es dem Ziel-Dateisystem 120, die Inkrementalspiegel-Datenstruktur in einer Größe zu erhalten, die nicht größer als ungefähr die tatsächlichen Unterschiede zwischen einem aktuellen Dateisystem in dem Dateiserver 110 und in dem grundlegenden Speicherabbild 230 von dem Dateiserver 110 sind.
  • Konsistenzpunkte. Bei dem Ausführen von entweder dem vollen Spiegeln oder dem inkrementalen Spiegeln kann es passieren, dass die Übertragung eines Speicherabbilds 230 länger benötigt, als die von dem Dateiserver 110 benötigte Zeit, um sein konsistentes Dateisystem 114 von einem ersten Konsistenzpunkt zu einem zweiten Konsistenzpunkt zu aktualisieren. Konsistenzpunkte sind detaillierter in den WAFL-Offenbarungen beschrieben.
  • In einer bevorzugten Ausführungsform setzt der Dateiserver 110 nicht für jeden Konsistenzpunkt an, ein Speicherabbild 230 zu erzeugen und Speicherblöcke 115 zu übertragen. Anstelle dessen bestimmt der Dateiserver 110 nach der Übertragung eines Speicherabbildes 230 den aktuellsten Konsistenzpunkt (oder er bestimmt alternativ den nächsten Konsistenzpunkt) als den effektiven nächsten Konsistenzpunkt. Der Dateiserver 110 verwendet den effektiven nächsten Konsistenzpunkt, um ein inkrementales Speicherabbild 230 für eine nächste Übertragung zu bestimmen.
    • – Nachbildung von Inhalt. Das Ziel-Dateisystem 120 kann ein Plattenlaufwerk oder eine andere zugreifbare Speichervorrichtung umfassen. Das System 100 kann bei einem Signal von dem Ziel-Dateisystem 120 Speicherblöcke von dem Massenspeicher 113 zu der zugreifbaren Speichervorrichtung kopieren, um nachgebildete Kopien des Dateisystems 114 für eine aktualisierte (Nur-Lese) Verwendung durch andere Dateiserver 110 bereitzustellen.
  • Der Dateiserver 110 erhält einen Satz ausgewählter Master-Speicherauszüge 210. Ein Master-Speicherauszug 210 ist ein Speicherauszug 210, dessen Existenz in dem Ziel-Dateisystem 120 bekannt sein kann, so dass das Ziel-Dateisystem 120 in Bezug auf das in den Dateiserver 110 geführte Dateisystem 114 aktualisiert werden kann. In einer bevorzugten Ausführungsform wird jeder Master-Speicherauszug 210 von einem Bedienerbefehl in dem Dateiserver 110 bestimmt und für eine relativ lange Zeit beibehalten, wie z.B. einige Monate oder ein Jahr.
  • In einer bevorzugten Ausführungsform wird jeder Master-Speicherauszug 210 zumindest solange beibehalten, bis alle bekannten Ziel-Dateisysteme 120 über den Master-Speicherauszug 210 hinaus aktualisiert sind. Ein Master-Speicherauszug 210 kann als ein Spiegel-Speicherauszug 210 benannt sein, aber in solchen Fällen werden Ziel-Dateisysteme 120 während des Aktualisierens des Master-Spiegel-Speicherabbilds 210 offline geschaltet. Das heißt, Ziel-Dateisysteme 120 warten auf die Ver vollständigung der Aktualisierung dieses Master-Spiegel-Speicherabbilds 210, bevor ihnen erlaubt wird, eine Aktualisierung von diesem Master-Spiegel-Speicherabbild 210 zu erfragen.
  • Das Ziel-Dateisystem 120 erzeugt eine Nachricht (wie z.B. bei dem Befehl eines Bedieners oder als Antwort auf eine Initialisierung oder einen Selbsttest), die es an den Dateiserver 110 überträgt, worin nach einer Aktualisierung des Dateisystems 114 gefragt wird. Die Nachricht umfasst einen neuesten Master-Speicherauszug 210, mit dem sich das Ziel-Dateisystem 120 zuletzt synchronisiert hat. Die Nachricht kann ebenfalls anzeigen, dass kein solcher neuester Master-Speicherauszug 210 existiert.
  • Der Dateiserver 110 bestimmt jegliche inkrementale Änderungen, die in dem Dateisystem 114 nach dem neuesten Master-Speicherauszug 210 in dem Ziel-Dateisystem 120 bis zu dem neuesten Master-Speicherauszug 210 an dem Dateiserver 110 erfolgt sind. In Abhängigkeit von dieser Bestimmung bestimmt der Dateiserver 110 ein Speicherabbild 230, das Speicherblöcke 115 zur Übertragung in das Ziel-Dateisystem 120 umfasst, um die Kopie des Dateisystems 114 in dem Ziel-Dateisystem 120 zu aktualisieren.
  • Existiert kein solcher neuester Master-Speicherauszug 210, so führt das System 100 das Kopieren des Inhalts für eine vollständige Kopie des Dateisystems 114 durch, das durch den neuesten Master-Speicherauszug 210 an dem Dateiserver 110 dargestellt ist. Ähnlich führt das System 100 das Kopieren des Inhalts für eine vollständige Kopie des Dateisystems 114 durch, wenn der älteste Master-Speicherauszug 210 in dem Dateiserver 110 neuer ist, als der neueste Master-Speicherauszug 210 in dem Ziel-Dateisystem 120.
  • Nach der Nachbildung des Inhalts aktualisiert das Ziel-Dateisystem 120 seinen aktuellsten Master-Speicherauszug 210 auf den aktuellsten Master-Speicherauszug 210 von dem Dateiserver 110.
  • Eine Nachbildung des Inhalts ist sehr geeignet, um Upgrades auf eine öffentlich zugängliche Datenbank, ein öffentlich zugängliches Dokument oder eine öffentlich zugängliche Website hochzuladen. Die Ziel-Dateisysteme 120, wie z.B. Spiegelsites, können dann die hochgeladenen Upgrades periodisch erhalten, wenn sie initialisiert werden, oder nach einem Bedienerbefehl in dem Ziel-Dateisystem 120. Wenn die Ziel-Dateisysteme 120 für einen wesentlichen Zeitabschnitt nicht mit dem Dateiserver 110 kommunizieren, kann das Ziel-Dateisystem 120 bei dem erneuten Eröffnen der Kommunikation eine Nachbildung des Inhalts mit dem Dateiserver 110 ausführen, um eine im Wesentlichen aktuelle Kopie des Dateisystems 114 zu erhalten.
  • In einer ersten bevorzugten Ausführungsform der Nachbildung des Inhalts (hier als „einfache Nachbildung" bezeichnet) kommuniziert das Ziel-Dateisystem 120 direkt (unter Verwendung einer direkten Kommunikationsverbindung, eines LANs, eines WANs oder einer Kombination davon) mit dem Dateiserver 110.
  • In einer zweiten bevorzugten Ausführungsform der Nachbildung von Inhalt (nachfolgend als „vielfältige Nachbildung" bezeichnet) kommuniziert ein erstes Ziel-Dateisystem direkt (unter Verwendung einer direkten Kommunikationsverbindung, eines LANs, eines WANs oder einer Kombination davon) mit einem zweiten Ziel-Dateisystem. Das zweite Ziel-Dateisystem verhält sich wie der Dateiserver 110, Um eine einfache Nachbildung des ersten Ziel-Dateisystems auszuführen.
  • Eine Sequenz von solchen Ziel-Dateisystemen endet letztendlich in einem Ziel-Dateisystem, das direkt mit dem Dateiserver 110 kommuniziert und führt eine einfache Nachbildung aus. Die Sequenz von Ziel-Dateisystemen bildet demzufolge eine Nachbildungshierarchie, wie z.B. in einem gerichteten Graphen oder einem Baum von Dateiservern 110.
  • In alternativen Ausführungsformen kann das System 100 auch eine oder mehrere Kombinationen dieser Techniken ausführen.
  • In einer bevorzugten Ausführungsform kann der Dateiserver 110 einen Satz von Pointern auf Speicherauszüge 210 führen, die diese Speicherauszüge 210 benennen und die Eigenschaft aufweisen, dass Referenzen zu den Pointern funktional äquivalent zu Referenzen zu den Speicherauszügen 210 selbst sind. Zum Beispiel kann einer der Pointer einen Namen wie z.B. „Master" haben, so dass der neueste Master-Speicherauszug 210 in dem Dateiserver 110 gleichzeitig für alle Ziel-Dateisysteme geändert werden kann. Auf diese Weise können sich alle Ziel-Dateisysteme mit demselben Master-Speicherauszug 210 synchronisieren.
  • Spiegel-Speicherauszüge
  • Das System 100 umfasst die Möglichkeit, ausgewählte Speicherauszüge 210 als „Spiegel"-Speicherauszüge 210 zu bezeichnen.
  • Wie hier verwendet ist ein „Spiegel"-Speicherauszug ein Teilsatz eines Speicherauszugs, wobei die zugehörigen Speicherblöcke nicht länger ein konsistentes Dateisystem bilden. Das heißt, zu einer Zeit haben die zugehörigen Speicherblöcke des Speicherauszugs ein konsistentes Dateisystem gebildet, aber wenigstens einige der zugehörigen Speicherblöcke wurden von dem Speicherauszug entfernt.
  • Ein Spiegel-Speicherauszug 210 hat die Eigenschaft, dass der Dateiserver 110 die Speicherblöcke 115 in dem Speicherauszug 210 wiederverwenden kann, wenn immer dies nötig ist. Ein Spiegel-Speicherauszug 210 kann als die Grundlage eines inkrementalen Speicherabbilds 230 verwendet werden. In solchen Fällen können aufgrund der Wiederverwendung durch das Dateisystem 110 Speicherblöcke 115 von dem Spiegel-Speicherauszug 210 entfernt worden sein. Es kann demzufolge auftreten, dass das inkrementale Speicherabbild 230, das aus der logischen Subtraktion unter Verwendung des Spiel-Speicherabbilds 210 entsteht, Speicherblöcke 115 umfasst, die nicht unbedingt notwendig sind (durch das Entfernen von dem Spiegel-Speicherauszug 210 wurden sie nicht wegsubtrahiert). Jedoch sind alle für das inkrementale Speicherabbild 230 nötigen Speicherblöcke 115 immer noch enthalten.
  • Bei regulären Speicherauszügen 210 führt der Dateiserver 110 keine Wiederverwendung der Speicherblöcke 115 in dem Speicherauszug 210 durch, bis der Speicherauszug 210 freigegeben ist. Auch wenn die Speicherblöcke 115 in dem Speicherauszug 210 nicht länger Teil des aktiven Dateisystems sind, werden sie von dem Dateiserver 110 ohne Änderung bewahrt. Bis zur Freigabe wahrt jeder reguläre Speicherauszug 210 ein konsistentes Dateisystem 114, auf das zu einer späteren Zeit zugegriffen werden kann.
  • Jedoch kann der Dateiserver 110 für Spiegel-Speicherauszüge 210 die Speicherblöcke 115 in dem Spiegel-Speicherauszug 210 wiederverwenden. Wird einer dieser Speicherblöcke 115 wiederverwendet, so löscht der Dateiserver 110 das Bit in dem Spiegel-Speicherauszug 210 für diesen Speicherblock 115. Auf diese Weise stellt jeder Spiegel-Speicherauszug 210 einen Satz von Speicherblöcken 115 eines konsistenten Dateisystems 114 dar, die in dem aktiven Dateisystem 114 nicht geändert wurden, seit der Spiegel-Speicherauszug 210 angefertigt wurde. Da Speicherblöcke 115 wiederverwendet werden können, bewahrt der Spiegel-Speicherauszug 210 nicht die Eigenschaft, ein konsistentes Da teisystem 114 darzustellen. Da der Dateiserver 110 jedoch diejenigen Speicherblöcke 115 wiederverwenden kann, bewirkt der Spiegel-Speicherauszug 210 nicht, dass Speicherblöcke 115 in dem Massenspeicher 113 permanent belegt werden.
  • Betriebsverfahren
  • 3 zeigt ein Ablaufdiagramm eines Verfahrens zum Übertragen von Dateisystemabbildern.
  • Von dem Dateiserver 110 und dem Ziel-Dateisystem 120 wird ein Verfahren 300 ausgeführt, das einen Satz von Flusspunkten und Verfahrensschritten umfasst, wie hier beschrieben.
  • Allgemeinheit des Betriebsverfahrens
  • In jeder der Techniken zur Übertragung von Dateisystemabbildern umfasst das Verfahren 300 drei Operationen:
    • – Auswahl eines Speicherabbilds 220, abhängig davon, dass eine Operation an einem ersten Dateisystem (oder einem Speicherauszug davon) erfolgt ist.
    • – Bilden eines Abbildstroms 230 abhängig von dem Speicherabbild 220. Durchführen einer Operation mit dem Abbildstrom 230, wie z.B. Sichern oder Wiederherstellen innerhalb des ersten Dateisystems oder Kopieren oder Übertragen in ein zweites Dateisystem.
    • – Rekonstruieren des ersten Dateisystems (oder von dessen Speicherauszug) in Abhängigkeit von dem Abbildstrom 230.
  • Wie hier gezeigt, ist jeder dieser Schritte in seiner Anwendung sehr allgemein.
  • In dem ersten (Auswahl-)Schritt kann das ausgewählte Speicherabbild 220 ein komplettes Dateisystem oder ein Teilsatz davon sein. Der Teilsatz kann ein Inkrement des kompletten Dateisystems sein, wie z.B. diejenigen Speicherblöcke, die geändert wurden, oder kann eine andere Art von Teilsatz sein. Das Speicherabbild 220 kann ein einziges Mal ausgewählt werden, wie z.B. für eine Sicherungsoperation, oder wiederholt, wie z.B. für eine Spiegeloperation. Das Speicherabbild 220 kann abhängig von einem Prozess an einem sendenden Dateiserver oder an einem empfangenden Dateiserver ausgewählt werden.
  • Zum Beispiel kann das ausgewählte Speicherabbild 220, wie hier gezeigt, für eine vollständige Sicherungskopie oder das Kopieren eines gesamten Dateisystems vorgesehen sein, oder für eine inkrementale Sicherungskopie oder ein inkrementales Spiegeln eines Dateisystems vorgesehen sein. Das ausgewählte Speicherabbild 220 kann durch einen sendenden Dateiserver bestimmt sein oder kann abhängig von einer Anfrage durch einen empfangenden Dateiserver (oder einen Satz von empfangenden Dateiservern) bestimmt sein.
  • In dem zweiten (Betriebs-)Schritt kann der Abbildstrom 230 so ausgewählt werden, dass die Operation optimiert wird. Der Abbildstrom 230 kann ausgewählt und angefordert werden, um die Übertragung zu unterschiedlichen Arten von Medien zu optimieren, die Übertragungsrate zu optimieren oder die Zuverlässigkeit zu optimieren. In einer bevorzugten Ausführungsform ist der Abbildstrom 230 optimiert, um die Übertragungsrate von parallelen Platten in einem RAID-Plattensystem zu maximieren.
  • In dem dritten (Rekonstruktions-)Schritt kann der Abbildstrom 230 in ein vollständiges Dateisystem rekonstruiert werden oder in ein Inkrement eines Dateisystems rekonstruiert werden. Der Rekonstruktionsschritt kann unmittelbar oder nach einer Verzögerung ausgeführt werden, kann in Abhängigkeit von dem Prozess ausgeführt werden, der den Auswahlschritt initiiert hat, oder kann unabhängig davon von anderen Ereignissen ausgelöst ausgeführt werden.
  • Auswahl eines Speicherabbilds
  • In jeder der Techniken zum Übertragen von Dateisystemabbildern wählt das Verfahren 300 ein zu übertragendes Speicherabbild 220.
  • An einem Flusspunkt 370 ist der Dateiserver 110 bereit, ein Speicherabbild 220 zur Übertragung auszuwählen.
  • In einem Schritt 371 bildet der Dateiserver 110 eine logische Summe LS eines Satzes von Speicherabbildern 220 A1 + A2, demzufolge ist LS = A1 + A2. Die logische Summe LS kann auch eine beliebige Mehrzahl von Speicherabbildern 220 umfassen, wie z.B. A1 + A2 + A3 + A4, demzufolge ist z.B. LS = A1 + A2 + A3 + A4.
  • In einem Schritt 372 bestimmt der Dateiserver 110, ob die Übertragung eine vollständige Übertragung oder eine inkrementale Übertragung ist. Ist die Übertragung inkremental, so setzt sich das Verfahren 300 mit dem nächsten Schritt fort. Ist die Übertragung eine vollständige Übertragung, so setzt sich das Verfahren 300 mit dem Flusspunkt 380 fort.
  • In einem Schritt 373 bildet der Dateiserver 110 eine logische Differenz LD der logischen Summe LS und eines grundlegenden Speicherabbildes 220 B, demzufolge ist LD = LS – B. Das grundlegende Speicherabbild 220 B umfasst einen Speicherauszug 210.
  • An einem Flusspunkt 380 hat der Dateiserver 110 ein Speicherabbild 230 zur Übertragung auswählt.
  • Kopieren von Inhalt
  • In einem Flusspunkt 310 ist der Dateiserver 110 bereit, die Operation des Kopierens von Inhalt auszuführen.
  • In einem Schritt 311 wählt der Dateiserver 111 ein Speicherabbild 220 zur Übertragung, wie es in Bezug auf den Flusspunkt 370 bis zum Flusspunkt 380 beschrieben ist. Ist die Operation des Kopierens von Inhalt eine Kopie des vollständigen Inhalts, so ist das ausgewählte Speicherabbild 220 für eine vollständige Übertragung. Ist die Operation des Kopierens von Inhalt eine inkrementale Kopie von Inhalt, so ist das ausgewählte Speicherabbild 220 für eine inkrementale Übertragung.
  • Im Schritt 312 bestimmt der Dateiserver 110, ob der Inhalt auf Platte oder Band kopiert werden soll.
    • – Soll der Inhalt auf Platte kopiert werden, so setzt sich das Verfahren 300 mit dem Schritt 313 fort.
    • – Soll der Inhalt auf Band kopiert werden, so setzt sich das Verfahren mit dem Schritt 314 fort.
  • In einem Schritt 313 erzeugt der Dateiserver 110 einen Abbildstrom 230 für das ausgewählte Speicherabbild 220. In einer bevorzugten Ausführungsform sind die Speicherblöcke 115 in dem Abbildstrom 230 für die Übertragung auf eine Platte angeordnet. Jeder Speicherblock 115 ist zur Identifikation mit einer VBN (Virtuellen Block Nummer) assoziiert. Das Verfahren 300 setzt sich mit dem Schritt 315 fort.
  • In einem Schritt 314 führt der Dateiserver 110 dieselben Funktionen aus, wie im Schritt 313, mit der Ausnahme, dass die Speicherblöcke 115 in dem Abbildstrom 230 für die Übertragung auf Band angeordnet sind.
  • In einem Schritt 315 kopiert der Dateiserver 110 den Abbildstrom 230 auf das Ziel-Dateisystem 120 (Platte oder Band).
    • – Wenn der Abbildstrom 230 auf Platte kopiert wird, so ordnet der Dateiserver 110 vorzugsweise jeden Speicherblock 115 in einer äquivalenten Position auf der Zielplatte (den Zielplatten) an, wie auf der Quellenplatte (den Quellenplatten), ähnlich zu den Ereignissen bei der Wiedererlangung von Band.
  • In einer bevorzugten Ausführungsform kopiert der Dateiserver 110 den Abbildstrom 230 unter Verwendung eines sowohl dem Dateiserver 110 als auch dem Ziel-Dateisystem 120 bekannten Kommunikationsprotokolls, z.B. TCP, zu dem Ziel-Dateisystem 120. Wie hier festgestellt, ist der Abbildstrom 230, der mit dem Kommunikationsprotokoll verwendet wird, ähnlich zu dem Abbildstrom 230, der zur Sicherung auf Band verwendet wird, aber er kann zusätzliche Nachrichten oder Pakete zur Bestätigung oder erneuten Übertragung von Daten enthalten.
  • Das Ziel-Dateisystem 120 liefert den Abbildstrom 230 direkt an ein Wiederherstellungselement, welches den Abbildstrom 230 auf die Zielplatte(n) des Ziel-Dateisystems 120 kopiert, als wenn diese auf der Quellenplatte (den Quellenplatten) wären. Da von dem Dateiserver 110 ein konsistentes Dateisystem 114 in das Ziel-Dateisystem 120 kopiert wird, können die Speicherblöcke 115 in dem Abbildstrom 230 direkt als ein konsistentes Dateisystem 114 verwendet werden, wenn sie an dem Ziel-Dateisystem 120 ankommen.
  • Das Ziel-Dateisystem 120 muss eventuell abhängig von der VBN jedes Speicherblocks 115 einige Zwischenblockpointer ändern, wenn einige oder alle der Ziel-Speicherblöcke 115 hinsichtlich der Quellen-Speicherblöcke 115 in unterschiedlichen physikalischen Positionen aufgezeichnet werden.
    • – Wenn der Abbildstrom 230 auf Band kopiert wird, ordnet der Dateiserver 110 vorzugsweise jeden Speicherblock 115 in einer Position auf dem Zielband so an, dass er mittels seiner VBN wiederhergestellt werden kann. Wenn die Speicherblöcke 115 eventuell vom Band auf einen Platten-Dateiserver 110 wiederhergestellt werden, werden sie auf der Zielplatte (den Zielplatten) vorzugsweise in äquivalenten Positionen angeordnet, wie sie auf der Quellenplatte (den Quellenplatten) angeordnet waren.
  • Das Ziel-Dateisystem 120 zeichnet den Abbildstrom 230 direkt zusammen mit einem Satz von Blocknummerninformation für jeden Speicherblock 115 auf Band auf. Das Ziel-Dateisystem 120 kann später ausgewählte Speicherblöcke 115 vom Band wiederherstellen und auf einem Platten-Dateiserver 110 anordnen. Da von dem Dateiserver 110 ein konsistentes Dateisystem 114 auf das Ziel-Dateisystem 120 kopiert wurde, können die Speicherblöcke 115 in dem Abbildstrom 230 direkt auf die Platte wiederhergestellt werden, wenn sie später im Ziel-Dateisystem 120 vom Band wiedererlangt werden.
  • Das Ziel-Dateisystem 120 muss eventuell abhängig von der VBN von jedem Speicherblock 115 einige Zwischenblockpointer ändern, wenn einige oder alle der Zielspeicherblöcke 115 vom Band wiederhergestellt werden und hinsichtlich der Quellenspeicherblöcke 115 in unterschiedlichen physikalischen Positionen auf der Platte aufgezeichnet werden. Das Ziel-Dateisystem 120 hat diese Information in Header-Daten aufgezeichnet, die es auf das Band aufzeichnet.
  • An einem Flusspunkt 320 hat der Dateiserver 110 die Operation des Kopierens von Inhalt abgeschlossen.
  • Spiegeln von Inhalt
  • An einem Flusspunkt 330 ist der Dateiserver 110 bereit, die Operation des Spiegelns von Inhalt auszuführen.
  • In einem Schritt 331 führt der Dateiserver 110 eine Operation des Kopierens des gesamten Inhalts aus, wie es in Bezug auf Flusspunkt 310 bis Flusspunkt 320 beschrieben ist. Die Operation des Kopierens von Inhalt wird für eine vollständige Kopie des Dateisystems 114 ausgeführt.
    • – Wenn die auszuführende Funktion ein vollständiges Spiegeln ist, so führt der Dateiserver 110 die Operation des Kopierens des gesamten Inhalts auf Platte als das gewünschte Ziel-Dateisystem 120 aus.
    • – Wenn die auszuführende Funktion ein inkrementales Spiegeln ist, so führt der Dateiserver 110 die Operation des Kopierens des gesamten Inhalts auf Band als das gewünschte Ziel-Dateisystem 120 aus.
  • In einem Schritt 332 setzt der Dateiserver 110 eine Spiegel-Zeitablaufsteuerung für das inkrementale Aktualisieren der Operation des Spiegelns von Inhalt.
  • In einem Schritt 333 ist die Spiegel-Zeitablaufsteuerung abgelaufen und der Dateiserver 110 beginnt mit der inkrementalen Aktualisierung für den Betrieb des Spiegelns von Inhalt.
  • In einem Schritt 334 führt der Dateiserver 110 die Operation eines inkrementalen Kopierens von Inhalt aus, wie es in Bezug auf Flusspunkt 310 bis Flusspunkt 320 beschrieben ist. Die Operation des Kopierens von Inhalt wird für ein inkrementales Upgrade des Dateisystems 114 ausgeführt.
  • Die Operation des inkrementalen Kopierens von Inhalt wird mit einer Platte als das gewünschte Ziel-Dateisystem 120 ausgeführt.
    • – Wenn die initiale Operation des Kopierens des gesamten Inhalts auf Platte ausgeführt wurde, so inkrementiert das Ziel-Dateisystem 120 seine Kopie des Dateisystems 114, um das inkrementale Speicherabbild 220 zu umfassen.
    • – Wenn die initiale Operation des Kopierens des gesamten Inhalts auf Band ausgeführt wurde, so zeichnet das Ziel-Dateisystem 120 das inkrementale Speicherabbild 220 auf und integriert dieses in eine Inkrementalspiegel-Datenstruktur, wie zuvor beschrieben, um seine Kopie des Dateisystems 114 möglicherweise später zu inkrementieren.
  • In einem Schritt 335 kopiert der Dateiserver 110 den Abbildstrom 230 auf das gewünschte Ziel-Dateisystem 120. Das Verfahren 300 kehrt zu dem Schritt 332 zurück, in welchem Schritt der Dateiserver 110 die Spiegel-Zeitablaufsteuerung zurücksetzt, wonach das Verfahren 300 fortgesetzt wird.
  • Empfängt das Ziel-Dateisystem 120 den Abbildstrom 230, so zeichnet es die Speicherblöcke 115 in diesem Abbildstrom 230 ähnlich zu dem Verfahren des Kopierens von Inhalt auf, wie es in Bezug auf den Schritt 315 beschrieben wurde.
  • Wird das Verfahren 300 angehalten (durch einen Bedienerbefehl oder anders), so wird es am Flusspunkt 340 abgeschlossen.
  • An einem Flusspunkt 340 hat der Dateiserver 110 die Operation des Spiegelns von Inhalt abgeschlossen.
  • Wiederintegration von inkrementalem Spiegel
  • An einem Flusspunkt 370 ist der Dateiserver 110 bereit, ein Dateisystem von dem grundlegenden Speicherabbild 220 und der Inkrementalspiegel-Datenstruktur wiederherzustellen.
  • In einem Schritt 371 liest der Dateiserver 110 das grundlegende Speicherabbild 220 in sein Dateisystem.
  • In einem Schritt 372 liest der Dateiserver 110 die Inkrementalspiegel-Datenstruktur in sein Dateisystem und verwendet diese Datenstruktur, um das grundlegende Speicherabbild 220 zu aktualisieren.
  • In einem Schritt 373 mountet der Dateiserver 110 das unter Verwendung der Inkrementalspiegel-Datenstruktur aktualisierte Dateisystem erneut.
  • In einem Flusspunkt 380 ist der Dateiserver 110 bereit, Operationen mit dem aus dem grundlegenden Speicherabbild 220 und der Inkrementalspiegel-Datenstruktur wiedererlangten Dateisystem fortzusetzen.
  • Nachbildung von Inhalt
  • In einem Flusspunkt 350 ist der Dateiserver 110 bereit, eine Operation zur Nachbildung von Inhalt durchzuführen.
  • In einem Schritt 351 initiiert das Ziel-Dateisystem 120 die Operation des Nachbildens von Inhalt. Das Ziel-Dateisystem 120 schickt einen Indikator seines aktuellsten Master-Speicherauszugs 210 an den Dateiserver 110 und erbittet die Ausführung der Operation der Nachbildung von Inhalt von dem Dateiserver 110.
  • In einem Schritt 352 bestimmt der Dateiserver 110, ob er eine Operation der Nachbildung von Inhalt ausführen muss, um sich mit einem zweiten Dateiserver 110 zu synchronisieren. In diesem Fall übernimmt der zweite Dateiserver 110 die Rolle. des Ziel-Dateisystems 120 und initiiert die Operation der Nachbildung von Inhalt in Bezug auf den ersten Dateiserver 110.
  • In einem Schritt 353 bestimmt der Dateiserver 110 seinen aktuellsten Master-Speicherauszug 210 und seinen zu dem von dem Ziel-Dateisystem 120 angezeigten Master-Speicherauszug 210 korrespondierenden Master-Speicherauszug 210.
    • – Wenn der Dateiserver 110 wenigstens einen Master-Speicherauszug 210 aufweist, der älter ist, als der von dem Ziel-Dateisystem 120 angezeigte Master-Speicherauszug 210, so wählt er den korrespondierenden Master-Speicherauszug 210 als den neuesten davon. In diesem Fall setzt sich das Verfahren mit dem Schritt 354 fort.
    • – Wenn der Dateiserver 110 nicht wenigstens einen Master-Speicherauszug 210 aufweist, der älter ist, als der von dem Ziel-Dateisystem 120 angezeigte Master-Speicherauszug 210 (oder wenn das Ziel-Dateisystem 120 keinen Master-Speicherauszug 210 angezeigt hat), so wählt er keinen Master-Speicherauszug 210 als einen korrespondierenden Master-Speicherauszug. In diesem Fall setzt sich das Verfahren mit dem Schritt 355 fort.
  • In einem Schritt 354 führt der Dateiserver 110 abhängig von der inkrementalen Differenz zwischen dem ausgewählten korrespondierenden Master-Speicherauszug 210 und dem neuesten ihm zur Verfügung stehenden Master-Speicherauszug 210 eine Operation des inkrementalen Kopierens von Inhalt aus. Das Verfahren 300 setzt sieh in dem Flusspunkt 360 fort.
  • In einem Schritt 355 führt der Dateiserver 110 abhängig von dem neuesten ihm zur Verfügung stehenden Master-Speicherauszug 210 die Operation des vollständigen Kopierens von Inhalt aus. Das Verfahren setzt sich in dem Flusspunkt 360 fort.
  • An einem Flusspunkt 360 hat der Dateiserver 110 die Operation der Nachbildung von Inhalt abgeschlossen. Das Ziel-Dateisystem 120 aktualisiert seinen Master-Speicherauszug 210, so dass dieser zu dem Master-Speicherauszug 210 korrespondiert, der verwendet wurde, um die Teilsystem-Übertragung von dem Dateiserver 110 auszuführen.
  • Alternative Ausführungsformen
  • Obwohl hier bevorzugte Ausführungsformen offenbart wurden, sind viele Variationen möglich, welche innerhalb des Umfangs der Erfindung liegen, wie sie in den beigefügten Patentansprüchen beansprucht ist, und diese Änderungen werden den Fachleuten auf diesem Gebiet nach dem Studium der Anmeldung deutlich.

Claims (49)

  1. Ein Dateisystem (114), das eine Mehrzahl von Speicherblöcken (115) aufweist, umfassend eine Mehrzahl von Bits (211), die mit jedem einzelnen der Mehrzahl von Speicherblöcken assoziiert sind, wobei wenigstens ein erstes Bit der Mehrzahl von Bits anzeigt, ob die Speicherblöcke Teil eines ersten Abbilds des Dateisystems zu einer Zeit vor einer aktuellen konsistenten Version des Dateisystems sind, und dadurch gekennzeichnet, dass das Dateisystem umfasst: wenigstens ein zweites Bit der Mehrzahl von Bits, das anzeigt, ob die Speicherblöcke Teil eines zweiten zu der aktuellen konsistenten Version des Dateisystems unterschiedlichen Abbilds sind; und ein Element, das zur Auswahl von Speicherblöcken abhängig von einer Operation angeordnet ist, die mit wenigstens dem ersten Bit und dem zweiten Bit der Mehrzahl von Bits ausgeführt wurde.
  2. Ein Dateisystem nach Anspruch 1, bei dem die Operation eine logische Summen- oder Differenzoperation ist.
  3. Ein Dateisystem nach Anspruch 1, das ein zum Kopierender ausgewählten Speicherblöcke an ein Ziel angeordnetes Element umfasst.
  4. Ein Dateisystem nach Anspruch 3, bei dem das Ziel ein Band, eine Platte, eine Datenstruktur in einem zweiten Dateisystem, einen Satz von Netzwerknachrichten oder ein über eine Mehrzahl von Dateisystemen verteiltes Ziel umfasst.
  5. Ein Dateisystem nach Anspruch 1, bei dem das erste Abbild des Dateisystems ein Speicherauszug ist, der als ein Objekt in dem Dateisystem angeordnet ist, und wobei das Dateisystem auf wenigstens eine Dateisystemanfrage in Bezug auf den Speicherauszug anspricht.
  6. Ein Dateisystem nach Anspruch 5, bei dem das zweite Abbild ein Markierung-bei-Zuweisung-Abbild eines Satzes von zugehörigen Speicherblöcken (115) ist, die aus der Mehrzahl von Speicherblöcken (115) ausgewählt sind, wobei die zugehörigen Speicherblöcke zu dem Speicherauszug hinzugefügt wurden; und wobei die von dem Element ausgewählten Speicherblöcke (115) ein Speicherabbild (220) bilden, das auf Grundlage des Speicherauszugs und des Markierung-bei-Zuweisung-Abbilds definiert ist, wobei das Speicherabbild (220) einen Satz von zugehörigen Speicherblöcken anzeigt, die aus der Mehrzahl von Speicherblöcken ausgewählt sind.
  7. Ein Dateisystem nach Anspruch 6, bei dem das Speicherabbild (220) in Bezug auf eine logische Summenoperation des Speicherauszugs und des Markierung-bei-Zuweisung-Abbilds definiert ist.
  8. Ein Dateisystem nach Anspruch 5, bei dem das zweite Abbild ein Markierung-bei-Freigabe-Abbild eines Satzes von zugehörigen Speicherblöcken (115) ist, die aus der Mehrzahl von Speicherblöcken ausgewählt sind, wobei die zugehörigen Speicherblöcke von dem Speicherauszug entfernt wurden; und wobei die von dem Element ausgewählten Speicherblöcke (115) ein Speicherabbild bilden, das auf Grundlage des Speicherauszugs und des Markierung-bei-Freigabe-Abbilds definiert ist, wobei das Speicherabbild einen Satz von zugehörigen Speicherblöcken anzeigt, die aus der Mehrzahl von Speicherblöcken ausgewählt sind.
  9. Ein Dateisystem nach Anspruch 5, bei dem das zweite Abbild ein Spiegel-Speicherauszug eines Satzes von zugehörigen Speicherblöcken ist, die aus der Mehrzahl von Speicherblöcken (115) ausgewählt sind, wobei die zugehörigen Speicherblöcke ein zu einem aktiven Dateisystem unterschiedliches konsistentes Dateisystem gebildet haben, wobei ein Satz ausgewählter zugehöriger Speicherblöcke von dem konsistenten Dateisystem entfernt wurde; und wobei die von dem Element ausgewählten Speicherblöcke ein Speicherabbild bilden, das auf Grundlage des Speicherauszugs und des Spiegel-Speicherauszugs definiert ist, wobei das Speicherabbild einen Satz von zugehörigen Speicherblöcken anzeigt, die aus der Mehrzahl von Speicherblöcken ausgewählt sind.
  10. Ein Dateisystem nach Anspruch 5, das einen Anzeiger umfasst, der anzeigt, welche der Speicherblöcke des Speicherauszugs kopiert wurden.
  11. Ein Dateisystem nach Anspruch 5, bei dem das erste Abbild und das zweite Abbild Speicherauszüge sind; und bei dem die Speicherauszüge mit einem Feld (200) der Bits (211) assoziiert sind, wobei das Feld einen Satz der Bits für jeden Speicherblock der Mehrzahl von Speicherblöcken aufweist, wobei jeder Satz von den Bits wenigstens ein Bit für jeden der Speicherauszüge aufweist.
  12. Ein Dateisystem nach Anspruch 5, wobei das Dateisystem den Speicherauszug manipulieren kann, ohne eine Hierarchie von Dateisystemobjekten innerhalb des Speicherauszugs durchlaufen zu müssen.
  13. Ein Dateisystem nach Anspruch 5, wobei der Speicherauszug eine Datenstruktur umfasst, die in einem Format angeordnet ist, das eine effizient Ausführung einer bestimmten Managementoperation erlaubt.
  14. Ein Dateisystem nach Anspruch 5, bei dem der Speicherauszug ein Feld (200) der Bits umfasst, wobei das Feld eines der Bits für jeden Speicherblock (115) der Mehrzahl von Speicherblöcken aufweist.
  15. Ein Dateisystem nach Anspruch 5, wobei das zweite Abbild ein zweiter Speicherauszug ist; und wobei die von dem Element ausgewählten Speicherblöcke (115) ein Speicherabbild (220) bilden.
  16. Ein Dateisystem nach Anspruch 15, das einen Anzeiger umfasst, der anzeigt, welche der Speicherblöcke des Speicherabbilds kopiert wurden.
  17. Ein Dateisystem nach Anspruch 15, bei dem das Speicherabbild ein Ergebnis einer logischen Summe oder Differenz des Speicherauszugs und des zweiten Speicherauszugs ist.
  18. Ein Dateisystem nach Anspruch 15, bei dem das Speicherabbild ein Ergebnis einer logischen Summe oder Differenz des Speicherauszugs und des zweiten Speicherabbilds ist.
  19. Ein Dateisystem nach Anspruch 15, bei dem das Speicherabbild ein Ergebnis einer auf den Speicherauszug angewandten bestimmten Managementoperation ist.
  20. Ein Dateisystem nach Anspruch 15, wobei der Speicherauszug eine Datenstruktur umfasst, die in einem Format angeordnet ist, das eine effizient Ausführung einer bestimmten Managementoperation in einer Zeit O(n) oder weniger erlaubt, wobei n eine Anzahl von Speicherblöcken in der Mehrzahl von Speicherblöcken (115) ist, wobei jegliche Inhalte der Speicherblöcke in der Mehrzahl von Speicherblöcken (115) nicht gelesen werden.
  21. Ein Dateisystem nach Anspruch 20, bei dem die bestimmte Managementoperation eine logische Summen- oder Differenzoperation ist.
  22. Ein Dateisystem nach Anspruch 15, bei dem der Speicherauszug eine Datenstruktur umfasst, die anzeigt, welche Speicherblöcke (115) in der Mehrzahl zugehörige Speicherblöcke des Speicherauszugs sind.
  23. Ein Dateisystem nach Anspruch 22, bei dem die Datenstruktur nicht mehr als 1/100 einer Speichermenge verwendet, die von den Speicherblöcken in der Mehrzahl von Speicherblöcken benötigt wird.
  24. Ein Dateisystem nach Anspruch 22, bei dem die Datenstruktur nicht mehr als vier Byte pro Speicherblock (215) der Mehrzahl von Speicherblöcken verwendet.
  25. Ein Verfahren, umfassend die Schritte Erhalten einer Mehrzahl von Bits (211), die mit jedem einzelnen einer Mehrzahl von Speicherblöcken (115) in einem Dateisystem (114) assoziiert sind, wobei wenigstens ein erstes Bit der Mehrzahl von Bits anzeigt, ob die Speicherblöcke Teil eines ersten Abbilds des Dateisystems zu einer Zeit vor einer aktuellen konsistenten Version des Dateisystems sind, und dadurch gekennzeichnet, dass wenigstens ein zweites Bit der Mehrzahl von Bits anzeigt, ob die Speicherblöcke Teil eines zweiten zu der aktuellen konsistenten Version des Dateisystems unterschiedlichen Abbilds sind; und Auswahl von Speicherblöcken abhängig von einer Operation, die mit wenigstens dem ersten Bit und dem zweiten Bit der Mehrzahl von Bits ausgeführt wurde.
  26. Ein Verfahren nach Anspruch 25, bei dem die Operation eine logische Summenoperation (371) oder Differenzoperation (373) ist.
  27. Ein Verfahren nach Anspruch 25, weiter mit dem Schritt des Kopierens (315, 335) der ausgewählten Speicherblöcke an ein Ziel.
  28. Ein Verfahren nach Anspruch 27, bei dem das Ziel ein Band, eine Platte, eine Datenstruktur in einem zweiten Dateisystem, einen Satz von Netzwerknachrichten oder ein über eine Mehrzahl von Dateisystemen verteiltes Ziel umfasst.
  29. Ein Verfahren nach Anspruch 25, bei dem das erste Abbild des Dateisystems (114) ein Speicherauszug ist, der als ein Objekt in dem Dateisystem angeordnet ist, und wobei das Dateisystem auf wenigstens eine Dateisystemanfrage in Bezug auf den Speicherauszug anspricht.
  30. Ein Verfahren nach Anspruch 29, bei dem das zweite Abbild ein Markierung-bei-Zuweisung-Abbild eines Satzes von zugehörigen Speicherblöcken (115) ist, die aus der Mehrzahl von Speicherblöcken ausgewählt sind, wobei die zugehörigen Speicherblöcke zu dem Speicherauszug hinzugefügt wurden; und wobei die in Abhängigkeit von der Operation ausgewählten Speicherblöcke (115) ein Speicherabbild (220) bilden, das auf Grundlage des Speicherauszugs und des Markierung-bei Zuweisung-Abbilds definiert ist, wobei das Speicherabbild einen Satz von zugehörigen Speicherblöcken anzeigt, die aus der Mehrzahl von Speicherblöcken ausgewählt sind.
  31. Ein Verfahren nach Anspruch 30, bei dem das Speicherabbild (220) in Bezug auf eine logische Summenoperation des Speicherauszugs und des Markierung-bei-Zuweisung-Abbilds definiert ist.
  32. Ein Verfahren nach Anspruch 29, bei dem das zweite Abbild ein Markierung-bei-Freigabe-Abbild eines Satzes von zugehörigen Speicherblöcken ist, die aus der Mehrzahl von Speicherblöcken (115) ausgewählt sind, wobei die zugehörigen Speicherblöcke von dem Speicherauszug entfernt wurden; und wobei die in Abhängigkeit von der Operation ausgewählten Speicherblöcke (115) ein Speicherabbild (220) bilden, das auf Grundlage des Speicherauszugs und des Markierung-bei-Freigabe-Abbilds definiert ist, wobei das Speicherabbild einen Satz von zugehörigen Speicherblöcken anzeigt, die aus der Mehrzahl von Speicherblöcken ausgewählt sind.
  33. Ein Verfahren nach Anspruch 29, bei dem das zweite Abbild ein Spiegel-Speicherauszug eines Satzes von zugehörigen Speicherblöcken (115) ist, die aus der Mehrzahl ausgewählt sind, wobei die zugehörigen Speicherblöcke ein zu einem aktiven. Dateisystem unterschiedliches konsistentes Dateisystem gebildet haben, wobei ein Satz ausgewählter zugehöriger Speicherblöcke von dem konsistenten Dateisystem entfernt wurde; und wobei die in Abhängigkeit von der Operation ausgewählten Speicherblöcke (115) ein Speicherabbild (220) bilden, das auf Grundlage des Speicherauszugs und des Spiegel-Speicherauszugs definiert ist, wobei das Speicherabbild einen Satz von zugehörigen Speicherblöcken anzeigt, die aus der Mehrzahl von Speicherblöcken ausgewählt sind.
  34. Ein Verfahren nach Anspruch 29, weiter mit dem Schritt des Anzeigens, welche der Speicherblöcke (115) des Speicherauszugs kopiert wurden.
  35. Ein Verfahren nach Anspruch 29, bei dem das erste Abbild und das zweite Abbild Speicherauszüge sind; und bei dem die Speicherauszüge mit einem Feld (200) der Bits (211) assoziiert sind, wobei das Feld einen Satz von Bits für jeden Speicherblock der Mehrzahl von Speicherblöcken aufweist, wobei jeder Satz von Bits wenigstens ein Bit für jeden der Speicherauszüge aufweist.
  36. Ein Verfahren nach Anspruch 29, weiter mit dem Schritt des Manipulierens des Speicherauszugs, ohne eine Hierarchie von Dateisystemobjekten innerhalb des Speicherauszugs durchlaufen zu müssen.
  37. Ein Verfahren nach Anspruch 29, wobei der Speicherauszug eine Datenstruktur umfasst, die in einem Format angeordnet ist, das eine effizient Ausführung einer bestimmten Managementoperation erlaubt.
  38. Ein Verfahren nach Anspruch 29, bei dem der Speicherauszug ein Feld (200) der Bits (211) umfasst, wobei das Feld ein Bit für jeden Speicherblock der Mehrzahl von Speicherblöcken (115) aufweist.
  39. Ein Verfahren nach Anspruch 29, wobei das zweite Abbild ein zweiter Speicherauszug ist; und wobei die in Abhängigkeit von der Operation ausgewählten Speicherblöcke (115) ein Speicherabbild bilden.
  40. Ein Verfahren nach Anspruch 39, weiter mit dem Schritt des Anzeigens, welche der Speicherblöcke (115) des Speicherabbilds kopiert wurden.
  41. Ein Verfahren nach Anspruch 39, bei dem das Speicherabbild ein Ergebnis einer logischen Summe oder Differenz des Speicherauszugs und des zweiten Speicherauszugs ist.
  42. Ein Verfahren nach Anspruch 39, bei dem das Speicherabbild (220) ein Ergebnis einer logischen Summe oder Differenz des Speicherauszugs und des zweiten Speicherabbilds ist.
  43. Ein Verfahren nach Anspruch 39, bei dem das Speicherabbild (220) ein Ergebnis einer auf den Speicherauszug angewandten bestimmten Managementoperation ist.
  44. Ein Verfahren nach Anspruch 39, wobei der Speicherauszug eine Datenstruktur umfasst, die in einem Format angeordnet ist, das eine effizient Ausführung einer bestimmten Managementoperation in einer Zeit O(n) oder weniger erlaubt, wobei n eine Anzahl von Speicherblöcken in der Mehrzahl von Speicherblöcken ist, wobei jegliche Inhalte der Speicherblöcke in der Mehrzahl von Speicherblöcken nicht gelesen werden.
  45. Ein Verfahren nach Anspruch 44, bei dem die bestimmte Managementoperation eine logische Summen- oder Differenzoperation ist.
  46. Ein Verfahren nach Anspruch 39, bei dem der Speicherauszug eine Datenstruktur umfasst, die anzeigt, welche Speicherblöcke (115) in der Mehrzahl zugehörige Speicherblöcke des Speicherauszugs sind.
  47. Ein Verfahren nach Anspruch 46, bei dem die Datenstruktur nicht mehr als 1/100 einer Speichermenge verwendet, die von den Speicherblöcken (115) in der Mehrzahl von Speicherblöcken benötigt wird.
  48. Ein Verfahren nach Anspruch 46, bei dem die Datenstruktur nicht mehr als vier Byte pro Speicherblock (115) der Mehrzahl von Speicherblöcken verwendet.
  49. Ein Computerprogrammprodukt, umfassend Programmcodemittel, die ein Computersystem bei ihrer Ausführung auf dem Computersystem anweisen, die Verfahrensschritte eines der Ansprüche 25 bis 48 auszuführen.
DE69920713T 1998-07-31 1999-07-28 Datei-system bild-übertragung Expired - Lifetime DE69920713T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US127497 1998-07-31
US09/127,497 US6604118B2 (en) 1998-07-31 1998-07-31 File system image transfer
PCT/US1999/017148 WO2000007104A1 (en) 1998-07-31 1999-07-28 File system image transfer

Publications (2)

Publication Number Publication Date
DE69920713D1 DE69920713D1 (de) 2004-11-04
DE69920713T2 true DE69920713T2 (de) 2005-11-17

Family

ID=22430453

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69920713T Expired - Lifetime DE69920713T2 (de) 1998-07-31 1999-07-28 Datei-system bild-übertragung

Country Status (5)

Country Link
US (1) US6604118B2 (de)
EP (1) EP1099165B1 (de)
AT (1) ATE278216T1 (de)
DE (1) DE69920713T2 (de)
WO (1) WO2000007104A1 (de)

Families Citing this family (286)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7174352B2 (en) * 1993-06-03 2007-02-06 Network Appliance, Inc. File system image transfer
EP1031928B1 (de) 1993-06-04 2005-05-18 Network Appliance, Inc. Verfahren zur Paritätsdarstellung in einem Raid-Untersystem unter Verwendung eines nichtflüchtigen Speichers
JPH11167510A (ja) * 1997-12-04 1999-06-22 Hitachi Ltd レプリケーション方法、レプリケーションツール、および、レプリケーションサーバ
US6654881B2 (en) * 1998-06-12 2003-11-25 Microsoft Corporation Logical volume mount manager
US6574591B1 (en) 1998-07-31 2003-06-03 Network Appliance, Inc. File systems image transfer between dissimilar file systems
US6119244A (en) 1998-08-25 2000-09-12 Network Appliance, Inc. Coordinating persistent status information with multiple file servers
US6466952B2 (en) * 1999-04-08 2002-10-15 Hewlett-Packard Company Method for transferring and indexing data from old media to new media
US7363359B1 (en) * 1999-05-26 2008-04-22 Fujitsu Limited Element management system with automatic remote backup of network elements' local storage
DE60038448T2 (de) 1999-10-14 2009-04-02 Bluearc Uk Ltd. Vorrichtung und verfahren zur hardware-ausführung oder hardware-beschleunigung von betriebssystemfunktionen
TW454120B (en) * 1999-11-11 2001-09-11 Miralink Corp Flexible remote data mirroring
US6684231B1 (en) * 1999-11-29 2004-01-27 Microsoft Corporation Migration of friendly volumes
US6553387B1 (en) 1999-11-29 2003-04-22 Microsoft Corporation Logical volume configuration data management determines whether to expose the logical volume on-line, off-line request based on comparison of volume epoch numbers on each extents of the volume identifiers
US6651075B1 (en) * 2000-02-16 2003-11-18 Microsoft Corporation Support for multiple temporal snapshots of same volume
US6647473B1 (en) * 2000-02-16 2003-11-11 Microsoft Corporation Kernel-based crash-consistency coordinator
US6741978B1 (en) * 2000-04-12 2004-05-25 Intel Corporation Accessing file data stored in non-volatile re-programmable semiconductor memories
US6711595B1 (en) * 2000-05-09 2004-03-23 Openwave Systems Inc. Method and apparatus for sharing standard template library objects among processes
US6732180B1 (en) * 2000-08-08 2004-05-04 The University Of Tulsa Method to inhibit the identification and retrieval of proprietary media via automated search engines utilized in association with computer compatible communications network
US6728922B1 (en) 2000-08-18 2004-04-27 Network Appliance, Inc. Dynamic data space
US6636879B1 (en) 2000-08-18 2003-10-21 Network Appliance, Inc. Space allocation in a write anywhere file system
US7072916B1 (en) 2000-08-18 2006-07-04 Network Appliance, Inc. Instant snapshot
US6654912B1 (en) 2000-10-04 2003-11-25 Network Appliance, Inc. Recovery of file system data in file servers mirrored file system volumes
US6728735B1 (en) 2001-03-12 2004-04-27 Network Appliance, Inc. Restartable dump that produces a consistent filesystem on tapes
US6889228B1 (en) 2001-03-29 2005-05-03 Network Appliance, Inc. Cascading support for mirrored volumes
US6668264B1 (en) 2001-04-03 2003-12-23 Network Appliance, Inc. Resynchronization of a target volume with a source volume
US7139817B1 (en) 2001-06-12 2006-11-21 Network Appliance, Inc. Managing configuration information for multiple devices
US7613806B2 (en) * 2001-06-28 2009-11-03 Emc Corporation System and method for managing replication sets of data distributed over one or more computer systems
US20030004920A1 (en) * 2001-06-28 2003-01-02 Sun Microsystems, Inc. Method, system, and program for providing data to an application program from a file in a file system
US20030018657A1 (en) * 2001-07-18 2003-01-23 Imation Corp. Backup of data on a network
JP2005505045A (ja) * 2001-09-28 2005-02-17 コムヴォールト・システムズ・インコーポレーテッド クイックリカバリボリュームを作成及び管理する方法及び装置
US7036043B2 (en) 2001-12-28 2006-04-25 Storage Technology Corporation Data management with virtual recovery mapping and backward moves
US20030131253A1 (en) * 2001-12-28 2003-07-10 Martin Marcia Reid Data management appliance
US6839819B2 (en) * 2001-12-28 2005-01-04 Storage Technology Corporation Data management appliance
US7085785B2 (en) 2002-02-15 2006-08-01 International Business Machines Corporation Writable file system snapshot with ditto address feature
US6959310B2 (en) 2002-02-15 2005-10-25 International Business Machines Corporation Generating data set of the first file system by determining a set of changes between data stored in first snapshot of the first file system, and data stored in second snapshot of the first file system
US6829617B2 (en) * 2002-02-15 2004-12-07 International Business Machines Corporation Providing a snapshot of a subset of a file system
US6748504B2 (en) 2002-02-15 2004-06-08 International Business Machines Corporation Deferred copy-on-write of a snapshot
US7216135B2 (en) 2002-02-15 2007-05-08 International Business Machines Corporation File system for providing access to a snapshot dataset where disk address in the inode is equal to a ditto address for indicating that the disk address is invalid disk address
US7043503B2 (en) * 2002-02-15 2006-05-09 International Business Machines Corporation Ditto address indicating true disk address for actual data blocks stored in one of an inode of the file system and subsequent snapshot
US7349908B2 (en) * 2002-02-21 2008-03-25 International Business Machines Corporation Method for specifying a dynamic construct in a storage management system
JP2003248605A (ja) * 2002-02-26 2003-09-05 Hitachi Ltd ストレージシステム、主記憶システム、副記憶システム、及びそのデータ複写方法
US7143307B1 (en) 2002-03-15 2006-11-28 Network Appliance, Inc. Remote disaster recovery and data migration using virtual appliance migration
US6993539B2 (en) 2002-03-19 2006-01-31 Network Appliance, Inc. System and method for determining changes in two snapshots and for transmitting changes to destination snapshot
US7039663B1 (en) * 2002-04-19 2006-05-02 Network Appliance, Inc. System and method for checkpointing and restarting an asynchronous transfer of data between a source and destination snapshot
JP4215542B2 (ja) * 2002-03-19 2009-01-28 ネットワーク アプライアンス, インコーポレイテッド 2つのスナップショット間の変化を判定して宛先スナップショットに送信するシステム及び方法
US7043485B2 (en) * 2002-03-19 2006-05-09 Network Appliance, Inc. System and method for storage of snapshot metadata in a remote file
US7475098B2 (en) 2002-03-19 2009-01-06 Network Appliance, Inc. System and method for managing a plurality of snapshots
US7010553B2 (en) 2002-03-19 2006-03-07 Network Appliance, Inc. System and method for redirecting access to a remote mirrored snapshot
US6857001B2 (en) * 2002-06-07 2005-02-15 Network Appliance, Inc. Multiple concurrent active file systems
US6925541B2 (en) * 2002-06-12 2005-08-02 Hitachi, Ltd. Method and apparatus for managing replication volumes
US7024586B2 (en) * 2002-06-24 2006-04-04 Network Appliance, Inc. Using file system information in raid data reconstruction and migration
US7100089B1 (en) 2002-09-06 2006-08-29 3Pardata, Inc. Determining differences between snapshots
US7191304B1 (en) 2002-09-06 2007-03-13 3Pardata, Inc. Efficient and reliable virtual volume mapping
US7165156B1 (en) 2002-09-06 2007-01-16 3Pardata, Inc. Read-write snapshots
US7743031B1 (en) 2002-09-06 2010-06-22 3Par, Inc. Time and space efficient technique for creating virtual volume copies
US7103597B2 (en) * 2002-10-03 2006-09-05 Mcgoveran David O Adaptive transaction manager for complex transactions and business process
US7568080B2 (en) 2002-10-07 2009-07-28 Commvault Systems, Inc. Snapshot storage and management system with indexing and user interface
US8041735B1 (en) 2002-11-01 2011-10-18 Bluearc Uk Limited Distributed file system and method
US7457822B1 (en) 2002-11-01 2008-11-25 Bluearc Uk Limited Apparatus and method for hardware-based file system
US20040181707A1 (en) * 2003-03-11 2004-09-16 Hitachi, Ltd. Method and apparatus for seamless management for disaster recovery
JP2004280283A (ja) 2003-03-13 2004-10-07 Hitachi Ltd 分散ファイルシステム、分散ファイルシステムサーバ及び分散ファイルシステムへのアクセス方法
US7155460B2 (en) * 2003-03-18 2006-12-26 Network Appliance, Inc. Write-once-read-many storage system and method for implementing the same
JP4320195B2 (ja) 2003-03-19 2009-08-26 株式会社日立製作所 ファイルストレージサービスシステム、ファイル管理装置、ファイル管理方法、id指定型nasサーバ、および、ファイル読出方法
JP4301849B2 (ja) 2003-03-31 2009-07-22 株式会社日立製作所 情報処理方法及びその実施システム並びにその処理プログラム並びにディザスタリカバリ方法およびシステム並びにその処理を実施する記憶装置およびその制御処理方法
US8095511B2 (en) * 2003-06-30 2012-01-10 Microsoft Corporation Database data recovery system and method
US7181480B1 (en) * 2003-06-30 2007-02-20 Microsoft Corporation System and method for managing internet storage
JP4278452B2 (ja) 2003-08-04 2009-06-17 株式会社日立製作所 計算機システム
US7467266B2 (en) 2003-08-05 2008-12-16 International Business Machines Corporation Snapshot management method apparatus and system
US7590807B2 (en) 2003-11-03 2009-09-15 Netapp, Inc. System and method for record retention date in a write once read many storage system
GB2425198B (en) 2003-11-13 2008-04-09 Commvault Systems Inc System and method for performing a snapshot
US7734578B2 (en) 2003-11-13 2010-06-08 Comm Vault Systems, Inc. System and method for performing integrated storage operations
US7133884B1 (en) * 2003-11-26 2006-11-07 Bmc Software, Inc. Unobtrusive point-in-time consistent copies
US20070297349A1 (en) * 2003-11-28 2007-12-27 Ofir Arkin Method and System for Collecting Information Relating to a Communication Network
EP1695220B1 (de) 2003-12-19 2013-02-20 Network Appliance, Inc. System und verfahren zur unterstützung der asynchronen dataduplikation mit sehr kurzen aktualisierungsintervallen
US7478101B1 (en) 2003-12-23 2009-01-13 Networks Appliance, Inc. System-independent data format in a mirrored storage system environment and method for using the same
US7921110B1 (en) 2003-12-23 2011-04-05 Netapp, Inc. System and method for comparing data sets
US7562365B2 (en) * 2004-01-12 2009-07-14 International Business Machines Corporation Random access for processing messages in a message queue
JP2005235058A (ja) 2004-02-23 2005-09-02 Hitachi Ltd スナップショット取得方法、スナップショット取得装置及びスナップショット取得機能を備えたコンピュータシステム
US7966293B1 (en) 2004-03-09 2011-06-21 Netapp, Inc. System and method for indexing a backup using persistent consistency point images
JP4452533B2 (ja) * 2004-03-19 2010-04-21 株式会社日立製作所 システムおよび記憶装置システム
US8086572B2 (en) 2004-03-30 2011-12-27 International Business Machines Corporation Method, system, and program for restoring data to a file
US8266406B2 (en) * 2004-04-30 2012-09-11 Commvault Systems, Inc. System and method for allocation of organizational resources
EP1763755A4 (de) 2004-04-30 2010-04-14 Commvault Systems Inc Hierarchische systeme und verfahren zur bereitstellung einer vereinigten sicht von speicherinformationen
US7818444B2 (en) 2004-04-30 2010-10-19 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
US8868772B2 (en) 2004-04-30 2014-10-21 Echostar Technologies L.L.C. Apparatus, system, and method for adaptive-rate shifting of streaming content
US7882066B1 (en) * 2004-05-25 2011-02-01 Symantec Operating Corporation Probabilistic data locating in sparse data images
US20080140959A1 (en) * 2004-10-12 2008-06-12 Oqo, Inc. One-touch backup system
US7243207B1 (en) 2004-09-27 2007-07-10 Network Appliance, Inc. Technique for translating a pure virtual file system data stream into a hybrid virtual volume
US7194595B1 (en) 2004-09-27 2007-03-20 Network Appliance, Inc. Technique for translating a hybrid virtual volume file system into a pure virtual file system data stream
JP4325524B2 (ja) * 2004-09-29 2009-09-02 日本電気株式会社 スイッチ装置とシステム並びにバックアップ及びリストア方法とプログラム
US7555679B2 (en) * 2004-10-13 2009-06-30 Lenovo (Singapore) Pte Ltd System and method for computer system rejuvenation
US20060085686A1 (en) * 2004-10-13 2006-04-20 International Business Machines Corporation System and method for institutional computer restoration
US7730277B1 (en) 2004-10-25 2010-06-01 Netapp, Inc. System and method for using pvbn placeholders in a flexible volume of a storage system
US7979395B1 (en) * 2004-10-25 2011-07-12 Network Appliance, Inc. Method and system for determining reclaimable space occupied by a set of snapshots
US8959299B2 (en) 2004-11-15 2015-02-17 Commvault Systems, Inc. Using a snapshot as a data source
JP4583150B2 (ja) * 2004-12-06 2010-11-17 株式会社日立製作所 ストレージシステム、及びストレージシステムにおけるスナップショットデータ作成方法
US7831639B1 (en) * 2004-12-22 2010-11-09 Symantec Operating Corporation System and method for providing data protection by using sparse files to represent images of data stored in block devices
US7928591B2 (en) * 2005-02-11 2011-04-19 Wintec Industries, Inc. Apparatus and method for predetermined component placement to a target platform
US7757056B1 (en) 2005-03-16 2010-07-13 Netapp, Inc. System and method for efficiently calculating storage required to split a clone volume
US8683066B2 (en) 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
US20080263180A1 (en) * 2007-04-19 2008-10-23 Hurst Mark B Apparatus, system, and method for resilient content acquisition
US8370514B2 (en) 2005-04-28 2013-02-05 DISH Digital L.L.C. System and method of minimizing network bandwidth retrieved from an external network
US8112605B2 (en) * 2005-05-02 2012-02-07 Commvault Systems, Inc. System and method for allocation of organizational resources
US7613743B1 (en) * 2005-06-10 2009-11-03 Apple Inc. Methods and apparatuses for data protection
EP1915682A4 (de) * 2005-06-29 2014-10-01 Emc Corp Erzeugung eines einzelclient-schnappschusses unter verwendung einer client-hilfseinrichtung
US7506116B2 (en) * 2005-07-19 2009-03-17 International Business Machines Corporation Maintaining and using information on updates to a data group after a logical copy is made of the data group
US7904425B2 (en) * 2005-12-13 2011-03-08 International Business Machines Corporation Generating backup sets to a specific point in time
CA2632935C (en) 2005-12-19 2014-02-04 Commvault Systems, Inc. Systems and methods for performing data replication
US7636743B2 (en) 2005-12-19 2009-12-22 Commvault Systems, Inc. Pathname translation in a data replication system
US7617262B2 (en) 2005-12-19 2009-11-10 Commvault Systems, Inc. Systems and methods for monitoring application data in a data replication system
US7651593B2 (en) 2005-12-19 2010-01-26 Commvault Systems, Inc. Systems and methods for performing data replication
US7962709B2 (en) 2005-12-19 2011-06-14 Commvault Systems, Inc. Network redirector systems and methods for performing data replication
US8655850B2 (en) 2005-12-19 2014-02-18 Commvault Systems, Inc. Systems and methods for resynchronizing information
US7606844B2 (en) 2005-12-19 2009-10-20 Commvault Systems, Inc. System and method for performing replication copy storage operations
US20110010518A1 (en) 2005-12-19 2011-01-13 Srinivas Kavuri Systems and Methods for Migrating Components in a Hierarchical Storage Network
US7725436B1 (en) * 2006-01-12 2010-05-25 Network Appliance, Inc, Method and system for reducing the number of read-only, persistent point-in-time images on a storage server
JP4884041B2 (ja) * 2006-03-15 2012-02-22 株式会社日立製作所 自動拡張可能なボリュームに対して最適なi/oコマンドを発行するストレージシステム及びその制御方法
US7734951B1 (en) 2006-03-20 2010-06-08 Netapp, Inc. System and method for data protection management in a logical namespace of a storage system environment
US7836020B1 (en) * 2006-04-03 2010-11-16 Network Appliance, Inc. Method and apparatus to improve server performance associated with takeover and giveback procedures
US7464238B1 (en) 2006-04-28 2008-12-09 Network Appliance, Inc. System and method for verifying the consistency of mirrored data sets
US7613750B2 (en) * 2006-05-29 2009-11-03 Microsoft Corporation Creating frequent application-consistent backups efficiently
US8726242B2 (en) 2006-07-27 2014-05-13 Commvault Systems, Inc. Systems and methods for continuous data replication
US20080034019A1 (en) * 2006-08-04 2008-02-07 Pavel Cisler System for multi-device electronic backup
US9009115B2 (en) 2006-08-04 2015-04-14 Apple Inc. Restoring electronic information
US8166415B2 (en) 2006-08-04 2012-04-24 Apple Inc. User interface for backup management
US7860839B2 (en) 2006-08-04 2010-12-28 Apple Inc. Application-based backup-restore of electronic information
US8311988B2 (en) 2006-08-04 2012-11-13 Apple Inc. Consistent back up of electronic information
US20080126442A1 (en) * 2006-08-04 2008-05-29 Pavel Cisler Architecture for back up and/or recovery of electronic data
US8370853B2 (en) 2006-08-04 2013-02-05 Apple Inc. Event notification management
US7853566B2 (en) 2006-08-04 2010-12-14 Apple Inc. Navigation of electronic backups
US7856424B2 (en) 2006-08-04 2010-12-21 Apple Inc. User interface for backup management
US7693886B1 (en) 2006-12-15 2010-04-06 Netapp, Inc. Delta query technique
US8868495B2 (en) * 2007-02-21 2014-10-21 Netapp, Inc. System and method for indexing user data on storage systems
US9690790B2 (en) * 2007-03-05 2017-06-27 Dell Software Inc. Method and apparatus for efficiently merging, storing and retrieving incremental data
US8290808B2 (en) 2007-03-09 2012-10-16 Commvault Systems, Inc. System and method for automating customer-validated statement of work for a data storage environment
US7865473B2 (en) * 2007-04-02 2011-01-04 International Business Machines Corporation Generating and indicating incremental backup copies from virtual copies of a data set
US7925749B1 (en) 2007-04-24 2011-04-12 Netapp, Inc. System and method for transparent data replication over migrating virtual servers
US8671076B2 (en) 2007-05-08 2014-03-11 Bmc Software, Inc. Database recovery using logs applied to consistent copies
US8745523B2 (en) 2007-06-08 2014-06-03 Apple Inc. Deletion in electronic backups
US20080307017A1 (en) * 2007-06-08 2008-12-11 Apple Inc. Searching and Restoring of Backups
US8099392B2 (en) 2007-06-08 2012-01-17 Apple Inc. Electronic backup of applications
US8307004B2 (en) 2007-06-08 2012-11-06 Apple Inc. Manipulating electronic backups
US8468136B2 (en) 2007-06-08 2013-06-18 Apple Inc. Efficient data backup
US8429425B2 (en) * 2007-06-08 2013-04-23 Apple Inc. Electronic backup and restoration of encrypted data
US8010900B2 (en) 2007-06-08 2011-08-30 Apple Inc. User interface for electronic backup
US8725965B2 (en) * 2007-06-08 2014-05-13 Apple Inc. System setup for electronic backup
US8195702B2 (en) * 2007-07-30 2012-06-05 Oracle International Corporation Online index builds and rebuilds without blocking locks
US8326814B2 (en) 2007-12-05 2012-12-04 Box, Inc. Web-based file management system and service
US8190760B2 (en) * 2008-01-15 2012-05-29 Echostar Advanced Technologies L.L.C. System and method of managing multiple video players
US9832442B2 (en) * 2008-01-15 2017-11-28 Echostar Technologies Llc System and method of managing multiple video players executing on multiple devices
US8060479B1 (en) 2008-03-28 2011-11-15 Symantec Corporation Systems and methods for transparently restoring data using file streaming
US7882342B1 (en) 2008-03-31 2011-02-01 Symantec Corporation Systems and methods for imaging a computer system
US20090319772A1 (en) * 2008-04-25 2009-12-24 Netapp, Inc. In-line content based security for data at rest in a network storage system
US9395929B2 (en) * 2008-04-25 2016-07-19 Netapp, Inc. Network storage server with integrated encryption, compression and deduplication capability
US8589697B2 (en) 2008-04-30 2013-11-19 Netapp, Inc. Discarding sensitive data from persistent point-in-time image
US8117464B1 (en) 2008-04-30 2012-02-14 Netapp, Inc. Sub-volume level security for deduplicated data
GB2463329B (en) 2008-09-10 2013-02-20 Echostar Advanced Technologies L L C Set-top box emulation system
US8321401B2 (en) 2008-10-17 2012-11-27 Echostar Advanced Technologies L.L.C. User interface with available multimedia content from multiple multimedia websites
JP4886918B1 (ja) 2008-10-30 2012-02-29 インターナショナル・ビジネス・マシーンズ・コーポレーション フラッシュコピー・プロセスを処理する方法、ならびにそのためのシステム、およびコンピュータ・プログラム
US9495382B2 (en) 2008-12-10 2016-11-15 Commvault Systems, Inc. Systems and methods for performing discrete data replication
US8204859B2 (en) 2008-12-10 2012-06-19 Commvault Systems, Inc. Systems and methods for managing replicated database data
US9009066B2 (en) * 2009-02-12 2015-04-14 Echostar Technologies L.L.C. Advertisement management for live internet multimedia content
US8954390B1 (en) * 2009-04-29 2015-02-10 Netapp, Inc. Method and system for replication in storage systems
US10410222B2 (en) * 2009-07-23 2019-09-10 DISH Technologies L.L.C. Messaging service for providing updates for multimedia content of a live event delivered over the internet
US8719767B2 (en) 2011-03-31 2014-05-06 Commvault Systems, Inc. Utilizing snapshots to provide builds to developer computing devices
US9203816B2 (en) * 2009-09-04 2015-12-01 Echostar Technologies L.L.C. Controlling access to copies of media content by a client device
US8595191B2 (en) 2009-12-31 2013-11-26 Commvault Systems, Inc. Systems and methods for performing data management operations using snapshots
US9338523B2 (en) * 2009-12-21 2016-05-10 Echostar Technologies L.L.C. Audio splitting with codec-enforced frame sizes
WO2011082132A1 (en) 2009-12-31 2011-07-07 Commvault Systems, Inc. Systems and methods for analyzing snapshots
US9510029B2 (en) 2010-02-11 2016-11-29 Echostar Advanced Technologies L.L.C. Systems and methods to provide trick play during streaming playback
US8504517B2 (en) 2010-03-29 2013-08-06 Commvault Systems, Inc. Systems and methods for selective data replication
US8725698B2 (en) 2010-03-30 2014-05-13 Commvault Systems, Inc. Stub file prioritization in a data replication system
US8352422B2 (en) 2010-03-30 2013-01-08 Commvault Systems, Inc. Data restore systems and methods in a replication environment
US8504515B2 (en) 2010-03-30 2013-08-06 Commvault Systems, Inc. Stubbing systems and methods in a data replication environment
US8589347B2 (en) 2010-05-28 2013-11-19 Commvault Systems, Inc. Systems and methods for performing data replication
US8566640B2 (en) 2010-07-19 2013-10-22 Veeam Software Ag Systems, methods, and computer program products for instant recovery of image level backups
US8943026B2 (en) 2011-01-14 2015-01-27 Apple Inc. Visual representation of a local backup
US8984029B2 (en) 2011-01-14 2015-03-17 Apple Inc. File system management
WO2012099617A1 (en) 2011-01-20 2012-07-26 Box.Net, Inc. Real time notification of activities that occur in a web-based collaboration environment
US8577842B1 (en) 2011-09-19 2013-11-05 Amazon Technologies, Inc. Distributed computer system snapshots and instantiation thereof
US8880475B2 (en) * 2011-04-08 2014-11-04 International Business Machines Corporation Reusing snapshots in a network data management protocol backup operation
US9578354B2 (en) 2011-04-18 2017-02-21 Verizon Patent And Licensing Inc. Decoupled slicing and encoding of media content
US9063912B2 (en) 2011-06-22 2015-06-23 Box, Inc. Multimedia content preview rendering in a cloud content management system
WO2013009328A2 (en) 2011-07-08 2013-01-17 Box.Net, Inc. Collaboration sessions in a workspace on cloud-based content management system
US9652741B2 (en) 2011-07-08 2017-05-16 Box, Inc. Desktop application for access and interaction with workspaces in a cloud-based content management system and synchronization mechanisms thereof
US9197718B2 (en) 2011-09-23 2015-11-24 Box, Inc. Central management and control of user-contributed content in a web-based collaboration environment and management console thereof
US8515902B2 (en) 2011-10-14 2013-08-20 Box, Inc. Automatic and semi-automatic tagging features of work items in a shared workspace for metadata tracking in a cloud-based content management system with selective or optional user contribution
US9098474B2 (en) 2011-10-26 2015-08-04 Box, Inc. Preview pre-generation based on heuristics and algorithmic prediction/assessment of predicted user behavior for enhancement of user experience
US8990307B2 (en) 2011-11-16 2015-03-24 Box, Inc. Resource effective incremental updating of a remote client with events which occurred via a cloud-enabled platform
US8965850B2 (en) 2011-11-18 2015-02-24 Dell Software Inc. Method of and system for merging, storing and retrieving incremental backup data
GB2500152A (en) 2011-11-29 2013-09-11 Box Inc Mobile platform file and folder selection functionalities for offline access and synchronization
US9019123B2 (en) 2011-12-22 2015-04-28 Box, Inc. Health check services for web-based collaboration environments
US9609340B2 (en) 2011-12-28 2017-03-28 Verizon Patent And Licensing Inc. Just-in-time (JIT) encoding for streaming media content
US9904435B2 (en) 2012-01-06 2018-02-27 Box, Inc. System and method for actionable event generation for task delegation and management via a discussion forum in a web-based collaboration environment
US11232481B2 (en) 2012-01-30 2022-01-25 Box, Inc. Extended applications of multimedia content previews in the cloud-based content management system
US8789090B1 (en) 2012-02-14 2014-07-22 Uplynk, LLC Advertisement insertion into media content for streaming
US9965745B2 (en) 2012-02-24 2018-05-08 Box, Inc. System and method for promoting enterprise adoption of a web-based collaboration environment
US9195636B2 (en) 2012-03-07 2015-11-24 Box, Inc. Universal file type preview for mobile devices
US9298715B2 (en) 2012-03-07 2016-03-29 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
US9471578B2 (en) 2012-03-07 2016-10-18 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
US9054919B2 (en) 2012-04-05 2015-06-09 Box, Inc. Device pinning capability for enterprise cloud service and storage accounts
US9575981B2 (en) 2012-04-11 2017-02-21 Box, Inc. Cloud service enabled to handle a set of files depicted to a user as a single file in a native operating system
US9342537B2 (en) 2012-04-23 2016-05-17 Commvault Systems, Inc. Integrated snapshot interface for a data storage system
US9396216B2 (en) 2012-05-04 2016-07-19 Box, Inc. Repository redundancy implementation of a system which incrementally updates clients with events that occurred via a cloud-enabled platform
US9691051B2 (en) 2012-05-21 2017-06-27 Box, Inc. Security enhancement through application access control
US8914900B2 (en) 2012-05-23 2014-12-16 Box, Inc. Methods, architectures and security mechanisms for a third-party application to access content in a cloud-based platform
US9027108B2 (en) 2012-05-23 2015-05-05 Box, Inc. Systems and methods for secure file portability between mobile applications on a mobile device
US9021099B2 (en) 2012-07-03 2015-04-28 Box, Inc. Load balancing secure FTP connections among multiple FTP servers
GB2505072A (en) 2012-07-06 2014-02-19 Box Inc Identifying users and collaborators as search results in a cloud-based system
US9792320B2 (en) 2012-07-06 2017-10-17 Box, Inc. System and method for performing shard migration to support functions of a cloud-based service
US9712510B2 (en) 2012-07-06 2017-07-18 Box, Inc. Systems and methods for securely submitting comments among users via external messaging applications in a cloud-based platform
US9473532B2 (en) 2012-07-19 2016-10-18 Box, Inc. Data loss prevention (DLP) methods by a cloud service including third party integration architectures
US9794256B2 (en) 2012-07-30 2017-10-17 Box, Inc. System and method for advanced control tools for administrators in a cloud-based service
US9369520B2 (en) 2012-08-19 2016-06-14 Box, Inc. Enhancement of upload and/or download performance based on client and/or server feedback information
US8745267B2 (en) 2012-08-19 2014-06-03 Box, Inc. Enhancement of upload and/or download performance based on client and/or server feedback information
US9558202B2 (en) 2012-08-27 2017-01-31 Box, Inc. Server side techniques for reducing database workload in implementing selective subfolder synchronization in a cloud-based environment
US9135462B2 (en) 2012-08-29 2015-09-15 Box, Inc. Upload and download streaming encryption to/from a cloud-based platform
US9195519B2 (en) 2012-09-06 2015-11-24 Box, Inc. Disabling the self-referential appearance of a mobile application in an intent via a background registration
US9117087B2 (en) 2012-09-06 2015-08-25 Box, Inc. System and method for creating a secure channel for inter-application communication based on intents
US9311071B2 (en) 2012-09-06 2016-04-12 Box, Inc. Force upgrade of a mobile application via a server side configuration file
US9292833B2 (en) 2012-09-14 2016-03-22 Box, Inc. Batching notifications of activities that occur in a web-based collaboration environment
US10200256B2 (en) 2012-09-17 2019-02-05 Box, Inc. System and method of a manipulative handle in an interactive mobile user interface
US9553758B2 (en) 2012-09-18 2017-01-24 Box, Inc. Sandboxing individual applications to specific user folders in a cloud-based service
US10915492B2 (en) 2012-09-19 2021-02-09 Box, Inc. Cloud-based platform enabled with media content indexed for text-based searches and/or metadata extraction
US9959420B2 (en) 2012-10-02 2018-05-01 Box, Inc. System and method for enhanced security and management mechanisms for enterprise administrators in a cloud-based environment
US9495364B2 (en) 2012-10-04 2016-11-15 Box, Inc. Enhanced quick search features, low-barrier commenting/interactive features in a collaboration platform
US9705967B2 (en) 2012-10-04 2017-07-11 Box, Inc. Corporate user discovery and identification of recommended collaborators in a cloud platform
US9665349B2 (en) 2012-10-05 2017-05-30 Box, Inc. System and method for generating embeddable widgets which enable access to a cloud-based collaboration platform
US20140297869A1 (en) 2012-10-11 2014-10-02 Uplynk, LLC Adaptive streaming cost management
JP5982343B2 (ja) 2012-10-17 2016-08-31 ボックス インコーポレイテッドBox, Inc. クラウドベース環境におけるリモートキー管理
US9756022B2 (en) 2014-08-29 2017-09-05 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
US10235383B2 (en) 2012-12-19 2019-03-19 Box, Inc. Method and apparatus for synchronization of items with read-only permissions in a cloud-based environment
US10379988B2 (en) 2012-12-21 2019-08-13 Commvault Systems, Inc. Systems and methods for performance monitoring
US9396245B2 (en) 2013-01-02 2016-07-19 Box, Inc. Race condition handling in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US9953036B2 (en) 2013-01-09 2018-04-24 Box, Inc. File system monitoring in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US9886346B2 (en) 2013-01-11 2018-02-06 Commvault Systems, Inc. Single snapshot for multiple agents
US20140201140A1 (en) 2013-01-11 2014-07-17 Commvault Systems, Inc. Data synchronization management
EP2755151A3 (de) 2013-01-11 2014-09-24 Box, Inc. Funktionalitäten, Merkmale und der Benutzeroberfläche eines Synchronisationsclient zu einer Cloud-basierten Umgebung
EP2757491A1 (de) 2013-01-17 2014-07-23 Box, Inc. Konfliktlösung, Wiederversuchbedingungsverwaltung und Handhabung von Problemdateien für den Synchronisations-Client zu einer Plattform auf Cloud-Basis
US10229170B2 (en) 2013-03-13 2019-03-12 Dreamworks Animation L.L.C. File system manager for customized resource allocation
US10725968B2 (en) 2013-05-10 2020-07-28 Box, Inc. Top down delete or unsynchronization on delete of and depiction of item synchronization with a synchronization client to a cloud-based platform
US10846074B2 (en) 2013-05-10 2020-11-24 Box, Inc. Identification and handling of items to be ignored for synchronization with a cloud-based platform by a synchronization client
US9633037B2 (en) 2013-06-13 2017-04-25 Box, Inc Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform
US9805050B2 (en) 2013-06-21 2017-10-31 Box, Inc. Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform
US10110656B2 (en) 2013-06-25 2018-10-23 Box, Inc. Systems and methods for providing shell communication in a cloud-based platform
US10229134B2 (en) 2013-06-25 2019-03-12 Box, Inc. Systems and methods for managing upgrades, migration of user data and improving performance of a cloud-based platform
US9535924B2 (en) 2013-07-30 2017-01-03 Box, Inc. Scalability improvement in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US10509527B2 (en) 2013-09-13 2019-12-17 Box, Inc. Systems and methods for configuring event-based automation in cloud-based collaboration platforms
US9535909B2 (en) 2013-09-13 2017-01-03 Box, Inc. Configurable event-based automation architecture for cloud-based collaboration platforms
GB2518298A (en) 2013-09-13 2015-03-18 Box Inc High-availability architecture for a cloud-based concurrent-access collaboration platform
US8892679B1 (en) 2013-09-13 2014-11-18 Box, Inc. Mobile device, methods and user interfaces thereof in a mobile device platform featuring multifunctional access and engagement in a collaborative environment provided by a cloud-based platform
US9213684B2 (en) 2013-09-13 2015-12-15 Box, Inc. System and method for rendering document in web browser or mobile device regardless of third-party plug-in software
US9704137B2 (en) 2013-09-13 2017-07-11 Box, Inc. Simultaneous editing/accessing of content by collaborator invitation through a web-based or mobile application to a cloud-based collaboration platform
US10866931B2 (en) 2013-10-22 2020-12-15 Box, Inc. Desktop application for accessing a cloud collaboration platform
US9753812B2 (en) 2014-01-24 2017-09-05 Commvault Systems, Inc. Generating mapping information for single snapshot for multiple applications
US9639426B2 (en) 2014-01-24 2017-05-02 Commvault Systems, Inc. Single snapshot for multiple applications
US9632874B2 (en) 2014-01-24 2017-04-25 Commvault Systems, Inc. Database application backup in single snapshot for multiple applications
US9495251B2 (en) 2014-01-24 2016-11-15 Commvault Systems, Inc. Snapshot readiness checking and reporting
US9411821B1 (en) * 2014-03-27 2016-08-09 Emc Corporation Block-based backups for sub-file modifications
US9348827B1 (en) * 2014-03-27 2016-05-24 Emc Corporation File-based snapshots for block-based backups
US10536523B2 (en) 2014-05-11 2020-01-14 Microsoft Technology Licensing, Llc File service using a shared file access-rest interface
US10530854B2 (en) 2014-05-30 2020-01-07 Box, Inc. Synchronization of permissioned content in cloud-based environments
US9602514B2 (en) 2014-06-16 2017-03-21 Box, Inc. Enterprise mobility management and verification of a managed application by a content provider
US10574442B2 (en) 2014-08-29 2020-02-25 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
US9894119B2 (en) 2014-08-29 2018-02-13 Box, Inc. Configurable metadata-based automation and content classification architecture for cloud-based collaboration platforms
US10038731B2 (en) 2014-08-29 2018-07-31 Box, Inc. Managing flow-based interactions with cloud-based shared content
US9774672B2 (en) 2014-09-03 2017-09-26 Commvault Systems, Inc. Consolidated processing of storage-array commands by a snapshot-control media agent
US10042716B2 (en) 2014-09-03 2018-08-07 Commvault Systems, Inc. Consolidated processing of storage-array commands using a forwarder media agent in conjunction with a snapshot-control media agent
US9940378B1 (en) * 2014-09-30 2018-04-10 EMC IP Holding Company LLC Optimizing replication of similar backup datasets
US9558078B2 (en) 2014-10-28 2017-01-31 Microsoft Technology Licensing, Llc Point in time database restore from storage snapshots
US10133495B2 (en) 2014-11-04 2018-11-20 Rubrik, Inc. Converged search and archival system
US9648105B2 (en) 2014-11-14 2017-05-09 Commvault Systems, Inc. Unified snapshot storage management, using an enhanced storage manager and enhanced media agents
US9448731B2 (en) 2014-11-14 2016-09-20 Commvault Systems, Inc. Unified snapshot storage management
US10083196B2 (en) * 2015-02-04 2018-09-25 Delphix Corporation Creating secure virtual databases storing masked data
US10311150B2 (en) 2015-04-10 2019-06-04 Commvault Systems, Inc. Using a Unix-based file system to manage and serve clones to windows-based computing clients
US10275320B2 (en) 2015-06-26 2019-04-30 Commvault Systems, Inc. Incrementally accumulating in-process performance data and hierarchical reporting thereof for a data stream in a secondary copy operation
US10248494B2 (en) 2015-10-29 2019-04-02 Commvault Systems, Inc. Monitoring, diagnosing, and repairing a management database in a data storage management system
US10368109B2 (en) 2015-12-29 2019-07-30 DISH Technologies L.L.C. Dynamic content delivery routing and related methods and systems
US10503753B2 (en) 2016-03-10 2019-12-10 Commvault Systems, Inc. Snapshot replication operations based on incremental block change tracking
CN107438110A (zh) * 2017-09-15 2017-12-05 湖南新云网科技有限公司 一种基于透明计算的终端数据迁移方法及系统
US11334438B2 (en) 2017-10-10 2022-05-17 Rubrik, Inc. Incremental file system backup using a pseudo-virtual disk
US11372729B2 (en) 2017-11-29 2022-06-28 Rubrik, Inc. In-place cloud instance restore
US10831591B2 (en) 2018-01-11 2020-11-10 Commvault Systems, Inc. Remedial action based on maintaining process awareness in data storage management
US10732885B2 (en) 2018-02-14 2020-08-04 Commvault Systems, Inc. Block-level live browsing and private writable snapshots using an ISCSI server
US20200192572A1 (en) 2018-12-14 2020-06-18 Commvault Systems, Inc. Disk usage growth prediction system
US11042318B2 (en) 2019-07-29 2021-06-22 Commvault Systems, Inc. Block-level data replication
US11809285B2 (en) 2022-02-09 2023-11-07 Commvault Systems, Inc. Protecting a management database of a data storage management system to meet a recovery point objective (RPO)

Family Cites Families (181)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3813529A (en) 1972-10-25 1974-05-28 Singer Co Digital high order interpolator
US3893024A (en) 1973-11-15 1975-07-01 Itt Method and apparatus for fault testing multiple stage networks
US4075691A (en) 1975-11-06 1978-02-21 Bunker Ramo Corporation Communication control unit
US4075704A (en) 1976-07-02 1978-02-21 Floating Point Systems, Inc. Floating point data processor for high speech operation
US4156907A (en) 1977-03-02 1979-05-29 Burroughs Corporation Data communications subsystem
US4399503A (en) 1978-06-30 1983-08-16 Bunker Ramo Corporation Dynamic disk buffer control unit
US4377843A (en) 1979-04-19 1983-03-22 Wescom Switching, Inc. Data distribution interface
US4333144A (en) 1980-02-05 1982-06-01 The Bendix Corporation Task communicator for multiple computer system
US4351023A (en) 1980-04-11 1982-09-21 The Foxboro Company Process control system with improved system security features
US4488231A (en) 1980-09-29 1984-12-11 Honeywell Information Systems Inc. Communication multiplexer having dual microprocessors
JPS5776634A (en) 1980-10-31 1982-05-13 Hitachi Ltd Digital signal processor
FR2500659B1 (fr) 1981-02-25 1986-02-28 Philips Ind Commerciale Dispositif pour l'allocation dynamique des taches d'un ordinateur multiprocesseur
JPS57164340A (en) 1981-04-03 1982-10-08 Hitachi Ltd Information processing method
US4456957A (en) 1981-09-28 1984-06-26 Ncr Corporation Apparatus using a decision table for routing data among terminals and a host system
US4685125A (en) 1982-06-28 1987-08-04 American Telephone And Telegraph Company Computer system with tasking
US4550368A (en) 1982-07-02 1985-10-29 Sun Microsystems, Inc. High-speed memory and memory management system
US4527232A (en) 1982-07-02 1985-07-02 Sun Microsystems, Inc. High-speed memory and memory management system
US4589067A (en) 1983-05-27 1986-05-13 Analogic Corporation Full floating point vector processor with dynamically configurable multifunction pipelined ALU
US4710868A (en) 1984-06-29 1987-12-01 International Business Machines Corporation Interconnect scheme for shared memory local networks
US4814971A (en) 1985-09-11 1989-03-21 Texas Instruments Incorporated Virtual memory recovery system using persistent roots for selective garbage collection and sibling page timestamping for defining checkpoint state
US4719569A (en) 1985-10-11 1988-01-12 Sun Microsystems, Inc. Arbitrator for allocating access to data processing resources
US4825354A (en) 1985-11-12 1989-04-25 American Telephone And Telegraph Company, At&T Bell Laboratories Method of file access in a distributed processing computer network
US4742450A (en) 1986-01-16 1988-05-03 International Business Machines Corporation Method to share copy on write segment for mapped files
US4742447A (en) 1986-01-16 1988-05-03 International Business Machines Corporation Method to control I/O accesses in a multi-tasking virtual memory virtual machine type data processing system
US4761737A (en) 1986-01-16 1988-08-02 International Business Machines Corporation Method to automatically increase the segment size of unix files in a page segmented virtual memory data processing system
US5043871A (en) 1986-03-26 1991-08-27 Hitachi, Ltd. Method and apparatus for database update/recovery
US4761785B1 (en) 1986-06-12 1996-03-12 Ibm Parity spreading to enhance storage access
US4878167A (en) 1986-06-30 1989-10-31 International Business Machines Corporation Method for managing reuse of hard log space by mapping log data during state changes and discarding the log data
US4803621A (en) 1986-07-24 1989-02-07 Sun Microsystems, Inc. Memory access system
US4845609A (en) 1986-07-25 1989-07-04 Systech Corporation Computer communications subsystem using an embedded token-passing network
US4780821A (en) 1986-07-29 1988-10-25 International Business Machines Corp. Method for multiple programs management within a network having a server computer and a plurality of remote computers
JPS6344688A (ja) 1986-08-13 1988-02-25 フアナツク株式会社 画像処理装置
US4819159A (en) 1986-08-29 1989-04-04 Tolerant Systems, Inc. Distributed multiprocess transaction processing system and method
US4783730A (en) 1986-09-19 1988-11-08 Datapoint Corporation Input/output control technique utilizing multilevel memory structure for processor and I/O communication
US4766534A (en) 1986-10-16 1988-08-23 American Telephone And Telegraph Company, At&T Bell Laboratories Parallel processing network and method
US4887204A (en) 1987-02-13 1989-12-12 International Business Machines Corporation System and method for accessing remote files in a distributed networking environment
US4897781A (en) 1987-02-13 1990-01-30 International Business Machines Corporation System and method for using cached data at a local node after re-opening a file at a remote node in a distributed networking environment
US5001628A (en) 1987-02-13 1991-03-19 International Business Machines Corporation Single system image uniquely defining an environment for each user in a data processing system
US4827411A (en) 1987-06-15 1989-05-02 International Business Machines Corporation Method of maintaining a topology database
US4965772A (en) 1987-06-15 1990-10-23 International Business Machines Corporation Method and apparatus for communication network alert message construction
US5319780A (en) 1987-10-19 1994-06-07 International Business Machines Corporation System that implicitly locks a subtree or explicitly locks a node based upon whether or not an explicit lock request is issued
NZ226733A (en) 1987-12-21 1990-05-28 Honeywell Bull Coupling incompatible cpu to data processing system
US5055999A (en) 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
US4875159A (en) 1987-12-22 1989-10-17 Amdahl Corporation Version management system using plural control fields for synchronizing two versions of files in a multiprocessor system
US5251308A (en) 1987-12-22 1993-10-05 Kendall Square Research Corporation Shared memory multiprocessor with data hiding and post-store
US5049873A (en) 1988-01-29 1991-09-17 Network Equipment Technologies, Inc. Communications network state and topology monitor
US4914583A (en) 1988-04-13 1990-04-03 Motorola, Inc. Method of indicating processes resident within a cell of a data processing system
JP2547069B2 (ja) 1988-04-20 1996-10-23 富士通株式会社 故障診断方式
US5043876A (en) 1988-05-27 1991-08-27 International Business Machines Corporation N-level file shadowing and recovery in a shared file system
US4937763A (en) 1988-09-06 1990-06-26 E I International, Inc. Method of system state analysis
US5065354A (en) 1988-09-16 1991-11-12 Compaq Computer Corporation Queued posted-write disk write method with improved error handling
US5001712A (en) 1988-10-17 1991-03-19 Unisys Corporation Diagnostic error injection for a synchronous bus system
US5067099A (en) 1988-11-03 1991-11-19 Allied-Signal Inc. Methods and apparatus for monitoring system performance
US4984272A (en) 1988-11-30 1991-01-08 At&T Bell Laboratories Secure file handling in a computer operating system
JPH02165241A (ja) 1988-12-19 1990-06-26 Toshiba Corp ファイルアクセス方式
US4969118A (en) 1989-01-13 1990-11-06 International Business Machines Corporation Floating point unit for calculating A=XY+Z having simultaneous multiply and add
US5222217A (en) 1989-01-18 1993-06-22 International Business Machines Corporation System and method for implementing operating system message queues with recoverable shared virtual storage
CA1323448C (en) 1989-02-24 1993-10-19 Terrence C. Miller Method and apparatus for translucent file system
US5113442A (en) 1989-03-06 1992-05-12 Lachman Associates, Inc. Method and apparatus for providing access control in a secure operating system
US5144659A (en) 1989-04-19 1992-09-01 Richard P. Jones Computer file protection system
US5018144A (en) 1989-04-28 1991-05-21 International Business Machines Corporation Logic performance verification and transition fault detection
US5182805A (en) 1989-07-14 1993-01-26 Ncr Corporation Method and system for determining copy-on-write condition
US5218696A (en) 1989-07-24 1993-06-08 International Business Machines Corporation Method for dynamically expanding and rapidly accessing file directories
US5454099A (en) 1989-07-25 1995-09-26 International Business Machines Corporation CPU implemented method for backing up modified data sets in non-volatile store for recovery in the event of CPU failure
US5163148A (en) 1989-08-11 1992-11-10 Digital Equipment Corporation File backup system for producing a backup copy of a file which may be updated during backup
US5163131A (en) 1989-09-08 1992-11-10 Auspex Systems, Inc. Parallel i/o network file server architecture
US5276867A (en) 1989-12-19 1994-01-04 Epoch Systems, Inc. Digital data storage system with improved data migration
US5218695A (en) 1990-02-05 1993-06-08 Epoch Systems, Inc. File server system having high-speed write execution
EP0444376B1 (de) 1990-02-27 1996-11-06 International Business Machines Corporation Nachrichtenführungseinrichtung durch mehrere Rechner, die mittels eines geteilten intelligenten Speichers gekoppelt sind
US5134619A (en) 1990-04-06 1992-07-28 Sf2 Corporation Failure-tolerant mass storage system
US5195100A (en) 1990-03-02 1993-03-16 Micro Technology, Inc. Non-volatile memory storage of write operation identifier in data sotrage device
US5088081A (en) 1990-03-28 1992-02-11 Prime Computer, Inc. Method and apparatus for improved disk access
US5230047A (en) 1990-04-16 1993-07-20 International Business Machines Corporation Method for balancing of distributed tree file structures in parallel computing systems to enable recovery after a failure
JPH0731582B2 (ja) 1990-06-21 1995-04-10 インターナショナル・ビジネス・マシーンズ・コーポレイション パリティ保護データを回復するための方法および装置
JP2875598B2 (ja) 1990-06-27 1999-03-31 富士通株式会社 ノードにおけるネットワーク経路設定方式
DE4021510A1 (de) 1990-07-05 1992-01-09 Bosch Gmbh Robert Spannvorrichtung zum festspannen einer schutzhaube am spannhals einer handwerkzeugmaschine
US5261044A (en) 1990-09-17 1993-11-09 Cabletron Systems, Inc. Network management system using multifunction icons for information display
JPH04130950A (ja) 1990-09-21 1992-05-01 Toshiba Corp ネットワークシステム
US5208813A (en) 1990-10-23 1993-05-04 Array Technology Corporation On-line reconstruction of a failed redundant array system
US5274807A (en) 1990-11-01 1993-12-28 At&T Bell Laboratories Method for reducing magnetic storage volume for computer disk image backup
US5255270A (en) 1990-11-07 1993-10-19 Emc Corporation Method of assuring data write integrity on a data storage device
AU8683991A (en) 1990-11-09 1992-05-14 Array Technology Corporation Logical partitioning of a redundant array storage system
US5155835A (en) 1990-11-19 1992-10-13 Storage Technology Corporation Multilevel, hierarchical, dynamically mapped data storage subsystem
JP2603757B2 (ja) 1990-11-30 1997-04-23 富士通株式会社 アレ−ディスク装置の制御方法
US5235601A (en) 1990-12-21 1993-08-10 Array Technology Corporation On-line restoration of redundancy information in a redundant array system
US5274799A (en) 1991-01-04 1993-12-28 Array Technology Corporation Storage device array architecture with copyback cache
DE4129809C2 (de) 1991-01-28 2000-08-17 Bosch Gmbh Robert Mehrrechnersystem
US5239640A (en) 1991-02-01 1993-08-24 International Business Machines Corporation Data storage system and method including data and checksum write staging storage
US5317731A (en) 1991-02-25 1994-05-31 International Business Machines Corporation Intelligent page store for concurrent and consistent access to a database by a transaction processor and a query processor
DE69225822T2 (de) 1991-03-12 1998-10-08 Hewlett Packard Co Auf Hypothesen und Schlussfolgerungen basiertes Diagnoseverfahren von Datenkommunikationsnetzwerken
US5276840A (en) 1991-03-22 1994-01-04 Acer Incorporated Disk caching method for writing data from computer memory including a step of writing a plurality of physically adjacent blocks in a single I/O operation
JP2923702B2 (ja) 1991-04-01 1999-07-26 株式会社日立製作所 記憶装置及びそのデータ修復方法
US5574843A (en) 1991-04-26 1996-11-12 Escom Ag Methods and apparatus providing for a presentation system for multimedia applications
US5278838A (en) 1991-06-18 1994-01-11 Ibm Corp. Recovery from errors in a redundant array of disk drives
US5369757A (en) 1991-06-18 1994-11-29 Digital Equipment Corporation Recovery logging in the presence of snapshot files by ordering of buffer pool flushing
SE470031B (sv) 1991-06-20 1993-10-25 Icl Systems Ab System och metod för övervakning och förändring av driften av ett datorsystem
US5313647A (en) 1991-09-20 1994-05-17 Kendall Square Research Corporation Digital data processor with improved checkpointing and forking
US5321837A (en) 1991-10-11 1994-06-14 International Business Machines Corporation Event handling mechanism having a process and an action association process
US5502836A (en) 1991-11-21 1996-03-26 Ast Research, Inc. Method for disk restriping during system operation
US5379417A (en) 1991-11-25 1995-01-03 Tandem Computers Incorporated System and method for ensuring write data integrity in a redundant array data storage system
GB9126779D0 (en) 1991-12-17 1992-02-12 Int Computers Ltd Security mechanism for a computer system
US5313626A (en) 1991-12-17 1994-05-17 Jones Craig S Disk drive array with efficient background rebuilding
US5333305A (en) 1991-12-27 1994-07-26 Compaq Computer Corporation Method for improving partial stripe write performance in disk array subsystems
US5442752A (en) 1992-01-24 1995-08-15 International Business Machines Corporation Data storage method for DASD arrays using striping based on file length
US5305326A (en) 1992-03-06 1994-04-19 Data General Corporation High availability disk arrays
EP0559488B1 (de) 1992-03-06 1998-08-19 Data General Corporation Datenbehandlung in einem System mit einem Prozessor zur Steuerung des Zugangs zu einer Mehrzahl von Datenspeicherplatten
AU653670B2 (en) 1992-03-10 1994-10-06 Data General Corporation Improvements for high availability disk arrays
WO1993021636A1 (en) 1992-04-10 1993-10-28 Avid Technology, Inc. A method and apparatus for representing and editing multimedia compositions
US5448718A (en) 1992-04-20 1995-09-05 International Business Machines Corporation Method and system for time zero backup session security
JPH0619771A (ja) 1992-04-20 1994-01-28 Internatl Business Mach Corp <Ibm> 異種のクライアントによる共用ファイルのファイル管理機構
US5708668A (en) 1992-05-06 1998-01-13 International Business Machines Corporation Method and apparatus for operating an array of storage devices
US5315602A (en) 1992-08-12 1994-05-24 Digital Equipment Corporation Optimized stripe detection for redundant arrays of disk drives
JPH06319005A (ja) 1993-01-13 1994-11-15 Canon Inf Syst Inc メッセージ配信方法及び装置
US5627842A (en) 1993-01-21 1997-05-06 Digital Equipment Corporation Architecture for system-wide standardized intra-module and inter-module fault testing
EP0612015A1 (de) 1993-02-16 1994-08-24 International Business Machines Corporation Verbesserte Speicherplattenanordnung mit besonderen Paritätsgruppen für Datenblöcke mit hoher Aktualisierungsfrequenz
US5870764A (en) 1993-05-12 1999-02-09 Apple Computer, Inc. Method of managing a data structure for concurrent serial and parallel revision of a work
US5963962A (en) 1995-05-31 1999-10-05 Network Appliance, Inc. Write anywhere file-system layout
JP3751018B2 (ja) 1993-06-03 2006-03-01 ネットワーク・アプライアンス・インコーポレイテッド ライトエニウエアファイルシステムレイアウト
US7174352B2 (en) 1993-06-03 2007-02-06 Network Appliance, Inc. File system image transfer
EP1031928B1 (de) 1993-06-04 2005-05-18 Network Appliance, Inc. Verfahren zur Paritätsdarstellung in einem Raid-Untersystem unter Verwendung eines nichtflüchtigen Speichers
US5463642A (en) 1993-06-29 1995-10-31 Mitsubishi Semiconductor America, Inc. Method and apparatus for determining error location
AU682523B2 (en) 1993-07-01 1997-10-09 Legent Corporation System and method for distributed storage management on networked computer systems
US5497343A (en) 1993-08-05 1996-03-05 Hyundai Electronics America Reducing the number of carry-look-ahead adder stages in high-speed arithmetic units, structure and method
US5572711A (en) 1993-09-28 1996-11-05 Bull Hn Information Systems Inc. Mechanism for linking together the files of emulated and host system for access by emulated system users
US5689641A (en) 1993-10-01 1997-11-18 Vicor, Inc. Multimedia collaboration system arrangement for routing compressed AV signal through a participant site without decompressing the AV signal
US5485455A (en) 1994-01-28 1996-01-16 Cabletron Systems, Inc. Network having secure fast packet switching and guaranteed quality of service
US5430729A (en) 1994-04-04 1995-07-04 Motorola, Inc. Method and apparatus for adaptive directed route randomization and distribution in a richly connected communication network
US5555244A (en) 1994-05-19 1996-09-10 Integrated Network Corporation Scalable multimedia network
US5642501A (en) 1994-07-26 1997-06-24 Novell, Inc. Computer method and apparatus for asynchronous ordered operations
GB2308406B (en) 1994-09-26 1998-06-24 James Hayden Bradley Re-usable breakaway safety joint
US5649152A (en) 1994-10-13 1997-07-15 Vinca Corporation Method and system for providing a static snapshot of data stored on a mass storage system
US5634010A (en) 1994-10-21 1997-05-27 Modulus Technologies, Inc. Managing and distributing data objects of different types between computers connected to a network
US5644718A (en) 1994-11-10 1997-07-01 At&T Corporation Apparatus using circuit manager to associate a single circuit with each host application where the circuit is shared by a plurality of client applications
EP0713183A3 (de) 1994-11-18 1996-10-02 Microsoft Corp Netzwerkunabhängige Schattendateien
US5678007A (en) 1994-11-22 1997-10-14 Microsoft Corporation Method and apparatus for supporting multiple outstanding network requests on a single connection
US6085234A (en) 1994-11-28 2000-07-04 Inca Technology, Inc. Remote file services network-infrastructure cache
US5689701A (en) 1994-12-14 1997-11-18 International Business Machines Corporation System and method for providing compatibility between distributed file system namespaces and operating system pathname syntax
US5617568A (en) 1994-12-14 1997-04-01 International Business Machines Corporation System and method for supporting file attributes on a distributed file system without native support therefor
US5826102A (en) 1994-12-22 1998-10-20 Bell Atlantic Network Services, Inc. Network arrangement for development delivery and presentation of multimedia applications using timelines to integrate multimedia objects and program objects
US5666353A (en) 1995-03-21 1997-09-09 Cisco Systems, Inc. Frame based traffic policing for a digital switch
US5696486A (en) 1995-03-29 1997-12-09 Cabletron Systems, Inc. Method and apparatus for policy-based alarm notification in a distributed network management environment
US5678006A (en) 1995-04-27 1997-10-14 Cisco Systems, Inc. Network switch having network management agent functions distributed among multiple trunk and service modules
US5761669A (en) 1995-06-06 1998-06-02 Microsoft Corporation Controlling access to objects on multiple operating systems
US5675782A (en) 1995-06-06 1997-10-07 Microsoft Corporation Controlling access to objects on multiple operating systems
US5768582A (en) 1995-06-07 1998-06-16 International Business Machines Corporation Computer program product for domained incremental changes storage and retrieval
US5628005A (en) 1995-06-07 1997-05-06 Microsoft Corporation System and method for providing opportunistic file access in a network environment
US5956712A (en) 1995-06-07 1999-09-21 International Business Machines Corporation Byte range locking in a distributed environment
US5668958A (en) 1995-09-12 1997-09-16 International Business Machines Corporation Heterogeneous filing system with common API and reconciled file management rules
US5694163A (en) 1995-09-28 1997-12-02 Intel Corporation Method and apparatus for viewing of on-line information service chat data incorporated in a broadcast television program
US5907672A (en) 1995-10-04 1999-05-25 Stac, Inc. System for backing up computer disk volumes with error remapping of flawed memory addresses
US5740367A (en) 1995-11-03 1998-04-14 Spilo; Michael L. Method and apparatus for improving the throughput of a local area network
US5854903A (en) 1995-11-07 1998-12-29 Lucent Technologies Inc. Optimization method for routing and logical network design in multi-service networks
US5737523A (en) 1996-03-04 1998-04-07 Sun Microsystems, Inc. Methods and apparatus for providing dynamic network file system client authentication
US5956491A (en) 1996-04-01 1999-09-21 Marks; Daniel L. Group communications multiplexing system
US5825877A (en) 1996-06-11 1998-10-20 International Business Machines Corporation Support for portable trusted software
US5828876A (en) 1996-07-31 1998-10-27 Ncr Corporation File system for a clustered processing system
US5828839A (en) 1996-11-14 1998-10-27 Interactive Broadcaster Services Corp. Computer network chat room based on channel broadcast in real time
US5875444A (en) 1996-12-10 1999-02-23 International Business Machines Corporation Computer file system check and repair utility
US5915087A (en) 1996-12-12 1999-06-22 Secure Computing Corporation Transparent security proxy for unreliable message exchange protocols
US5996106A (en) 1997-02-04 1999-11-30 Micron Technology, Inc. Multi bank test mode for memory devices
WO1998035306A1 (en) * 1997-02-11 1998-08-13 Connected Corporation File comparison for data backup and file synchronization
US5950225A (en) 1997-02-28 1999-09-07 Network Appliance, Inc. Fly-by XOR for generating parity for data gleaned from a bus
JP3088331B2 (ja) 1997-04-10 2000-09-18 北陸日本電気ソフトウェア株式会社 故障シミュレーション方法
US5931935A (en) 1997-04-15 1999-08-03 Microsoft Corporation File system primitive allowing reprocessing of I/O requests by multiple drivers in a layered driver I/O system
US5983364A (en) 1997-05-12 1999-11-09 System Soft Corporation System and method for diagnosing computer faults
US5856981A (en) 1997-05-15 1999-01-05 Lucent Technologies Inc. Reliable connection oriented networks
US5876278A (en) 1997-05-29 1999-03-02 Cheng; Henry Cooling device
US6067541A (en) 1997-09-17 2000-05-23 Microsoft Corporation Monitoring document changes in a file system of documents with the document change information stored in a persistent log
USH1860H (en) 1997-09-26 2000-09-05 Dsc/Celcore, Inc. Fault testing in a telecommunications switching platform
US5996086A (en) 1997-10-14 1999-11-30 Lsi Logic Corporation Context-based failover architecture for redundant servers
US6073089A (en) 1997-10-22 2000-06-06 Baker; Michelle Systems and methods for adaptive profiling, fault detection, and alert generation in a changing environment which is measurable by at least two different measures of state
JP4363676B2 (ja) 1997-10-31 2009-11-11 株式会社東芝 コンピュータシステム
US6101585A (en) 1997-11-04 2000-08-08 Adaptec, Inc. Mechanism for incremental backup of on-line files
US6076148A (en) 1997-12-26 2000-06-13 Emc Corporation Mass storage subsystem and backup arrangement for digital data processing system which permits information to be backed up while host computer(s) continue(s) operating in connection with information stored on mass storage subsystem
US6026402A (en) 1998-01-07 2000-02-15 Hewlett-Packard Company Process restriction within file system hierarchies
US6078932A (en) 1998-01-13 2000-06-20 International Business Machines Corporation Point-in-time backup utilizing multiple copy technologies
US6223306B1 (en) * 1998-02-27 2001-04-24 Hewlett-Packard Company Method and apparatus for testing X servers
US6088694A (en) 1998-03-31 2000-07-11 International Business Machines Corporation Continuous availability and efficient backup for externally referenced objects
US5890959A (en) 1998-03-31 1999-04-06 Digital Equipment Corporation High efficiency blower system with integral backflow preventor
US6279011B1 (en) 1998-06-19 2001-08-21 Network Appliance, Inc. Backup and restore for heterogeneous file server environment
US6119244A (en) 1998-08-25 2000-09-12 Network Appliance, Inc. Coordinating persistent status information with multiple file servers

Also Published As

Publication number Publication date
EP1099165A1 (de) 2001-05-16
ATE278216T1 (de) 2004-10-15
DE69920713D1 (de) 2004-11-04
EP1099165B1 (de) 2004-09-29
US6604118B2 (en) 2003-08-05
US20010044807A1 (en) 2001-11-22
WO2000007104A1 (en) 2000-02-10

Similar Documents

Publication Publication Date Title
DE69920713T2 (de) Datei-system bild-übertragung
DE60025749T2 (de) Dateisystemabbildübertragung zwischen ungleichen dateisystemen
DE60213867T2 (de) Vorrichtung zur verwaltung von datenreplikation
DE60318687T2 (de) Herstellen einer gespiegelten kopie unter verwendung inkrementeller divergenz
DE602004002216T2 (de) Verfahren, system und programm für eine inkrementelle virtuelle kopie
DE112011100112B4 (de) Pufferspeicher-platte in blitzkopie-kaskade
DE112011100534B4 (de) Mehrstufiger Sicherungsprozess
DE112010004947B4 (de) Wiederherstellung einer vollständigen Systemsicherung und inkrementeller Sicherungen unter Verwendung von mehreren gleichzeitigen Datenströmen von Einheiten
DE60019173T2 (de) Verfahren und system zum hochparallelen protokollierungs- und wiederherstellungsbetrieb in hauptspeicher-transaktionsverarbeitungssystemen
DE69911930T2 (de) Hochverfügbare dateiprozessoren
DE69724846T2 (de) Mehrweg-Ein/Ausgabespeichersysteme mit Mehrweg-Ein/Ausgabeanforderungsmechanismus
DE10112941B4 (de) System und Verfahren für das parallele Lesen von primären und sekundären Sicherungen zur Wiederherstellung mehrerer gemeinsam benutzter Datenbankdateien
DE60317815T2 (de) Verfahren und system zur bereitstellung einer dauerhaften speicherung von benutzerdaten
DE602005000819T2 (de) Aufrechterhaltung der konsistenz einer fernkopie unter verwendung von virtualisierung
DE69833815T2 (de) Verbesserter Disk-Log mit verteiltem Schreibsystem
DE102005012358B4 (de) Datenschutz unter Verwendung von Daten, die in Schnappschüsse verteilt sind
DE60313468T2 (de) Speicherdienste und -systeme
DE4220198A1 (de) Wiederherstellungsprotokollieren bei vorliegen von schnappschuss-dateien durch ordnen des pufferspeicherladens
DE102008015662A1 (de) Beseitigung
DE102009019271A1 (de) Übertragen von Sequenzzahlen für das Wiederherstellen nach Stromausfall bei einem nichtflüchtigen Speicher
DE102004056216A1 (de) Fernkopiersystem und Speichersystem
DE102012201154B4 (de) Transaktionsspeicher
DE10128883A1 (de) Verfahren und System für die Verteilung von Anwendungsdaten auf verteilte Datenbanken mit verschiedenen Formaten
DE112009004772T5 (de) System für eine steuerung der version von virtuellen platten
DE112021002894T5 (de) On-the- fly- pit-auswahl bei disarter-recovery in der cloud

Legal Events

Date Code Title Description
8364 No opposition during term of opposition