DE69425658T2 - Anordnung eines dateisystems zum beschreiben beliebiger bereiche - Google Patents
Anordnung eines dateisystems zum beschreiben beliebiger bereicheInfo
- Publication number
- DE69425658T2 DE69425658T2 DE69425658T DE69425658T DE69425658T2 DE 69425658 T2 DE69425658 T2 DE 69425658T2 DE 69425658 T DE69425658 T DE 69425658T DE 69425658 T DE69425658 T DE 69425658T DE 69425658 T2 DE69425658 T2 DE 69425658T2
- Authority
- DE
- Germany
- Prior art keywords
- file
- inode
- block
- file system
- disk
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 33
- 238000011010 flushing procedure Methods 0.000 claims description 5
- 239000000872 buffer Substances 0.000 description 153
- 238000010586 diagram Methods 0.000 description 58
- 238000012545 processing Methods 0.000 description 8
- 238000011084 recovery Methods 0.000 description 6
- 238000010367 cloning Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 101100138677 Arabidopsis thaliana NPF8.1 gene Proteins 0.000 description 1
- 101001084254 Homo sapiens Peptidyl-tRNA hydrolase 2, mitochondrial Proteins 0.000 description 1
- 101150059273 PTR1 gene Proteins 0.000 description 1
- 102100030867 Peptidyl-tRNA hydrolase 2, mitochondrial Human genes 0.000 description 1
- 101100262635 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) UBR1 gene Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000010420 art technique Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99954—Version management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Library & Information Science (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
- Die Erfindung betrifft das Gebiet von Verfahren und Vorrichtungen zum Unterhalten eines konsistenten Dateisystems und zum Schaffen von ausschließlich lesbaren Kopien des Dateisystems.
- Sämtliche Dateisysteme müssen auch bei Systemausfall Konsistenz bewahren. Im Stand der Technik wurde zu diesem Zweck eine Reihe unterschiedlicher Konsistenzmethoden eingesetzt.
- Eine der schwierigsten und zeitraubendsten Anforderungen bei der Verwaltung jedes Dateiservers ist die Anfertigung von Sicherungen der Dateidaten. Traditionelle Lösungen bestanden darin, eine Kopie der Daten auf Band oder andere Offline-Datenträger zu bringen. Bei einigen Dateisystemen muß beim Sicherungsprozeß der Datenserver offline gesetzt werden, um sicher zu gehen, daß der Sicherungsvorgang vollständig konsistent ist. Ein jüngerer Fortschritt bei der Datensicherung ist die Möglichkeit, ein Dateisystem rasch zu "klonen" (d. i. ein zum Stand der Technik gehöriges Verfahren zum Erzeugen einer nur lesbaren Kopie des Dateisystems auf Platte), und eine Datensicherung anhand des Klons, und nicht aus dem aktiven Dateisystem zu erstellen. Bei diesem Typ von Datei kann der Datenserver beim Sicherungsbetrieb online bleiben.
- Eine herkömmliche Datenbank (Dateisystem) ist von Chutani, et al. offenbart in seinem Artikel mit dem Titel The Episode File System, USENIX, Winter 1992, Seiten 43-59. Dieser Artikel beschreibt das Episode- Dateisystem, bei dem es sich um eine Datenbank unter Verwendung von Meta-Daten (das heißt moden-Tabellen, Verzeichnissen, Momentaufnahmen und indirekten Blöcken) handelt. Es kann als eigenständige oder als verteilte Datenbank verwendet werden. Episode unterhält eine Mehrzahl separater Datenbank-Hirarchien. Episode nimmt kollektiv auf mehrere Datenbanken als "Aggregat" Bezug. Insbesondere schafft Episode einen Klon jeder Datenbank zur langsamen Änderung von Daten.
- In Episode enthält jede logische Datenbank eine "Anoden"-Tabelle. Eine Anoden-Tabelle ist äquivalent einer in Datenbanken wie dem Berkeley Fast File System verwendeten Inoden-Tabelle. Es handelt sich um eine 252-Byte-Struktur. Anoden dienen zum Speichern sämtlicher Benutzerdaten sowie von Meta-Daten innerhalb des Episode-Dateisystems. Eine Anode beschreibt das Hauptverzeichnis einer Datenbank einschließlich Hilfsdateien und Verzeichnissen. Jedes derartige Dateisystem wird in Episode als eine "Dateimenge" (Fileset) referenziert. Sämtliche Daten innerhalb einer Dateimenge können geortet werden, indem iterativ durch die Anoden-Tabelle gegangen und jede Datei ihrerseits verarbeitet wird. Episode erzeugt eine ausschließlich lesbare Kopie einer Datenbank, die hier als "Klon" bezeichnet wird, und sie nutzt gemeinsam Daten mit dem aktiven Dateisystem unter Einsatz von Copy-On-Write-Methoden (COW- Methoden; Kopieren nach Schreiben).
- Episode verwendet eine Protokollmethode zur Wiedererlangung einer oder mehrerer Datenbanken nach einem Systemzusammenbruch. Das Protokollieren garantiert, daß die Datei-Meta-Daten konsistent sind. Eine Momentaufnahmen-Tabelle enthält Information darüber, ob jeder Block innerhalb der Datenbank zugeordnet ist oder nicht. Außerdem zeigt die Momentaufnahmen-Tabelle an, ob jeder Block protokolliert ist oder nicht. Sämtliche Meta-Daten-Aktualisierungen werden in einem Protokoll-"Behälter" aufgezeichnet, der das Transaktions-Protokoll des Aggregats speichert. Das Protokoll wird als Kreispuffer von Platten-Blöcken verarbeitet. Die Transaktions-Protokollierung von Episode verwendet Protokolliermethoden, die ursprünglich für Datenbanken mit dem Zweck entwickelt wurden, Dateisystem-Konsistenz zu garantieren. Diese Methode macht sorgfältigen Gebrauch von Schreibbefehlen sowie einem Wiederherstellungsprogramm, die von Datenbankmethoden innerhalb des Wiederherstellungsprogramms unterstützt werden.
- Andere zum Stand der Technik zählende Systeme enthalten JFS von IBM und VxFS von Veritas Corporation und machen Gebrauch von unterschiedlichen Formen der Transaktions-Protokollierung, um den Wiederherstellungsprozeß zu beschleunigen, allerdings erfordern sie immer noch einen Wiederherstellungsprozeß.
- Ein weiteres bekanntes Verfahren wird als Methode des "geordneten Schreibens" bezeichnet. Es schreibt sämtliche Platten-Blöcke in sorgfältig festgelegter Reihenfolge, so daß Schaden minimiert wird, wenn es zu einem Systemausfall kommt, während eine Reihe von zueinander in Beziehung stehender Schreibvorgänge durchgeführt wird. Dieser Stand der Technik versucht sicherzustellen, daß möglicherweise auftretende Inkonsistenzen harmlos sind. Beispielsweise werden einige wenige ungenutzte Blöcke oder Inoden als zugeordnet markiert. Der Hauptnachteil dieser Methode besteht darin, daß die dadurch der Plattenordnung auferlegten Restriktionen eine hohe Leistungsfähigkeit kaum zulassen.
- Ein weiteres bekanntes System ist eine Weiterentwicklung des zweiten bekannten Verfahrens, bezeichnet als Methode des "geordneten Schreibens mit Wiederherstellung". Bei diesem Verfahren können Inkonsistenzen möglicherweise schädlich sein. Allerdings ist die Reihenfolge von Schreibvorgängen derart beschränkt, daß sich Inkonsistenzen auffinden und mit Hilfe eines Wiederherstellungsprogramms fixieren lassen. Beispiele für dieses Verfahren umfassen das ursprüngliche UNIX-Dateisystem sowie das Berkeley Fast File System (FFS). Diese Methode verringert die Platten-Reihenfolge ausreichend, um die Leistungseinbuße der Platten- Auftragserteilung zu beseitigen. Ein weiterer Nachteil besteht darin, daß der Wiederherstellungsprozeß zeitraubend ist. Typischerweise ist er proportional zur Größe des Dateisystems. Die Wiederherstellung eines S GB umfassenden FFS-Dateisystems erfordert daher beispielsweise zur Durchführung eine Stunde oder mehr.
- Fig. 1 ist ein den Stand der Technik zeigendes Diagramm für das Episode-Dateisystem und veranschaulicht den Einsatz von Kopieren-Nach- Schreiben-Methoden (COW-Methoden), um einen Dateimengen-Klon zu erzeugen. Eine Anode 110 enthält einen ersten Zeiger (Pointer) 110A mit einem gesetzten COW-Bit. Der Zeiger 110A referenziert den Datenblock 114 direkt. Die Anode 110 enthält einen zweiten Zeiger 110B, dessen COW-Bit gelöscht ist. Der Zeiger 110B der Anode referenziert den Block 112 indirekt. Der indirekte Block 112 enthält einen Zeiger 112A, der den Datenblock 124 direkt referenziert. Das COW-Bit des Zeigers 112A ist gesetzt. Der indirekte Block 112 enthält einen zweiten Zeiger 112B, der den Datenblock 126 referenziert. Das COW-Bit des Zeigers 112B ist gelöscht.
- Eine Klon-Anode 120 enthält einen ersten Zeiger 120A, der auf den Datenblock 114 zeigt. Das COW-Bit des Zeigers 120A ist gelöscht. Der zweite Zeiger 120B der Klon-Anode 120 referenziert den indirekten Block 122. Das COW-Bit des Zeigers 120B ist gelöscht. Der indirekte Block 122 enthält einen Zeiger 122A, der den Datenblock 124 referenziert. Das COW- Bit des Zeigers 122A ist gelöscht.
- Wie in Fig. 1 gezeigt ist, enthält jeder direkte Zeiger 110A, 112A-112B, 120A und 122A und jeder indirekte Zeiger 110B und 120B in dem Episode-Dateisystem ein COW-Bit. Blöcke, die nicht modifiziert wurden, sind sowohl im aktiven Dateisystem als auch in dem Klon enthalten, und bei ihnen sind die COW-Bits gesetzt (1). Das COW-Bit ist gelöscht (0), wenn ein von dem Zeiger referenzierter Block modifiziert wurde und damit Teil des aktiven Dateisystems ist, nicht jedoch Teil des Klons.
- Wird ein Kopieren-Nach-Schreiben-Block modifiziert, so wird gemäß Fig. 1 ein neuer Block zugeordnet und aktualisiert. Das COW-Flag in dem Zeiger auf diesen neuen Block wird dann gesetzt. Das COW-Bit des Zeigers 110A der ursprünglichen Anode 110 wird gelöscht. Wenn also die Klon-Anode 120 erzeugt wird, referenziert die Klon-Anode 120 auch den Datenblock 114. Sowohl die Original-Anode 110 als auch die Klon-Anode 120 referenzieren den Datenblock 114. Auch der Datenblock 124 wurde modifiziert, angedeutet durch ein gelöschtes COW-Bit des Zeigers 112A in dem ursprünglichen indirekten Block 112. Wenn folglich die Klon-Anode erzeugt wird, wird der indirekte Block 122 erzeugt. Der Zeiger 122A des indirekten Blocks 122 referenziert den Datenblock 124, und das COW-Bit des Zeigers 122A ist gelöscht. Sowohl der indirekte Block 122 der Original-Anode 110 als auch der indirekte Block 122 der Klon-Anode 120 referenzieren den Datenblock 124.
- Fig. 1 zeigt das Kopieren einer Anode zum Erzeugen einer Klon-Anode 120 für eine einzelne Datei. Allerdings müssen Klon-Anoden für jede Datei erzeugt werden, die geänderte Datenblöcke in dem Dateisystem enthält. Zur Zeit des Klonens müssen sämtliche Inoden kopiert werden. Das Erzeugen von Klon-Anoden für jede modifizierte Datei innerhalb des Dateisystems kann signifikante Mengen an Plattenspeicherplatz verbrauchen. Außerdem ist Episode nicht in der Lage, Mehrfach-Klone zu handhaben, da jeder Zeiger lediglich ein einziges COW-Bit aufweist. Ein einzelnes COW-Bit ist nicht in der Lage, mehr als einen Klon zu unterscheiden. Bei mehr als einem Klon gibt es kein zweites COW-Bit, welches gesetzt werden könnte.
- Ein Dateisatz "Klon" ist eine ausschließlich lesbare Kopie eines aktiven Dateisatzes, wohingegen der aktive Dateisatz selbst sowohl lesbar als auch beschreibbar ist. Klone werden unter Verwendung von COW-Methoden implementiert und nutzen gemeinsam Datenblöcke mit einem aktiven Dateisatz auf Block-Für-Block-Basis. Episode implementiert das Klonen dadurch, daß jede in einem Dateisatz gespeicherte Anode kopiert wird. Nach dem anfänglichen Klonen zeigen sowohl die beschreibbare Anode des aktiven Dateisatzes als auch die geklonte Anode auf denselben Datenblock oder dieselben Datenblöcke. Allerdings sind Plattenadressen für direkte und indirekte Blöcke innerhalb der Original-Anode als COW gekennzeichnet. Deshalb hat eine Aktualisierung des beschreibbaren Dateisatzes keinen Einfluß auf den Klon. Wird ein COW-Block modifiziert, so wird ein neuer Block in dem Dateisystem zugewiesen und mit der Modifizierung aktualisiert. Das COW-Flag in dem Zeiger dieses neuen Blocks wird gelöscht. Das bekannte Episode-System erzeugt Klone, die die gesamte moden-Datei sowie sämtliche indirekten Blöcke innerhalb des Dateisystems duplizieren. Episode dupliziert sämtliche moden und indirekten Blöcke derart, daß es ein Kopieren-Nach-Schreiben-(COW-)Bit in sämtlichen Zeigern auf Blöcke setzen kann, die sowohl von dem aktiven Dateisystem als auch von dem Klon benutzt werden. Bei Episode ist es wichtig, diese Blöcke zu kennzeichnen, so daß neue, in das aktive Dateisystem eingeschriebene Daten die alten Daten, welche Teil des Klons sind, und die deshalb nicht geändert werden dürfen, nicht überschreiben.
- Das Erzeugen eines Klons im Stand der Technik kann bis zu 32 MB auf eine 1-GB-Platte verbrauchen. Der Stand der Technik verwendet 256 MB Plattenspeicherraum auf einer 1-GB-Platte (für 4-KB-Blöcke), um acht Klone des Dateisystems zu halten. Damit kann der Stand der Technik keine großen Anzahlen von Klonen zum Verhindern von Datenverlusten verwenden. Statt dessen erleichterte er üblicherweise das Sichern des Dateisystems auf eine Hilfsspeichereinrichtung, verschieden von dem Plattenlaufwerk, so zum Beispiel ein Band-Sicherungsgerät. Klone werden zum Sichern eines Dateisystems in einem konsistenten Zustand in dem Zeitpunkt verwendet, zu dem der Klon hergestellt wird. Durch Klonen des Dateisystems kann der Klon zur Sicherheit auf das Hilfsspeichersystem gebracht werden, ohne daß dabei das aktive Dateisystem abgeschaltet wird, wodurch Benutzer an einer Benutzung des Dateisystems gehindert würden.
- Damit ermöglichen es Klone den Benutzern, weiterhin auf ein aktives Dateisystem zuzugreifen, während das Dateisystem selbst in einem konsistenten Zustand gesichert wird. Anschließend wird der Klon gelöscht, nachdem die Sicherung abgeschlossen ist. Episode ist nicht in der Lage, mehrere Klone zu führen, da jeder Zeiger nur ein COW-Bit enthält. Ein einzelnes COW-Bit ist nicht im Stande, mehr als einen Klon zu unterscheiden. Bei mehr als einem Klon gibt es kein zweites COW-Bit, welches gesetzt werden könnte.
- Ein Nachteil des bekannten Systems zum Erzeugen von Dateisystem- Klonen besteht darin, daß das System sämtliche Inoden und sämtliche indirekten Blöcke innerhalb des Dateisystems dupliziert. Bei einem System mit zahlreichen kleinen Dateien können die Inoden allein einen signifikanten Prozentsatz des gesamten Plattenspeicherraums eines Dateisystems belegen. In einem 1-GB-Dateisystem zum Beispiel, welches mit 4-KB- Dateien gefüllt ist, gibt es 32 MB Inoden. Das Erzeugen eines Episode- Klons verbraucht also einen signifikanten Anteil des Plattenspeicherraums und erzeugt große Mengen (das heißt zahlreiche Megabytes) an Plattenverkehr. Als Ergebnis dieser Zustände nimmt das Erzeugen eines Klons eines Dateisystems einen beträchtlichen Zeitraum bis zur Vervollständigung in Anspruch.
- Ein weiterer Nachteil des bekannten Systems besteht darin, daß das System die Erzeugung mehrerer Klone desselben Dateisystems schwierig macht. Im Ergebnis neigen die Klone dazu, einzeln für Kurzzeitoperationen verwendet zu werden, so zum Beispiel zum Sichern des Dateisystems auf Band, um dann gelöscht zu werden.
- Die in den geänderten Ansprüchen definierte Erfindung schafft ein Verfahren zum Halten eines Dateisystems in einem konsistenten Zustand sowie zum Erzeugen von ausschließlich lesbaren Kopien eines Dateisystems. Änderungen des Dateisystems werden streng gesteuert, um das Dateisystem in einem konsistenten Zustand zu halten. Das Dateisystem schreitet von einem selbst-konsistenten Zustand zu einem weiteren selbst- konsistenten Zustand weiter. Die Menge an selbst-konsistenten Blöcken auf einer Platte, die durch die Haupt-mode beherrscht wird, wird als Konsistenzpunkt (CP) bezeichnet. Zum Implementieren von Konsistenzpunkten schreibt WAFL stets neue Daten in nicht-zugewiesene Blöcke auf der Platte. Es überschreibt niemals existierende Daten. Ein neuer Konsistenzpunkt tritt auf, wenn der Finsfo-Block dadurch aktualisiert wird, daß eine neue Haupt-mode für die Inodendatei in ihn eingeschrieben wird. Solange die Haupt-mode nicht aktualisiert wird, ändert sich also der Zustand des Dateisystems auf der Platte nicht.
- Die vorliegende Erfindung schafft außerdem Schnappschüsse, bei denen es sich um virtuelle, ausschließlich lesbare Kopien des Dateisystems handelt. Ein Schnappschuß nimmt keinen Plattenspeicherplatz in Anspruch, wenn er am Anfang erzeugt wird. Er ist derart ausgestaltet, daß zahlreiche verschiedene Schnappschüsse für ein und dasselbe Dateisystem erzeugt werden können. Im Gegensatz zu herkömmlichen Dateisystemen, die einen Klon durch Duplizieren des gesamten Inoden-Dateisatzes und sämtlicher indirekter Blöcke duplizieren, dupliziert die vorliegende Erfindung nur diejenige mode, die die Inodendatei beschreibt. Der also tatsächlich benötigte Plattenspeicherplatz für eine Momentaufnahme beträgt lediglich 128 Bytes, die zum Speichern der duplizierten mode verwendet werden. Die 128 Bytes, die erfindungsgemäß für eine Momentaufnahme oder einen Schnappschuß benötigt werden, sind deutlich weniger als die zahlreichen Megabytes, die für einen Klon im Stand der Technik benötigt werden.
- Die vorliegende Erfindung verhindert, daß neue Daten, die in das aktive Dateisystem geschrieben werden, "alte" Daten, die Teil eines oder mehrerer Schnappschüsse sind, überschreiben. Notwendig ist, daß alte Daten solange nicht überschrieben werden, wie sie Teil eines Schnappschusses sind. Erreicht wird dies durch Verwendung einer freien Mehrfachbit- Blockabbildung. Die meisten zum Stand der Technik gehörigen Dateisysteme verwenden eine freie Blockabbildung mit einem einzelnen Bit pro Block, um anzugeben, ob ein Block zugewiesen ist oder nicht. Die vorliegende Erfindung verwendet eine Blockabbildung mit 32-Bit-Einträgen. Ein erstes Bit gibt an, ob ein Block von dem aktiven Dateisystem verwendet wird, und 20 verbleibende Bits werden für bis zu 20 Schnappschüsse verwendet, allerdings können einige Bits der 31 Bits für andere Zwecke verwendet werden.
- Fig. 1 ist ein Blockdiagramm eines zum Stand der Technik zählenden "Klons" eines Dateisystems.
- Fig. 2 ist ein Diagramm, welches eine Liste von moden mit unsauberen Puffern veranschaulicht.
- Fig. 3 ist ein Diagramm, das eine platteninterne mode des WAFL darstellt.
- Fig. 4A-4D sind Diagramme, die platteninterne Inoden von WAFL mit unterschiedlichen Umwege-Ebenen veranschaulichen.
- Fig. 5 ist ein Flußdiagramm des Verfahrens zum Erzeugen eines Konsistenzpunkts.
- Fig. 6 ist ein Flußdiagramm zur Veranschaulichung des Schritts 530 aus Fig. 5 zum Erzeugen eines Konsistenzpunkts.
- Fig. 7 ist ein Flußdiagramm zum Veranschaulichen des Schritts 530 in Fig. 5 zum Erzeugen eines Schnappschusses.
- Fig. 8 ist ein Diagramm zum Veranschaulichen einer Intern-Inode des WAFL gemäß der Erfindung.
- Fig. 9A-9D sind Diagramme, die Intern-Inoden des WAFL mit unterschiedlichen Umwege-Ebenen gemäß der Erfindung darstellen.
- Fig. 10 ist ein Diagramm zum Veranschaulichen einer Intern-Inode 1020 für eine Datei.
- Fig. 11A-11D sind Diagramme zum Veranschaulichen einer Blockabbilddatei (blkmap) gemäß der Erfindung.
- Fig. 12 ist ein Diagramm zum Veranschaulichen einer erfindungsgemäßen Inoden-Datei.
- Fig. 13A-13B sind Diagramme zum Veranschaulichen einer Inodenabbild-Datei (inomap) gemäß der Erfindung.
- Fig. 14 ist ein Diagramm zum Veranschaulichen eines erfindungsgemäßen Verzeichnisses.
- Fig. 15 ist ein Diagramm zum Veranschaulichen einer Dateisysteminformationsstruktur (fsinfo).
- Fig. 16 ist ein Diagramm zum Veranschaulichen des WAFL- Dateisystems.
- Fig. 17A-17L sind Diagramme zum Veranschaulichen des Erzeugens eines Konsistenzpunkts.
- Fig. 18A-18C sind Diagramme zum Veranschaulichen des Erzeugens eines Schnappschusses.
- Fig. 19 ist ein Diagramm zum Veranschaulichen von Änderungen einer Inodendatei.
- Fig. 20 ist ein Diagramm zum Veranschaulichen von fsinfo-Blöcken, die zum Halten eines Dateisystems in einem konsistenten Zustand verwendet werden.
- Fig. 21A-21F sind detaillierte Diagramme zum Veranschaulichen des Erzeugens eines Schnappschusses.
- Fig. 22 ist ein Diagramm zum Veranschaulichen eines aktiven WAFL- Dateisystems mit drei Schnappschüssen, die jeweils eine gemeinsame Datei referenzieren; und
- Fig. 23A-23B sind Diagramme zum Veranschaulichen der Aktualisierung einer Zugriffszeit.
- Beschrieben wird ein System zum Erzeugen von ausschließlich lesbaren Kopien eines Dateisystems (einer Datenbank). In der folgenden Beschreibung werden zahlreiche spezifische Einzelheiten, so zum Beispiel Anzahl und Beschaffenheit von Platten, Plattenblock-Größen etc. im einzelnen beschrieben, um eine ausführlichere Beschreibung der Erfindung anzubieten. Es ist jedoch für den Fachmann ersichtlich, daß die Erfindung auch ohne diese spezifischen Einzelheiten ausgeführt werden kann. Andererseits wurden bekannte Merkmale nicht im einzelnen beschrieben, um die Erfindung nicht in unnötiger Weise zu verundeutlichen.
- Die vorliegende Erfindung macht Gebrauch von einem Write-Anywhere- Dateisystem-Layout (WAFL von Write Anywhere File-system Layout), also von einer Dateisystem-Konfiguration, die ein Aufzeichnen oder Schreiben an beliebiger Stelle ermöglicht. Das Plattenformatsystem beruht auf Blöcken (das heißt 4 KB Blöcken, die keine Fragmente besitzen), verwendet Inoden zum Beschreiben seiner Dateien, und enthält Verzeichnisse, die einfach speziell formatierte Dateien sind. WAFL verwendet Dateien zum Speichern von Meta-Daten, welche das Layout des Dateisystems beschreiben. Die WAFL-Meta-Dateien beinhalten: eine Inodendatei, eine Blockabbild-Datei (blkmap) und eine Inodenabbilddatei (inomap). Die Inodendatei enthält die Inodentabelle für das Dateisystem. Die blkmap- Datei gibt an, welche Platten-Blöcke zugeordnet sind. Die inomap-Datei gibt an, welche Inoden zugeordnet sind. Weiter unten werden Unterscheidungsmerkmale für platteninterne und WAFL-interne Inoden diskutiert.
- WAFL-Inoden unterscheiden sich von herkömmlichen moden. Jede WAFL-Inode verweist auf 16 Blöcke mit gleicher Umwegeebene. Eine Blocknummer ist 4 Bytes lang. Die Verwendung von Blocknummern mit gleicher Umwegeebene in einer Diode erleichtert die rekursive Verarbeitung einer Datei. Fig. 3 ist ein Blockdiagramm, das eine platteninterne mode 310 veranschaulicht. Die platteninterne mode 310 besteht aus Standard-Inodeninformation 310A sowie 16 Blocknummern-Einträgen 31 OB gleicher Umwegeebene. Die Inodeninformation 310A umfaßt Information über den Inhaber einer Datei, Berechtigungen, Dateigröße, Zugriffszeit, etc., wie dies dem Fachmann alles bekannt ist. Im Gegensatz zu bekannten moden, die eine Mehrzahl von Blocknummern unterschiedlicher Umwegeebenen aufweisen, ist die platteninterne mode 310 anders. Durch Halten sämtlicher Blocknummerneinträge 31 OB innerhalb einer mode 310 auf gleicher Umwegeebene wird die Implementierung des Dateisystems vereinfacht.
- Für eine kleine Datei mit einer Größe von 64 Bytes oder weniger werden Daten direkt in der mode selbst anstatt in Form von 16 Blocknummern gespeichert. Fig. 4A ist ein Diagramm, das eine mode 410 der Ebene 0 veranschaulicht, die der in Fig. 3 gezeigten mode 310 ähnelt. Allerdings enthält die mode 410 64 Bytes Daten 410B anstelle von 16 Blocknummern 3108. Deshalb brauchen Plattenblöcke bei sehr kleinen Dateien nicht zugewiesen zu werden.
- Für eine Datei mit einer Größe von weniger als 64 KB nimmt jede der 16 Blocknummern direkt auf einen 4-KB-Datenblock Bezug. Fig. 4B ist ein Diagramm, welches eine mode 310 der Ebene 1 mit 16 Blocknummern 310B veranschaulicht. Die Blocknummerneinträge 0-15 verweisen auf entsprechende 4-KB-Datenblöcke 420A-420C.
- Für eine Datei mit einer Größe, die gleich oder größer ist als 64 KB und kleiner als 64 MB ist, nimmt jede der 16 Blocknummern Bezug auf einen einfach-indirekten Block. Seinerseits enthält jeder einzeln indirekte 4-KB- Block 1024 Blocknummern, die 4 KB-Datenblöcke referenzieren. Fig. 4C ist ein Diagramm, welches eine Inode der Ebene 4, 310, veranschaulicht, welche 16 Blocknummern 310B enthält, die 16 einfach-indirekte Blöcke 430A-430C referenzieren. Wie in Fig. 4C gezeigt ist, zeigt der Blocknummerneintrag 0 auf einen einfach-indirekten Block 430A. Der einfach-indirekte Block 430A enthält 1024 Blocknummern, die auf 4-KB- Datenblöcke 440A-440C Bezug nehmen. In ähnlicher Weise kann jeder einfach-indirekte Block 430B-430C jeweils bis zu 1024 Datenblöcke adressieren.
- Bei einer Dateigröße von mehr als 64 MB referenzieren die 16 Blocknummern der Inode doppelt-indirekte Blöcke. Jeder doppelt-indirekte 4- KB-Block enthält 1024 Blocknummern, die auf entsprechende einfach- indirekte Blöcke verweisen. Jeder einfach-indirekte Block wiederum enthält 1024 Blocknummern, die auf 4-KB-Datenblöcke zeigen. Auf diese Weise lassen sich bis zu 64 GB adressieren. Fig. 4D ist ein Diagramm einer Inode 310 der Ebene 3, die 16 Blocknummern 310B enthält, wobei Blocknummerneinträge 0, 1 und 15 auf doppelt-indirekte Blöcke 470A, 470B und 470C verweisen. Der doppelt-indirekte Block 470A enthält 1024 Blocknummerneinträge 0-1023, die auf 1024 einfach-indirekte Blöcke 480A-480B zeigen. Jeder einfach-indirekte Block 480A-480B wiederum referenziert 1024 Datenblöcke. Wie in Fig. 4D gezeigt ist, referenziert der einfach-indirekte Block 480A 1024 Datenblöcke 490A-490C, und der einfach-indirekte Block 480B nimmt Bezug auf 1024 Datenblöcke 490C- 490F.
- Fig. 8 ist ein Blockdiagramm, das eine WAFL-interne Inode 820 veranschaulicht. Die interne Inode 820 enthält die Information der platteninternen Inode 310 (dargestellt in Fig. 3), eine WAFL-Puffer-Datenstruktur 820A, außerdem 16 Pufferzeiger 820B. Eine WAFL-interne Inode besitzt eine Größe von 300 Bytes. Ein WAFL-Puffer ist ein 4 KB umfassendes (speicher-)internes Äquivalent der 4-KB-Blöcke, die auf der Platte gespeichert sind. Die Intern-Inode 820 unterscheidet sich von herkömmlichen Inoden, welche Puffer mit unterschiedlichen Umwegeebenen referenzieren. Jede Intern-WAFL-Inode 820 zeigt auf 16 Puffer mit gleicher Umwegeebene. Ein Pufferzeiger hat eine Länge von 4 Bytes. Indem man sämtliche Pufferzeiger 820B in eine Inode 820 auf der gleichen Umwegeebene hält, vereinfacht man die Dateisystem-Implementierung. Die Intern-Inode 820 enthält außerdem Intern-Information 820C, umfassend ein "Unsauber"-Flag, ein Inkonsistenzpunkt-Flag (IN CP) sowie Zeiger für eine Verknüpfungsliste. Das Unsauber-Flag gibt an, daß die Inode selbst modifiziert wurde oder daß sie Puffer referenziert, welche ihrerseits geändert wurden. Das IN_CP-Flag dient zum Markieren einer Inode als in einem 20 Konsistenzpunkt befindlich (wird unten beschrieben). Die Zeiger für eine verknüpfte Liste werden unten beschrieben.
- Fig. 10 ist ein Diagramm, welches eine Datei veranschaulicht, die durch eine WAFL-Inode 1010 referenziert wird. Die Datei enthält indirekte WAFL-Puffer 1020-1024 und direkte WAFL-Puffer 1030-1034: die WAFL-Intern-Inode 1010 enthält Standard-Inoden-Information 1010A (einschließlich eines Zählers für unsaubere Puffer), eine WAFL- Pufferdatenstruktur 1010B, 16 Pufferzeiger 101ºC und eine standardmäßige platteninterne Inode 1010D. Die interne WAFL-Inode 1010 hat eine Größe von etwa 300 Bytes. Die platteninterne Inode hat eine Größe von 128 Bytes. Die WAFL-Pufferdatenstruktur 1010B umfaßt zwei Zeiger, von denen der erste die 16 Pufferzeiger 1010C und der zweite platteninterne Blocknummern 1010D referenziert.
- Jede Inode 1010 besitzt eine Zählung von unsauberen Puffern, auf die sie Bezug nimmt. Eine Inode 1010 kann in die Liste unsauberer Inoden und/oder die Liste von Inoden eingegeben werden, welche unsaubere Puffer aufweisen. Wenn sämtliche von einer Inode referenzierten unsauberen Puffer für die Aufzeichnung auf Platte vorgesehen sind oder auf Platte aufgezeichnet werden, wird die Zählung der unsauberen Puffer für Inode 1010 auf Null gesetzt. Die Inode 1010 wird dann entsprechend ihrem Flag neu in Warteschlange gestellt (das heißt in diesem Fall gibt es keine unsauberen Puffer). Diese Inode 1010 wird gelöscht, bevor die nächste Inode verarbeitet wird. Außerdem wird das Flag der Inode gelöscht, welches angibt, daß die Inode sich in einem Konsistenzpunkt befindet. Die Inode 1010 selbst wird in einem Konsistenzpunkt auf Platte geschrieben.
- Die WAFL-Pufferstruktur ist dargestellt durch einen indirekten WAFL- Puffer 1020. Der WAFL-Puffer 1020 enthält eine WAFL- Pufferdatenstruktur 1020A, einen 4-KB-Puffer 1020B mit 1024 WAFL- Pufferzeigern und einen 4-KB-Puffer 1020C mit 1024 platteninternen Blocknummern. Die WAFL-Pufferdatenstruktur hat eine Größe von 56 Bytes und enthält zwei Zeiger. Ein Zeiger der WAFL-Pufferdatenstruktur 1020A referenziert den 4-KB-Puffer 1020B, und ein zweiter Zeiger referenziert den Puffer 1020C. In Fig. 10 zeigen die 16 Pufferzeiger bbC der WAFL-Inode 1010 auf die 16 einfach-indirekten WAFL-Puffer 1020- 1024. Der WAFL-Puffer 1020 wiederum referenziert 1024 direkte WAFL- Pufferstrukturen 1030-1034. Der WAFL-Puffer 1030 steht repräsentativ für direkte WAFL-Puffer.
- Der direkte WAFL-Puffer 1030 enthält eine WAFL-Pufferdatenstruktur 1030A und einen 4-KB-Direktpuffer 1030B, der eine gecachete Version eines entsprechenden platteninternen 4-KB-Datenblocks enthält. Der direkte WAFL-Puffer 1030 enthält nicht einen 4-KB-Puffer wie den Puffer 1020C des Indirekt-WAFL-Puffers 1020. Der zweite Pufferzeiger der WAFL-Pufferdatenstruktur 1030A wird auf Null gesetzt und zeigt daher nicht auf einen zweiten 4-KB-Puffer. Dies verhindert eine nicht effiziente Verwendung von Speicher, da ansonsten Speicherbereich für einen unbenutzten Puffer bereitgestellt würde.
- In einem WAFL-Dateisystem, wie es in Fig. 10 gezeigt ist, referenziert eine interne WAFL-Inodenstruktur 1010 einen Baum von WAFL- Pufferstrukturen 1020-1024 und 1030-1034. Dieser ähnelt einem Baum von platteninternen Blöcken, die durch Standard-Inoden referenziert werden, welche Blocknummern aufweisen, die auf indirekte und/oder direkte Blöcke zeigen. Damit enthält die WAFL-Inode 1010 nicht nur die 16 Volumen-Blocknummern enthaltende platteninterne Inode 1010D, sondern enthält außerdem 16 Pufferzeiger 101ºC, welche auf WAFL- Pufferstrukturen 1020-1024 und 1030-1034 zeigen. WAFL-Puffer 1030- 1034 enthalten gecachete Inhalte von Blöcken, die durch Volumen- Blocknummern referenziert werden.
- Die WAFL-Intern-Inode 1010 enthält 16 Pufferzeiger 1010C. Ihrerseits werden die 16 Pufferzeiger 101ºC durch eine WAFL-Pufferstruktur 1010B referenziert, die die Wurzel für den Baum aus WAFL-Puffern 1020-1024 und 1030-1034 bildet. Somit enthält jede WAFL-Inode 1010 eine WAFL- 20 Pufferstruktur 1010B, die auf die 16 Pufferzeiger 1010C innerhalb der Inode 1010 zeigt. Dies erleichtert die rekursive Implementierung von Algorithmen zum Handhaben von Puffer-Bäumen. Wenn die 16 Pufferzeiger 1010C innerhalb der Inode 1010 nicht durch eine WAFL-Pufferstruktur 1010B repräsentiert würden, ließe sich der rekursive Algorithmus zum Bearbeiten des gesamten Baums von Puffern 1020-1024 und 1030-1034 nur schwer implementieren.
- Fig. 9A-9D sind Diagramme, die Inoden mit unterschiedlichen Umwegeebenen zeigen. In Fig. 9A-9D sind zur Darstellung der Indirektheit oder der Umwege indirekte und direkte WAFL-Puffer dargestellt. Allerdings sollte gesehen werden, daß die WAFL-Puffer in Fig. 9 entsprechende indirekte oder direkte Puffer aus Fig. 10 repräsentieren. Bei einer kleinen Datei mit einer Größe von 64 Bytes oder weniger werden Daten direkt in der Inode selbst gespeichert, und nicht die 16 Pufferzeiger. Fig. 9A ist ein Diagramm, das eine Inode 820 der Ebene Null veranschaulicht, bei der es sich um die gleiche Inode handelt wie die Inode 820 in Fig. 8, nur daß die Inode 820 an Stelle von 16 Pufferzeigern 820B nunmehr 64 Datenbytes 920B enthält. Deshalb werden bei sehr kleinen Dateien keine zusätzlichen Puffer zugewiesen.
- Bei einer Datei mit einer Größe von weniger als 64 KB referenziert jeder der 16 Pufferzeiger direkt einen direkten 4-KB-WAFL-Puffer. Fig. 9B ist ein Diagramm einer Inode 820 der Ebene 1 mit 16 Pufferzeigern 820B. Die 10 Pufferzeiger PTR0-PTR15 zeigen auf entsprechende direkte 4-KB-WAFL- Puffer 922A-922C.
- Bei einer Datei, die größer oder gleich 64 KB und kleiner als 64 MB ist, referenziert jeder der 16 Pufferzeiger einen einfach-indirekten WAFL- Puffer. Jeder einfach-indirekte 4-KB-WAFL-Puffer seinerseits umfaßt 1024 Pufferzeiger, welche 4-KB-Direkt-WAFL-Puffer referenzieren. Fig. 9C ist ein Diagramm einer Inode 820 der Ebene 2 mit 16 Pufferzeigern 820B, welche 16 einfach-indirekte WAFL-Puffer 930A-930C referenzieren. Gemäß Fig. 9C zeigt der Pufferzeiger PTR0 auf einen einfach- indirekten WAFL-Puffer 930A. Der einfach-indirekte WAFL-Puffer 930A enthält 1024 Zeiger, die 4-KB-Direkt-WAFL-Puffer 940A-940C referenzieren. In ähnlicher Weise können einfach-indirekte WAFL-Puffer 930B- 930C jeweils bis zu 1024 direkte WAFL-Puffer adressieren.
- Bei einer Dateigröße von mehr als 64 MB referenzieren die 16 Pufferzeiger der Inode doppelt-indirekte WAFL-Puffer. Jeder 4 KB umfassende, doppelt-indirekte WAFL-Puffer enthält 1024 Zeiger, die auf zugehörige einfach-indirekte WAFL-Puffer zeigen. Jeder einfach-indirekte WAFL- Puffer seinerseits umfaßt 1024 Zeiger, die auf direkte 4 KB-WAFL-Puffer 30 zeigen. Damit können bis zu 64 GB adressiert werden. Fig. 9D ist ein Diagramm einer Inode 820 der Ebene 3 mit 16 Zeigern 820B, wobei Zeiger PTR0, PTR1 und PTR15 doppelt-indirekte WAFL-Puffer 970A, 970B bzw. 970C referenzieren. Der doppelt-indirekte WAFL-Puffer 970A enthält 1024 Zeiger, die auf 1024 einfach-indirekte WAFL-Puffer 980A-980B zeigen. Jeder einfach-indirekte WAFL-Puffer 980A-980B wiederum referenziert 1024 direkte WAFL-Puffer. Wie in Fig. 9D zu sehen ist, referenziert der einfach-indirekte WAFL-Puffer 980A 1024 direkte WAFL-Puffer 990A-990C, und der einfach-indirekte WAFL-Puffer 980B referenziert 1024 direkte WAFL-Puffer 990D-990F.
- Verzeichnisse innerhalb des WAFL-Systems sind in 4-KB-Blöcken gespeichert, welche in zwei Abschnitte aufgeteilt sind. Fig. 14 ist ein Diagramm, das einen Verzeichnisblock 1410 gemäß der Erfindung veranschaulicht. Jeder Verzeichnisblock 1410 enthält einen ersten Abschnitt 1410A mit Verzeichniseintrag-Strukturen 1412-1414 fester Länge, und einen zweiten Abschnitt 1410B, der die aktuellen Verzeichnisnamen 1416- 1418 enthält. Jeder Verzeichniseintrag enthält außerdem eine Datei-ID, das heißt eine Datei-Kennung und eine Generation. Diese Information kennzeichnet, welche Datei der Eintrag referenziert. Diese Information ist im Stand der Technik bekannt und deshalb in Fig. 14 nicht dargestellt. Jeder Eintrag 1412-1414 im ersten Abschnitt 1410A des Verzeichnisblocks besitzt einen Zeiger auf seinen Namen innerhalb des zweiten Abschnitts 1410B. Außerdem enthält jeder Eintrag 1412-1414 einen Hash-Wert, abhängig von seinem Namen in dem zweiten Abschnitt 1410B, so daß der Name nur untersucht wird, wenn es zu einem Hash-Treffer (einer Hash- Übereinstimmung) kommt. Beispielsweise enthält der Eintrag 1412 des ersten Abschnitts 1410A einen Hash-Wert 1412A und einen Zeiger 1412B. Der Hash-Wert 1412A ist ein Wert, der von dem Verzeichnis-Namen "VERZEICHNIS ABC" abhängt, der in dem Eintrag variabler Länge 1416 des zweiten Abschnitts 1410B abgespeichert ist. Der Zeiger 1412B des Eintrags 1410 zeigt auf den Eintrag variabler Länge, 1416, des zweiten Abschnitts 14108. Unter Verwendung von Verzeichniseinträgen fester Länge, 1412-1414 in dem ersten Abschnitt 1410A beschleunigt sich der Vorgang des Namen-Nachschauens. Zum Auffinden des nächsten Eintrags innerhalb eines Verzeichnisblocks 1410 ist keine Rechnung erforderlich. Durch Halten der Einträge 1412-1414 in dem ersten Abschnitt 1410A auf einem kleinen Wert verbessert sich die Trefferrate für Dateisysteme mit einem Zeilenfüller-Datencache.
- WAFL führt Information, die ein Dateisystem in Dateien beschreibt, welche als Meta-Daten bekannt sind. Meta-Daten umfassen eine Inodendatei, eine inomap-Datei und eine blkmap-Datei. WAFL speichert seine Meta- Daten in Dateien, die irgendwo auf einer Platte aufgezeichnet werden können. Weil sämtliche WAFL-Meta-Daten in Dateien geführt werden, lassen sie sich an eine beliebe Stelle schreiben, so wie jede andere Datei innerhalb der Datenbank.
- Eine erste Metadaten-Datei ist die "Inodendatei", die Inoden enthält, welche sämtliche anderen Dateien innerhalb der Datenbank beschreiben. Fig. 12 ist ein Diagramm einer Inodendatei 1210. Die Inodendatei 1210 kann irgendwo auf einer Platte aufgezeichnet werden, im Gegensatz zu bekannten Systemen, welche "Inodentabellen" auf eine feste Stelle der Platte schreiben. Die Inodendatei 1210 enthält eine Inode 1210A-1210F für jede Datei innerhalb des Dateisystems, ausgenommen die Inodendatei 1210 selbst. Gezeigt wird auf die Inodendatei 1210 durch eine als die "Wurzelinode" bezeichnete Inode. Die Wurzelinode wird an einer festen Stelle auf der Platte gehalten, bezeichnet als weiter unten noch zu beschreibender Dateisysteminformationsblock (fsinfo-Block). Die Inodendatei 1210 selbst ist in 4-KB-Blöcken auf der Platte (oder 4-KB-Puffern im Speicher) abgespeichert. Fig. 12 veranschaulicht, daß hoden 1210A-1210C in einem 4- KB-Puffer 1220 gespeichert sind. Für Größen von platteninternen hoden von 128 Bytes umfaßt ein 4-KB-Puffer (oder Block) 32 moden. Die Intern- Inodendatei 1210 setzt sich zusammen aus WAFL-Puffern 1220. Wenn eine Intern-mode (das heißt 1210A) geladen wird, wird der platteninterne Inodenteil der Intern-mode 1210A für den Puffer 1220 der Inodendatei 1210 einkopiert. Die Pufferdaten selbst werden von der Platte her geladen. Das Schreiben von Daten auf die Platte erfolgt in umgekehrter Reihenfolge. Die Intern-mode 1210A, die eine Kopie der platteninternen mode ist, wird in den entsprechenden Puffer 1220 der Inodendatei 1210 kopiert. Anschließend wird die Inodendatei 1210 für das Schreiben zugewiesen, und die in dem Puffer 1220 der Inodendatei 1210 gespeicherten Daten werden auf die Platte geschrieben.
- Eine weitere Metadaten-Datei ist die "Blockabbild"-Datei (blkmap-Datei). Fig. 11A ist ein Diagramm, welches eine blkmap-Datei 1110 zeigt. Die blkmap-Datei 1110 enthält einen 32 Bits umfassenden Eintrag 1110A- 1110C für jeden 4-KB-Block innerhalb des Plattenlaufwerksystems. Sie dient außerdem als Abbilddatei für freie Blöcke. Die blkmap-Datei 1110 gibt an, ob ein Plattenblock belegt wurde oder nicht. Fig. 11 B ist ein Diagramm eines Blockeintrags 1110A der blkmap-Datei 1110 (dargestellt in Fig. 11A). Wie in Fig. 11B gezeigt ist, umfaßt der Eintrag 1110A 32 Bits (BIT0-BIT31). Bit 0 (BIT0) des Eintrags 1110A ist das Aktiv- Dateisystem-Bit (FS-Bit). Das FS-Bit des Eintrags 1110A gibt an, ob der entsprechende Block Teil des aktiven Dateisystems ist oder nicht. Die Bits 1-20 (BIT1-BIT20) des Eintrags 1110A sind Bits, welche angeben, ob der Block Teil eines entsprechenden Schnappschusses (Zwischensicherung) 1- 20 ist. Die nächsten oberen 10 Bits (BIT21-BIT30) sind reserviert. Bit 31 (BIT31) ist das Konsistenzpunkt-Bit (CP-BIT) des Eintrags 1110A.
- Ein Block ist als ein freier Block in dem Dateisystem dann verfügbar, wenn sämtliche Bits (BIT0-BIT31) in dem 32 Bit umfassenden Eintrag 1110A für den Block gelöscht sind (auf einen Wert 0 zurückgesetzt). Fig. 11C ist ein Diagramm, welches den Eintrag 1110A der Fig. 11A veranschaulicht, wenn dieser anzeigt, daß der Plattenblock frei ist. Demnach ist der durch den Eintrag 1110A der blkmap-Datei 1110 referenzierte Block dann frei, wenn die Bits 0-31 (BIT0-BIT31) sämtlich einen Wert 0 haben. Fig. 11D ist ein Diagramm, welches den Eintrag 1110A der Fig. 11A in dem Zustand zeigt, in welchem er einen belegten Block in dem aktiven Dateisystem angibt. Wenn das Bit 0 (BIT0), auch als FS-Bit bezeichnet, auf einen Wert 1 gesetzt ist, kennzeichnet der Eintrag 1110A der blkmap- Datei 1110 einen Block, der Teil des aktiven Dateisystems ist. Bits 1-20 (BIT1-BIT20) dienen zum Anzeigen entsprechender Schnappschüsse, falls vorhanden, die den Block referenzieren. Schnappschüsse werden unten im einzelnen erläutert. Wenn das Bit 0 (BIT0) auf einen Wert 0 gesetzt ist, so zeigt dies nicht unbedingt an, daß der Block für die Belegung zur Verfügung steht. Sämtliche Schnappschuß-Bits müssen 0 sein, damit der Block zugewiesen werden kann. Bit 31 (BIT31) des Eintrags 1110A hat stets denselben Zustand als Bit 0 (BIT0) auf der Platte, wird aber, wenn er in das Speicherbit 31 (BIT31) geladen wird, zur Buchführung als Teil eines Konsistenzpunkts verwendet.
- Eine weitere Metadaten-Datei ist die "Inodenabbild" = Datei (inomap- Datei), die als ein Abbild für freie moden dient. Fig. 13A ist ein Diagramm, welches eine Inodenabbild-Datei veranschaulicht. Die inomap- Datei 1310 enthält einen 8 Bits umfassenden Eintrag 1310A-1310C für jeden Block innerhalb der in Fig. 12 gezeigten Inoden-Datei 1210. Jeder Eintrag 1310A-1310C ist eine Zählung zugeordneter oder belegter Ir moden in dem entsprechenden Block innerhalb der moden-Datei 1210. Fig. 13A zeigt Werte 32,5 bzw. 0 in den Einträgen 1310A-1310C. Die moden-Datei 1210 muß noch inspiziert werden, um herauszufinden, welche Inoden in dem Block frei sind, dies erfordert jedoch nicht das Umladen größerer Mengen beliebiger Blöcke von der Platte in den Speicher. Da jeder 4-KB- Block 1220 der Inodendatei 1210 32 moden aufnimmt, kann der 8 Bits umfassende inomap-Eintrag 1310A-1310C für jeden Block in der Inoden- Datei 1210 Werte annehmen, die zwischen 0 und 32 liegen. Wenn ein Block 1220 einer moden-Datei 1210 keine moden im Gebrauch hat, so ist der Eintrag 1310A-1310C für ihn innerhalb der Inomap-Datei 1310 "0". Wenn sämtliche moden in dem Block 1220 der Inodendatei 1210 im Gebrauch sind, hat der Eintrag 1310A-1310C der inomap-Datei 1310 einen Wert 32.
- Fig. 13B ist ein Diagramm, das eine inomap-Datei 1350 veranschaulicht, welche die 4-KB-Blöcke 1340A-1340C der moden-Datei 1340 referenziert. Beispielsweise speichert die Inoden-Datei 1340 37 moden in drei 4- KB-Blöcken 1340A-1340C. Blöcke 1340A-1340C der moden-Datei 1340 enthalten 32,5 bzw. 0 verwendete moden. Einträge 1350A-1350C der blkmap-Datei 1350 referenzieren Blöcke 1340A-1340C der moden-Datei 1340. Damit haben die Einträge 1350A-1350C der inomap-Datei Werte von 32,5 und 0 für Blöcke 1340A-1340C der moden-Datei 1340. Die Einträge 1350A-1350C der inomap-Datei wiederum kennzeichnen 0,27 bzw. 32 freie moden in den Blöcken 1340A-1340C der moden-Datei 1340.
- Bezugnehmend auf Fig. 13 ist die Verwendung einer bitweisen Momentaufnahme für die Einträge 1310A-1310C der inomap-Datei 1310 an Stelle von Zählwerten deshalb von Nachteil, weil vier Bytes pro Eintrag 1310A- 1310C für den Block 1220 der moden-Datei 1210 (in Fig. 12 dargestellt), und nicht nur ein Byte erforderlich wären. Freie moden im Block bzw. in den Blöcken 1220 der moden-Datei 1210 müssen innerhalb der inomap- Datei 1310 deshalb nicht angezeigt werden, weil die moden selbst diese Information enthalten.
- Fig. 15 ist ein Diagramm, welches eine Dateisysteminformationsstruktur (fsinfo) 1510 veranschaulicht. Die Wurzelinode 1510B eines Dateisystems wird an einer festen Stelle auf der Platte gehalten, so daß sie beim Booten des Dateisystems geortet werden kann. Der fsinfo-Block ist keine Metadaten-Datei, sondern Teil des WAFL-Systems. Die Wurzelinode 1510B ist eine mode, die auf die moden-Datei 1210 Bezug nimmt. Sie ist Teil der Dateisysteminformationsstruktur (fsinfo) 1510, die außerdem Information 1510A einschließlich der Anzahl von Blöcken in dem Dateisystem, die Entstehungszeit des Dateisystems etc. enthält. Die vermischte Information 1510A enthält außerdem eine Prüfsumme 1510C (diese wird unten noch beschrieben). Mit Ausnahme der Wurzelinode 1510B selbst kann diese Information 1510A in einer Metadaten-Datei einer anderen Ausführungsform gehalten werden. In festen Plätzen auf der Platte werden zwei identische Kopien der fsinfo-Struktur 1510 gehalten.
- Fig. 16 ist ein Diagramm, welches das WAFL-Dateisystem 1670 in einem konsistenten Zustand auf einer Platte mit zwei fsinfo-Blöcken 1610 und 1612, einer moden-Datei 1620, einer blkmap-Datei 1630, einer inomap-Datei 1640, einem Wurzelverzeichnis 1650 und einer typischen Datei (oder einem Verzeichnis) 1660 zeigt. Die Inoden-Datei 1620 besteht aus mehreren Inoden 1620A-1620D, welche andere Dateien 1630-1660 in dem Dateisystem 1670 referenzieren. Die Inode 1620A der Inoden-Datei 1620 referenziert die blkmap-Datei 1630. Die Inode 1620B referenziert die inomap-Datei 1640. Die Inode 1620C referenziert das Wurzelverzeichnis 1650. Die Inode 1620D referenziert eine typische Datei (oder ein typisches Verzeichnis) 1660. Somit zeigt die Inoden-Datei auf sämtliche Dateien 1630-1660 innerhalb des Dateisystems 1670, ausgenommen die fsinfo- Blöcke 1610 und 1612. Die fsinfo-Blöcke 1610 und 1612 enthalten jeweils eine Kopie 1610B bzw. 1612B der Inode der Inoden-Datei 1620. Weil die Wurzelinode 1610B und 1612B der fsinfo-Blöcke 1610 und 1612 die Inoden-Datei 1620 beschreibt, die ihrerseits den Rest der Dateien 1630-1660 in dem Dateisystem 1670 einschließlich sämtlicher Metadaten-Dateien 1630-1640 beschreibt, wird die Wurzelinode 1610B und 1612B als die Wurzel eines Baums von Blöcken betrachtet. Das WAFL-System 1620 verwendet diese Baumstruktur für ihr Aktualisierungsverfahren (Konsistenzpunkt) und zum Implementieren von Schnappschüssen, die beide unten noch beschrieben werden.
- Interne WAFL-Inoden (das heißt die WAFL-Inode 1010 gemäß Fig. 10) des WAFL-Dateisystems werden in unterschiedlich verknüpften Listen entsprechend ihrem Status gehalten. Inoden, die sich auf unsaubere Blöcke beziehen, werden in einer in Fig. 2 gezeigten Liste für unsaubere Inoden gehalten. Zulässige Daten enthaltende Inoden, die nicht unsauber sind, werden in einer separaten Liste gehalten, und Inoden, die keine zulässigen Daten aufweisen, werden in einer noch weiteren Liste geführt, wie dies im Stand der Technik bekannt ist. Die vorliegende Erfindung macht Gebrauch von einer Liste von Inoden mit unsauberen Datenblöcken, was das Auffinden sämtlicher Inoden erleichtert, bei denen Schreibzuweisungen erforderlich sind.
- Fig. 2 ist ein Diagramm, das eine Liste 210 unsauberer Inoden gemäß der Erfindung veranschaulicht. Die Liste 210 unsauberer Inoden enthält WAFL-interne Inoden 220-1750. Wie in Fig. 17 gezeigt ist, enthält jede WAFL-interne Inode 220-250 einen Zeiger 220A-250A, der auf eine weitere Inode in der verknüpften Liste zeigt. Beispielsweise sind WAFL- Inoden 220-250 im Speicher an Stellen 2048, 2152, 2878, 3448 bzw. 3712 gespeichert. Dementsprechend enthält der Zeiger 220A der Inode 220 die Adresse 2152. Sie verweist deshalb auf die WAFL-Inode 222. Die WAFL- Inode 222 wiederum zeigt mit Hilfe der Adresse 2878 auf die WAFL- Inode 230. Die WAFL-Inode 230 verweist auf die WAFL-Inode 240. Die WAFL-Inode 240 zeigt auf die Inode 1750. Der Zeiger 250 der WAFL- Inode 250 enthält einen Null-Wert und zeigt daher nicht auf eine weitere Inode. Somit ist sie die letzte Inode innerhalb der Liste 210 für unsaubere Inoden. Jede Inode in der Liste 210 repräsentiert eine Datei aus einem Baum von Puffern, wie dies in Fig. 10 dargestellt ist. Mindestens einer der von jeder Inode 220-250 referenzierte Puffer ist ein unsauberer Puffer. Ein unsauberer Puffer enthält modifizierte Daten, die auf eine neue Speicherplattenstelle in dem WAFL-System geschrieben werden müssen. WAFL schreibt stets unsaubere Puffer auf neue Speicherstellen der Platte.
- Die WAFL-Plattenstruktur, wie sie bisher beschrieben wurde, ist statisch. Erfindungsgemäß werden Änderungen des Dateisystems 1670 streng gesteuert, um das Dateisystem 1670 in einem konsistenten Zustand zu halten. Das Dateisystem 1670 schreitet von einem selbstkonsistenten Zustand zu einem anderen selbstkonsistenten Zustand weiter. Die Menge (oder der Baum) selbstkonsistenter Blöcke auf der Platte mit ihrem Ursprung in der Wurzelinode 1510B wird als Konsistenzpunkt (CP) referenziert. Um Konsistenzpunkte zu implementieren, schreibt WAFL stets neue Daten in nicht-zugewiesene Blöcke auf der Platte. Es überschreibt niemals existierende Daten. Solange also die Wurzelinode 1510B nicht aktualisiert ist, ändert sich der Zustand des Dateisystems 1670, wie er sich auf der Platte darstellt, nicht. Damit das Dateisystem 1670 aber brauchbar ist, muß es gelegentlich auf neu geschriebene Daten Bezug nehmen, und deshalb muß dann ein neuer Konsistenzpunkt geschrieben werden.
- Bezugnehmend auf Fig. 16, wird ein neuer Konsistenzpunkt dadurch geschrieben, daß zunächst sämtliche Dateisystem-Blöcke auf neue Stellen der Platten umgeräumt werden (einschließlich der Blöcke in Metadaten- Dateien, so wie die Inoden-Datei 1620, die blkmap-Datei 1630 und die inomap-Datei 1640). Eine neue Wurzelinode 1610B und 1612B für das Dateisystem 1670 wird dann auf die Platte geschrieben. Mit diesem Verfahren zur automatischen Aktualisierung eines Dateisystems ist das platteninterne Dateisystem niemals inkonsistent. Das platteninterne Dateisystem 1670 reflektiert einen alten Konsistenzpunkt, bis die Wurzelinode 1610B und 1612B geschrieben ist. Unmittelbar nach dem Schreiben der Wurzelinode 1610B und 1612B auf die Platte reflektiert das Dateisystem 1670 einen neuen Konsistenzpunkt. Datenstrukturen des Dateisystems 1670 können in beliebiger Reihenfolge aktualisiert werden, es gibt keinerlei Ordnungsbeschränkungen bei platteninternen Schreibvorgängen, ausgenommen das eine Erfordernis, gemäß dem sämtliche Blöcke in dem Dateisystem 1670 auf die Platte geschrieben werden müssen, bevor die Wurzelinode 1610B und 1612B aktualisiert wird.
- Um in einen neuen Konsistenzpunkt umgewandelt werden zu können, muß die Wurzelinode 1610B und 1612B zuverlässig und elementar aktualisiert werden. WAFL tut dies dadurch, daß zwei identische Kopien der fsinfo- Struktur 1610 und 1612 gehalten werden, welche die Wurzelinode 1610B und 1612B enthalten. Während der Aktualisierung der Wurzelinode 1610B und 1612B wird eine Kopie der fsinfo-Struktur 1610 auf die Platte geschrieben, anschließend wird die zweite Kopie der fsinfo-Struktur 1612 geschrieben. Eine Prüfsumme 1610C und 1612C in der fsinfo-Struktur 1610 bzw. 1612 dient zum Feststellen des Auftretens eines Systemzusammenbruchs, welches eine der Kopien der fsinfo-Struktur 1610 oder 1612, die jeweils eine Kopie der Wurzelinode enthalten, beim Schreiben auf die Platte verfälscht. Normalerweise sind die beiden fsinfo-Strukturen 1610 und 1612 identisch.
- Fig. 5 ist ein Diagramm, welches das Verfahren zum Erzeugen eines Konsistenzpunkts veranschaulicht. Im Schritt 510 werden sämtliche "unsauberen" moden (also moden, die auf neue, modifizierte Daten enthaltende Blöcke zeigen) in dem System als im Konsistenzpunkt ihrer Inhalte befindlich markiert, und es wird nur ihr jeweiliger Inhalt auf die Platte geschrieben. Nur wenn diese Schreibvorgänge abgeschlossen sind, dürfen weitere Schreibvorgänge aus anderen moden die Platte erreichen. Außerdem können während der Zeit, in der unsaubere Schreibvorgänge stattfinden, keine neuen Modifikationen an moden vorgenommen werden, die sich in dem Konsistenzpunkt befinden.
- Zusätzlich zur Einstellung des Konsistenzpunkt-Flags für sämtliche unsauberen moden, die Teil des Konsistenzpunkts sind, wird ein globales Konsistenzpunkt-Flag gesetzt, so daß seitens eines Benutzers angeforderte Änderungen sich in streng gesteuerter Weise verhalten. Nachdem das globale Konsistenzpunkt-Flag gesetzt ist, werden benutzerseitig angeforderte Änderungen, welche in dem Konsistenzpunkt befindliche hoden beeinflussen, nicht zugelassen. Außerdem wird nur moden mit gesetztem Konsistenzpunkt-Flag Plattenspeicherplatz für ihre unsauberen Blöcke zugewiesen. Folglich wird der Zustand des Dateisystems auf die Platte geräumt, genauso, wie dies zu Beginn des Konsistenzpunkts geschah.
- Im Schritt 520 werden reguläre Dateien auf Platte geräumt. Das Räumen regulärer Dateien umfaßt den Schritt des Zuweisens von Plattenspeicherplatz für unsaubere Blöcke in den regulären Dateien, außerdem das Schreiben der entsprechenden WAFL-Puffer auf die Platte. Die moden selbst werden anschließend in die moden-Datei geräumt (kopiert). Sämtliche Inoden, die zu beschreiben sind, befinden sich entweder in der Liste von Inoden mit unsauberen Puffern oder in der Liste von moden, die unsauber sind, jedoch keine unsauberen Puffer enthalten. Wenn der Schritt 520 abgeschlossen ist, gibt es keine weiteren regulären moden in dem Konsistenzpunkt, und sämtliche ankommenden E/A-Anforderungen verlaufen erfolgreich, es sei denn, die Anforderungen verwenden Puffer, die für Platten-E/A-Operationen noch gesperrt sind.
- Im Schritt 530 werden Spezialdateien auf die Platte geräumt. Das Räumen von Spezialdateien umfaßt den Schritt des Zuordnens von Plattenspeicherplatz für unsaubere Blöcke in den beiden Spezialdateien: die Inoden-Datei und die blkmap-Datei, das Aktualisieren des Konsistenzbits (CP-Bit), damit Übereinstimmung mit dem aktiven Dateisystem-Bit (FS-Bit) für jeden Eintrag in der blkmap-Datei herrscht, und anschließendes Einschreiben der Blöcke in die Platte. Die Schreibzuordnung der Inoden-Datei und der blkmap-Datei ist deshalb kompliziert, weil der Vorgang ihrer Schreibzuweisung die Dateien selbst ändert. Somit werden im Schritt 530 Schreibvorgänge gesperrt, während diese Dateien geändert werden, um zu verhindern, daß wichtige Blöcke für Platten-E/A-Operationen gesperrt werden, bevor die Änderungen abgeschlossen sind.
- Im Schritt 530 werden außerdem die unten noch beschriebenen Schritte des Erzeugens und Löschens von Schnappschüssen durchgeführt, da dies der einzige zeitliche Punkt ist, zu welchem das Dateisystem - ausgenommen den fsinfo-Block - vollständig selbstkonsistent ist und gerade dabei ist, auf die Platte geschrieben zu werden. Ein Schnappschuß wird aus dem Dateisystem gelöscht, bevor ein neuer erzeugt wird, so daß in einem Durchgang dieselbe Schnappschuß-Inode verwendet werden kann.
- Fig. 6 ist ein Flußdiagramm, welches die Schritte darstellt, die der Schritt 530 umfaßt. Schritt 530 ordnet Plattenspeicherraum für die blkmap-Datei und die Inoden-Datei zu und kopiert das aktive FS-Bit in das CP-Bit für jeden Eintrag der blkmap-Datei. Dies garantiert, daß der Block in der Inoden-Datei, der die Inode der blkmap-Datei enthält, unsauber ist, so daß der Schritt 620 hierfür Plattenspeicherraum zuweist.
- Im Schritt 620 wird für sämtliche unsauberen Blöcke in der Inode und den blkmap-Dateien Plattenspeicherplatz zugewiesen. Die unsauberen Blöcke enthalten den Block der moden-Datei, der die mode der blkmap-Datei als unsauberen Block enthält.
- Im Schritt 630 wird die mode für die blkmap-Datei erneut geräumt, allerdings wird diesmal die aktuelle mode in den vorab geräumten Block in der moden-Datei geschrieben. Schritt 610 hat bereits den Block der Inoden- Datei verfälscht, welche die mode der blkmap-Datei enthält. Damit braucht kein weiterer Schreibzuweisungsschritt entsprechend dem Schritt 620 geplant zu werden.
- Im Schritt 640 werden die Einträge für jeden Block in der blkmap-Datei aktualisiert. Jeder Eintrag wird dadurch aktualisiert, daß das aktive FS-Bit in das CP-Bit kopiert wird (das heißt Einkopieren des Bits 0 in das Bit 31), und zwar bei sämtlichen Einträgen in unsauberen Blöcken innerhalb der blkmap-Datei.
- Im Schritt 650 werden sämtliche unsauberen Blöcke in den blkmap- und moden-Dateien auf die Platte geschrieben.
- Nur für Einträge in unsauberen Blöcken der blkmap-Datei muß das aktive Dateisystem-Bit (FS-Bit) im Schritt 640 in das Konsistenzpunkt-Bit (CP- Bit) kopiert werden. Unmittelbar nach einem Konsistenzpunkt besitzen sämtliche blkmap-Einträge denselben Wert sowohl für das aktive FS-Bit als auch das CP-Bit. Mit fortschreitender Zeit werden einige aktive FS-Bits von blkmap-Datei-Einträgen für das Dateisystem entweder gelöscht oder gesetzt. Die Blöcke der blkmap-Datei, die geänderte FS-Bits enthalten, werden entsprechend als unsauber markiert. Während des folgenden Konsistenzpunkts brauchen saubere Blöcke nicht zurückkopiert zu werden. Die sauberen Blöcke werden deshalb nicht kopiert, sie an dem vorhergehenden Konsistenzpunkt nicht unsauber waren und sich in den Blöcken seitdem nichts geändert hat. Solange also das Dateisystem zu Beginn mit dem aktiven FS-Bit und dem CP-Bit gleichen Werts in sämtlichen blkmap- Einträgen erzeugt wurde, brauchen lediglich Einträge bei unsauberen Blöcken in jedem Konsistenzpunkt aktualisiert zu werden.
- Bezugnehmend auf Fig. 5 wird im Schritt 540 der Dateisysteminformationsblock (Fsinfo) aktualisiert und dann auf die Platte geräumt. Der Fsinfo- Block wird dadurch aktualisiert, daß in ihn für die Inoden-Datei eine neue Wurzelinode eingeschrieben wird. Der Fsinfo-Block wird zweimal geschrieben. Zuerst wird er an eine Stelle und dann an eine zweite Stelle geschrieben. Die zwei Schreibvorgänge werden derart ausgeführt, daß dann, wenn während des einen oder des anderen Schreibvorgangs ein Systemzusammenbruch erfolgt, auf der Platte ein selbstkonsistentes Dateisystem vorliegt. Bei einem Systemzusammenbruch während des Schreibvorgangs des zweiten Fsinfo-Blocks ist dann entweder der neue Konsistenzpunkt verfügbar, oder es ist der vorhergehende Konsistenzpunkt (auf der Platte vor Beginn des jüngsten Konsistenzpunkts) vorhanden, wenn der erste Fsinfo-Block ausgefallen ist. Wenn das Dateisystem nach einem Systemausfall neu gestartet wird, wird die höchste Generationenzählung für einen Konsistenzpunkt in den Fsinfo-Blöcken mit einem korrekten Prüfsummenwert verwendet. Dies wird weiter unten noch näher erläutert.
- Im Schritt 550 wird der Konsistenzpunkt abgeschlossen. Dies macht es erforderlich, daß jegliche unsaubere Inoden, die, weil sie nicht Teil des Konsistenzpunkts waren, neu in die Warteschlange gestellt werden. Sämtliche Dioden, die ihren Zustand während des Konsistenzpunkts geändert haben, werden in die Konsistenzpunkt-Warteschlange (CP_WAIT) gestellt. Die CP_WAIT-Warteschlange enthält Inoden, die sich vor Abschluß des Schritts 540 geändert haben, jedoch nach dem Schritt 510, wenn der Konsistenzpunkt gestartet ist. Nach Abschluß des Konsistenzpunkts werden die Inoden in der CP_WAIT-Warteschlange neu eingeordnet, entsprechend der regulären Liste von Dioden mit unsauberen Puffern und der Liste von unsauberen Inoden ohne unsaubere Puffer.
- Wie in den Fig. 20A-20C dargestellt ist, besitzt die vorliegende Erfindung eine Einzelordnungsbeschränkung. Die Einzelordnungsbeschränkung besagt, daß der Fsinfo-Block 1810 nur auf Platte geschrieben wird, nach dem sämtliche übrigen Blöcke auf die Platte geschrieben sind. Das Schreiben des Fsinfo-Blocks 1810 ist elementar, weil ansonsten das gesamte Dateisystem 1830 verloren gehen könnte. Damit erfordert das WAFL- Dateisystem, daß der Fsinfo-Block 1810 auf einmal geschrieben wird und sich nicht in einem inkonsistenten Zustand befindet. Wie in Fig. 15 gezeigt ist, enthält jeder der Fsinfo-Blöcke 1810 (1510) eine Prüfsumme 1510C und eine Generationenzählung 1510D.
- Fig. 20A veranschaulicht das Aktualisieren der Generationenzählung 1810D und 1870D der Fsinfo-Blöcke 1810 und 1870. Jedesmal, wenn ein Konsistenzpunkt (oder Schnappschuß) ausgeführt wird, wird auch die Generationenzählung des Fsinfo-Blocks aktualisiert. Fig. 20A zeigt zwei Fsinfo-Blöcke 1810 und 1870 mit Generationenzählungen 1810D und 1870D, die den gleichen Wert N aufweisen, was einen Konsistenzpunkt für das Dateisystem angibt. Beide Fsinfo-Blöcke referenzieren den vorausgehenden Konsistenzpunkt (das alte Dateisystem auf der Platte) 1830. Eine neue Version des Dateisystems existiert auf der Platte und wird als neuer Konsistenzpunkt 1831 referenziert. Die Generationenzählung wird bei jedem Konsistenzpunkt erhöht.
- In Fig. 20B wird die Generationenzählung 1810D des ersten Fsinfo- Blocks 1810 aktualisiert und erhält einen Wert N+1. Dann wird sie auf die Platte geschrieben. Fig. 20B veranschaulicht einen Wert N+1 für die Generationenzählung 1810D des Fsinfo-Blocks 1810, wohingegen die Generationenzählung 1870D des zweiten Fsinfo-Blocks 1870 einen Wert von N hat. Der Fsinfo-Block 1810 referenziert den neuen Konsistenzpunkt 1831, wohingegen der Fsinfo-Block 1870 den alten Konsistenzpunkt 1830 referenziert. Als nächstes wird die Generationenzählung 1870D des Fsinfo- Blocks 1870 aktualisiert und auf Platte geschrieben, wie dies in Fig. 20C dargestellt ist. In Fig. 20C besitzt die Generationenzählung 1870D des Fsinfo-Blocks 1870 einen Wert N+1. Deshalb besitzen beide Fsinfo- Blöcke 1810 und 1870 den gleichen Generationen-Zählerstand N+1.
- Kommt es zu einem Systemzusammenbruch zwischen zwei Fsinfo-Block- Aktualisierungen, besitzt jede Kopie des Fsinfo-Blocks 1810 und 1870 eine (in dem Diagramm nicht gezeigte) selbstkonsistente Prüfsumme, jedoch weist eine der Generationenzahlen 1810D oder 1870D einen höheren Wert auf. Ein Systemzusammenbruch geschieht, wenn das Dateisystem sich in dem in Fig. 20B gezeigten Zustand befindet. In der bevorzugten Ausführungsform der vorliegenden Erfindung gemäß Fig. 20B wird die Generationenzählung 1810D des Fsinfo-Blocks 1810 vor dem zweiten Fsinfo-Block 1870D aktualisiert. Daher ist die Generationenzählung 1810D (mit dem Wert Eins) größer als die Generationenzählung 1870D des Fsinfo-Blocks 1870. Da die Generationenzählung des ersten Fsinfo- Blocks 1810 größer ist, wird sie zur Wiederherstellung des Dateisystems nach einem Systemzusammenbruch ausgewählt. Dies geschieht deshalb, weil der erste Fsinfo-Block 1810 mehr laufende Daten enthält, was durch seine Generationenzählung 1810D angegeben wird. Falls der erste Fsinfo- Block verfälscht wird, da bei seiner Aktualisierung das System zusammenbricht, so wird die andere Kopie 1870 des Fsinfo-Blocks zur Wiederherstellung des Dateisystems 1830 in konsistentem Zustand verwendet.
- Erfindungsgemäß ist es nicht möglich, beide Fsinfo-Blöcke 1810 und 1870 gleichzeitig zu aktualisieren. Deshalb existiert in dem Dateisystem mindestens eine gute Kopie des Fsinfo-Blocks 1810 und 1870. Dies macht es möglich, das Dateisystem stets in einem konsistenten Zustand wiederherzustellen.
- WAFL macht keine speziellen Wiederherstellungsprozeduren erforderlich. Dies unterscheidet es von bekannten Systemen, die von Protokollierung, geordneten Schreibvorgängen und streng geordneten Schreibvorgängen bei der Wiederherstellung Gebrauch machen. Dies deshalb, weil nur Datenverfälschung, gegen die RAID Schutz bietet, oder Software ein WAFL- Dateisystem verfälschen kann. Um Datenverlust bei einem Systemausfall zu vermeiden, kann WAFL ein nicht-flüchtiges Transaktions-Protokoll für sämtliche Operationen führen, die nach dem jüngsten Konsistenzpunkt erfolgt sind. Dieses Protokoll ist völlig unabhängig vom WAFL- Plattenformat und ist nur erforderlich, um zu verhindern, daß bei einem Systemzusammenbruch Operationen verlorengehen. Allerdings ist es nicht erforderlich, die Konsistenz des Dateisystems beizubehalten.
- Wie oben beschrieben, werden Änderungen des WAFL-Dateisystems streng gesteuert, um das Dateisystem in einem konsistenten Zustand zu halten. Fig. 17A-17H veranschaulichen die Erzeugung eines Konsistenzpunkts für ein WAFL-Dateisystem. Die Erzeugung eines Konsistenzpunkts wird anhand der Fig. 5 und 6 erläutert.
- In den Fig. 17A-17L sind Puffer, die nicht modifiziert wurden, ohne Sternchen neben sich. Deshalb enthalten Puffer die gleichen Daten wie entsprechende platteninterne Blöcke. Damit läßt sich ein Block in den Speicher laden, er ist gegenüber seiner platteninternen Version jedoch unverändert. Ein Puffer mit einem einzelnen Sternchen (*) daneben bedeutet einen unsauberen Puffer in dem Speicher (seine Daten sind modifiziert). Ein Puffer mit einem doppelten Sternchen (**) neben sich bedeutet einen unsauberen Puffer, dem Plattenspeicherplatz zugewiesen ist. Schließlich ist ein Puffer mit einem Dreifachsternchen (***) ein unsauberer Puffer, der in einen neuen Block auf der Platte eingeschrieben ist. Die Konvention zum Bezeichnen des Zustands von Puffern wird auch bei den Fig. 21A-21E benutzt.
- Fig. 17A zeigt eine Liste 2390 von Inoden mit unsauberen Puffern, umfassend Inoden 2306A und 2306B. Die Inoden 2306A und 2306B referenzieren Bäume von Puffern, in denen mindestens ein Puffer jedes Baums modifiziert wurde. Zu Beginn werden Konsistenzpunkt-Flags 2391 und 2392 der Inoden 2306A und 2306B gelöscht (0). Während für das vorliegende System eine Liste 2390 von Inoden mit unsauberen Puffern dargestellt ist, sollte dem Fachmann ersichtlich sein, daß andere Listen von Inoden ebenfalls im Speicher existieren können. Beispielsweise wird in dem Speicher eine Liste von Dioden geführt, die unsauber sind, allerdings keine unsauberen Puffer haben. Diese Inoden müssen als in dem Konsistenzpunkt befindlich markiert werden. Sie müssen auf die Platte geräumt werden, damit auch der unsaubere Inhalt der Inoden-Datei auf die Platte geschrieben wird, selbst wenn unsaubere Inoden nicht unsaubere Blöcke referenzieren. Dies geschieht im Schritt 520 in Fig. 5.
- Fig. 17B ist ein Diagramm, welches ein WAFL-Dateisystem eines vorhergehenden Konsistenzpunkts mit dem Fsinfo-Block 2302, der Inoden- Datei 2346, der blkmap-Datei 2344 sowie Dateien 2340 und 2342 umfaßt. Die Datei 2340 enthält Blöcke 2310-2314, die Daten "A", "B" bzw. "C" enthalten. Die Datei 2342 enthält Datenblöcke 2316-2320 mit Daten "D", "E" bzw. "F". Die blkmap-Datei 2344 enthält den Block 2324. Die Inoden- Datei 2346 enthält zwei 4 KB-Blöcke 2304 und 2306. Der zweite Block 2306 enthält Inoden 2306A-2306C, die die Datei 2340, die Datei 2342 bzw. die blkmap-Datei 2344 referenzieren. Dies ist im Block 2306 durch Auflistung der Dateinummer in der Diode angezeigt. Fsinfo-Block 2302 enthält die Wurzelinode. Die Wurzelinode referenziert die Blöcke 2304 und 2306 der Inoden-Datei 2346. Fig. 17B veranschaulicht einen Baum von Puffern in einem Dateisystem mit Wurzelbildung durch den Fsinfo- Block 2302, welcher die Wurzelinode beinhaltet.
- Fig. 17C ist ein Diagramm welches zwei modifizierte Puffer für die Blöcke 2314 und 2322 im Speicher veranschaulicht. Das aktive Dateisystem wird so modifiziert, daß der die Daten "C" enthaltende Block 2314 aus der Datei 2340 gelöscht wird. Außerdem werden die im Block 2320 gespeicherten Daten "F" zu "F-Prime" modifiziert und in einem Puffer für den Plattenblock 2322 gespeichert. Es sollte gesehen werden, daß die in Puffern für Plattenblöcke 2314 und 2322 enthaltene modifizierte Daten zu dieser Zeit nur im Speicher existieren. Sämtliche übrigen Blöcke in dem aktiven Dateisystem der Fig. 17C sind nicht modifiziert und deshalb nicht mit einem Sternchen neben ihnen markiert. Allerdings können einige oder sämtliche dieser Blöcke in dem Speicher zugehörige saubere Puffer aufweisen.
- Fig. 17D ist ein Diagramm, welches die Einträge 2324A-2324M der blkmap-Datei 2344 im Speicher veranschaulicht. Einträge 2324A-2324M sind in einem Puffer für den 4-KB-Block 2324 der blkmap-Datei 2344 enthalten. Wie zuvor beschrieben, sind das BIT0 und BIT31 das FS-BIT bzw. das CP-BIT. Das Konsistenzpunkt-Bit (CP-BIT) wird während eines Konsistenzpunkts gesetzt, um zu garantieren, daß der entsprechende Block nach Beginn, jedoch noch nicht erfolgtem Abschluß eines Konsistenzpunkts modifiziert wird. BIT1 ist das erste Schnappschuß-Bit (wird unten beschrieben). Blkmap-Einträge 2324A und 2324B veranschaulichen, daß gemäß Fig. 17B die 4-KB-Blöcke 2304 und 2306 der Inoden-Datei 2346 in dem aktiven Dateisystem (FS-BIT gleicht 1) und in dem Konsistenzpunkt (CP-BIT gleicht 1) sind. In ähnlicher Weise sind die übrigen Blöcke 2310-2312 und 2316-2320 sowie 2324 in dem aktiven Dateisystem und in dem Konsistenzpunkt. Allerdings sind die Blöcke 2308 und 2322 sowie 2326-2328 weder in dem aktiven Dateisystem noch in dem Konsistenzpunkt (was durch BIT0 bzw. BIT31 angegeben wird). Der Eintrag für den gelöschten Block 2314 hat einen Wert 0 im FS-BIT, was anzeigt, daß er aus dem aktiven Dateisystem entfernt wurde.
- Im Schritt 510 der Fig. 5 werden sämtliche "unsauberen" Inoden in dem System als im Konsistenzpunkt befindlich markiert. Unsaubere Inoden enthalten sowohl Inoden, die unsauber sind, als auch Inoden, welche unsaubere Puffer referenzieren. Fig. 17I veranschaulicht eine Liste von Inoden mit unsauberen Puffern, wo die Konsistenzpunkt-Flags 2391 und 2392 von Inoden 2306A und 2306B gesetzt (1) sind. Die Inode 2306A referenziert den Block 2314, der Daten "C" der Datei 2340 enthält, die aus dem aktiven Dateisystem zu löschen ist. Die Inode 2306B des Blocks 2306 der Inoden-Datei 2346 referenziert die Datei 2342. Der Block 2320, der die Daten "F" enthält, wurde modifiziert, und es muß ein neuer Block zugewiesen werden, der die Daten "F" enthält. Im Schritt 510 werden die unsauberen Inoden 2306A und 2306B in den Puffer für den Block 2308 einkopiert. Der Puffer für den Block 2306 wird anschließend (im Schritt 530) auf Platte geschrieben. Dies ist in Fig. 17E dargestellt. Die modifizierten Daten existieren nur in dem Speicher, und der Puffer 2308 ist als unsauber markiert. Die Inkonsistenzpunkt-Flags 2391 und 2392 der Inoden 2306A und 2306B werden anschließend gelöscht (0), wie in Fig. 17A dargestellt. Dies gibt die Inoden für die Benutzung durch andere Prozesse frei.
- Im Schritt 520 werden reguläre Dateien auf Platte geräumt. Damit wird dem Block 2322 Plattenspeicherplatz zugewiesen. Der Block 2314 der Datei 2340 ist zu löschen, so daß mit diesem Block nichts geschieht, bis später dann der Konsistenzpunkt abgeschlossen ist. Der Block 2322 wird im Schritt 520 auf Platte geschrieben. Dies ist in Fig. 17F dargestellt, wo Puffer für die Blöcke 2322 und 2314 auf Platte geschrieben wurden (markiert durch ***). Die Zwischen-Zuordnung von Plattenspeicherraum (**) ist nicht dargestellt. Die Inoden 2308A und 2308B des Blocks 2308 der Inoden-Datei 2346 werden anschließend in die Inoden-Datei geräumt. Die Inode 2308A des Blocks 2308 referenziert Blöcke 2310 und 2312 der Datei 2346. Die Inode 2308B referenziert Blöcke 2316, 2318, 2322 für die Datei 2342. Wie in Fig. 17F gezeigt ist, wird Plattenspeicherplatz für den Block 2308 der Inode 2346 und für den direkten Block 2322 der Datei 2342 zugewiesen. Allerdings ist das Dateisystem selbst noch nicht aktualisiert worden. Damit bleibt das Dateisystem in einem konsistenten Zustand.
- Im Schritt 530 wird die blkmap-Datei 2344 auf Platte geräumt. Dies ist in Fig. 17G dargestellt, wo die blkmap-Datei 2344 durch ein Sternchen als unsauber gekennzeichnet ist.
- Im Schritt 610 der Fig. 6 wird die Inode für die blkmap-Datei vorab in die Inoden-Datei geräumt, wie in Fig. 17H gezeigt. Die Inode 2308C wurde in den Block 230B der Inoden-Datei 2346 geräumt. Allerdings referenziert die Inode 2308C immer noch den Block 2324. Im Schritt 620 wird Plattenspeicherraum für die blkmap-Datei 2344 und die Inoden-Datei 2346 zugewiesen. Der Block 2308 wird für die Inoden-Datei 2346 zugewiesen, und Block 2326 wird für die blkmap-Datei 2344 zugewiesen. Wie oben beschrieben, enthält der Block 2308 der Inoden-Datei 2346 eine vorabgeräumte Inode 2308C für die blkmap-Datei 2344. Im Schritt 630 wird die Inode für die blkmap-Datei 2344 in den vorgeräumten Block 2308C in der Inode 2346 geschrieben. Damit wird im Schritt 620 die interne Inode 2308C zum Referenzieren des Blocks 2324 aktualisiert und wird in den Puffer des Speichers kopiert, der den in den Block 2308 zu schreibenden Block 2306 enthält. Dies ist in Fig. 17H dargestellt, wo die Inode 2308C den Block 2326 referenziert.
- Im Schritt 640 werden die Einträge 2326A-2326L für jeden Block 2304- 2326 in der blkmap-Datei 2344 in Fig. 17J aktualisiert. Blöcke, die sich nach dem Beginn des Konsistenzpunkts in Fig. 17B nicht geändert haben, besitzen in ihren Einträgen dieselben Werte. Die Einträge werden dadurch aktualisiert, daß BIT0 (das FS-Bit) in das Konsistenzpunkt-Bit (BIT31) kopiert wird. Der Block 2306 ist nicht Teil des aktiven Dateisystems, und deshalb ist BIT0 gleich Null (BIT0 wurde im Schritt 620 ausgeschaltet, als der Block 2308 zugewiesen wurde, um neue Daten für diesen Teil der Inoden-Datei aufzunehmen). Dies ist in Fig. 17J für den Eintrag 2326B dargestellt. In ähnlicher Weise ist im Eintrag 2326F für den Block 2314 der Datei 2340 das BIT0 und das BIT31 gleich Null. Block 2320 der Datei 2342 und Block 2324 der blkmap-Datei 2344 werden in ähnlicher Weise gehandhabt, wie dies für die Einträge 2361 bzw. 2326K gezeigt ist. Im Schritt 650 werden der unsaubere Block 2308 der Inoden-Datei 2346 und der unsaubere Block 2326 der blkmap-Datei 2344 auf Platte geschrieben. Dies ist in Fig. 17K durch ein dreifaches Sternchen (***) neben den Blöcken 2308 und 2326 angegeben.
- Bezugnehmend auf Fig. 5 wird im Schritt 540 der Dateisysteminformationsblock 2302 auf Platte geräumt, und dies geschieht zweimal. Damit ist der Fsinfo-Block 2302 unsauber geworden und wird anschließend auf Platte geschrieben (in Fig. 17L durch ein Dreifachsternchen angedeutet). In Fig. 17L ist ein einzelner Fsinfo-Block 2302 dargestellt. Wie aus dem Diagramm ersichtlich ist, referenziert der Fsinfo-Block 2302 jetzt den Block 2304 und den Block 2308 der Inoden-Datei 2346. In Fig. 17L ist der Block 2306 nicht mehr Bestandteil der Inoden-Datei 2346 des aktiven Dateisystems. In ähnlicher Weise enthält die durch die Inode 2308A der Inoden-Datei 2346 referenzierte Datei 2340 Blöcke 2310 und 2312. Der Block 2314 ist nicht mehr Bestandteil der Datei 2340 innerhalb dieses Konsistenzpunkts. Die Datei 2342 enthält Blöcke 2316, 2318 und 2322 in dem neuen Konsistenzpunkt, während Block 2320 nicht Bestandteil der Datei 2342 ist. Weiterhin referenziert der Block 2308 der Inoden-Datei 2346 eine neue blkmap-Datei 2344 mit dem Block 2326.
- Wie in Fig. 17L gezeigt ist, wird in einem Konsistenzpunkt das aktive Dateisystem dadurch aktualisiert, daß die Inode der Inoden-Datei 2346 in den Fsinfo-Block 2302 einkopiert wird. Allerdings verbleiben die Blöcke 2314, 2320, 2324 und 2306 des vorhergehenden Konsistenzpunkts auf der Platte. Diese Blöcke werden beim Aktualisieren des Dateisystems niemals überschrieben, um zu garantieren, daß sowohl der alte Konsistenzpunkt 1830 als auch der neue Konsistenzpunkt 1831 auf der Platte vorhanden sind, siehe Fig. 20 und Schritt S40.
- Das WAFL-System arbeitet mit Schnappschüssen. Ein Schnappschuß oder eine Momentaufnahme ist eine nur lesbare Kopie eines gesamten Dateisystems zu einem gegebenen Augenblick, zu welchem der Schnappschuß erzeugt wird. Ein neu erzeugter Schnappschuß bezieht sich auf exakt dieselben Plattenblöcke, wie dies das aktive Dateisystem tut. Deshalb wird er innerhalb einer kurzen Zeitspanne erzeugt und verbraucht keinen zusätzlichen Plattenspeicherplatz. Nur wenn Datenblöcke innerhalb des aktiven Dateisystems modifiziert und in neue Stellen auf der Platte geschrieben werden, beginnt der Schnappschuß, besonderen Platz zu beanspruchen.
- WAFL hält bis zu 20 unterschiedliche Schnappschüsse, die von 1 bis 20 numeriert sind. Damit ermöglicht WAFL die Erzeugung mehrfacher "Klone" desselben Dateisystems. Jeder Schnappschuß wird durch eine Schnappschuß-Inode repräsentiert, die ähnlich der Darstellung des aktiven Dateisystems durch eine Wurzelinode ist. Schnappschüsse werden erzeugt durch Duplizieren der Wurzeldatenstruktur des Dateisystems. In der bevorzugten Ausführungsform ist die Wurzeldatenstruktur die Wurzelinode.
- Allerdings könnte auch jede andere Datenstruktur verwendet werden, die repräsentativ für ein gesamtes Dateisystem ist. Die Schnappschuß-Inoden befinden sich an einer festen Stelle innerhalb der Inoden-Datei. Die Begrenzung auf 20 Schnappschüsse wird durch die Größe der Blockabbild- Einträge bestimmt. WAFL erfordert zwei Schritte zum Erzeugen eines neuen Schnappschusses N: Kopieren der Wurzelanode in die Anode für den Schnappschuß N und Kopieren des Bits 0 in das Bit N jedes Blockabbild-Eintrags innerhalb der blkmap-Datei. Bit0 gibt die Blöcke an, die von dem Baum unterhalb der Wurzelinode referenziert werden.
- Das Ergebnis ist ein neuer Dateisystembaum, dessen Wurzel gebildet wird durch die Schnappschuß-Inode N, die exakt dieselben Plattenblöcke referenziert wie die Wurzelinode. Durch Einstellen eines entsprechenden Bits in der Blockabbildung für jeden Block in dem Schnappschuß wird verhindert, daß Schnappschuß-Blöcke freigesetzt werden, selbst wenn die aktive Datei die Schnappschuß-Blöcke nicht mehr verwendet. Da WAFL stets neue Daten auf unbenutzte Speicherplätze schreibt, ändert sich der Schnappschuß-Baum selbst dann nicht, wenn das aktive Dateisystem sich ändert. Da ein neu erzeugter Schnappschuß-Baum exakt die gleichen Blöcke wie die Wurzelinode referenziert, verbraucht er keinen zusätzlichen Plattenspeicherplatz. Im Lauf der Zeit referenziert der Schnappschuß Plattenblöcke, die ansonsten freigesetzt würden. Damit benutzen im Verlauf der Zeit der Schnappschuß und das aktive Dateisystem immer weniger Blöcke, so daß der von dem Schnappschuß beanspruchte Raum zunimmt. Schnappschüsse können gelöscht werden, wenn sie eine nicht mehr akzeptierbare Anzahl von Plattenblöcken belegen.
- Die Liste aktiver Schnappschüsse wird zusammen mit den Namen der Schnappschüsse in einer Schnappschuß-Verzeichnis genannten Metadaten- Datei abgespeichert. Der Plattenzustand wird in der oben beschriebenen Weise aktualisiert. Wie bei sämtlichen anderen Änderungen erfolgt die Aktualisierung durch automatisches Weiterschreiten von einem Konsistenzpunkt zum anderen. Modifizierte Blöcke werden in unbenutzte Plätze auf der Platte geschrieben, woraufhin eine neue Wurzelinode, welche das aktualisierte Dateisystem beschreibt, geschrieben wird.
- Fig. 18A ist ein Diagramm des Dateisystems 1830, bevor ein Schnappschuß aufgenommen wird, wobei Umwege-Ebenen entfernt wurden, um einen einfacheren Überblick über das WAFL-Dateisystem zu ermöglichen. Das Dateisystem 1830 repräsentiert das in Fig. 16 gezeigte Dateisystem 1690. Das Dateisystem 1830 besteht aus Blöcken 1812 bis 1820. Die Inode der Inoden-Datei ist in dem Fsinfo-Block 1810 enthalten. Während eine einzelne Kopie des Fsinfo-Blocks 1810 in Fig. 18A dargestellt ist, versteht sich natürlich, daß auf der Platte eine zweite Kopie des Fsinfo-Blocks vorhanden ist. Die in dem Fsinfo-Block 1810 enthaltene Inode 1810A enthält 16 Zeiger, die auf 16 Blöcke mit gleicher Umwegeebene zeigen. Die Blöcke 1810-1820 in Fig. 18A repräsentieren sämtliche Blöcke innerhalb des Dateisystems 1830 einschließlich direkte Blöcke, indirekte Blöcke, etc. Obschon lediglich fünf Blöcke 1812-1820 dargestellt sind, kann jeder Block auf weitere Blöcke verweisen.
- Fig. 18B ist ein Diagramm, das die Erzeugung eines Schnappschusses zeigen. Der Schnappschuß wird für das gesamte Dateisystem 1830 dadurch erstellt, daß einfach die Inode 1810A der Inoden-Datei kopiert wird, die in dem Fsinfo-Block 1810 gespeichert ist, wobei die Inode in die Schnappschuß-Inode 1822 einkopiert wird. Durch Einkopieren der Inode 1810A der Inoden-Datei wird eine neue Datei von Dioden erzeugt, die das gleiche Dateisystem wie das aktive Dateisystem repräsentiert, weil die Inode 1810A der Inoden-Datei selbst kopiert wird. Es brauchen keine weiteren Blöcke 1812-1820 dupliziert zu werden. Die kopierte Inode oder Schnappschuß-Inode 1822 wird dann in die Inoden-Datei einkopiert, was einen Block innerhalb der Inoden-Datei unsauber macht. Für eine Inoden-Datei aus einer oder mehreren Umwegeebenen wird jeder indirekte Block wiederum unsauber gemacht. Dieser Vorgang des Verunreinigens von Blöcken schreitet durch sämtliche Umwegeebenen. Jeder 4-KB-Block inner halb der Inoden-Datei auf der Platte enthält 32 Inoden, wo jede Inode 128 Bytes Länge aufweist.
- Die neue Schnappschuß-Inode 1822 nach Fig. 18B verweist zurück auf die Blöcke 1812-1820 höchster Umwegeebene, referenziert durch die Inode 1810A der Inoden-Datei, wenn der Schnappschuß 1822 aufgenommen wird. Die Inoden-Datei selbst ist eine rekursive Struktur, weil sie Schnappschüsse des Dateisystems 1830 beinhaltet. Jeder Schnappschuß 1822 ist eine Kopie der Inode 1810A der Inoden-Datei, welche in die Inoden-Datei einkopiert wird.
- Fig. 18C ist ein Diagramm, das das aktive Dateisystem 1830 und den Schnappschuß 1822 für den Zeitpunkt veranschaulicht, zu dem eine Änderung des aktiven Dateisystems 1830 nach Aufnahme des Schnappschusses 1822 stattfindet. Wie in dem Diagramm gezeigt, wird der Block 1818 mit den Daten "D" nach Aufnahme des Schnappschusses (Fig. 18B) modifiziert, und deshalb wird ein neuer Block 1824 mit Daten "Dprime" für das aktive Dateisystem 1830 zugeordnet. Damit enthält das aktive Dateisystem 1830 Blöcke 1812-1816 und 1820-1824, es enthält aber nicht den Block 20 1818 mit den Daten "D". Allerdings wird der die Daten "D" enthaltende Block 1818 deshalb nicht überschrieben, weil das WAFL-System keine Blöcke auf der Platte überschreibt. Der Block 1818 wird gegen ein Überschreiben von einem Schnappschuß-Bit geschützt, welches in dem Blockabbild-Eintrag für den Block 1818 gesetzt wird. Deshalb zeigt der Schnappschuß 1822 immer noch auf den unmodifizierten Block 1818 ebenso wie auf die Blöcke 1812-1816 und 1820. Die vorliegende Erfindung unterscheidet sich gemäß den Fig. 18A-18C von bekannten Systemen, die "Klone" eines Dateisystems erzeugen, wobei ein Klon eine Kopie sämtlicher Blöcke einer Diodendatei auf einer Platte ist. Damit 30 werden die gesamten Inhalte der herkömmlichen Inoden-Dateien dupliziert, was große Mengen (MB) an Plattenspeicherplatz ebenso erfordert wie beträchtliche Zeit für Platten-E/A-Operationen.
- Wenn das aktive Dateisystem 1830 in Fig. 18C modifiziert wird, benötigt es deshalb mehr Plattenspeicherraum, weil das Dateisystem mit den Blöcken 1812-1820 nicht überschrieben wird. In Fig. 18C ist der Block 1818 als ein direkter Block dargestellt. Bei einem wirklichen Dateisystem allerdings kann der Block 1818 auch durch einen indirekten Block mittels Zeiger angesprochen werden. Wenn also der Block 1818 modifiziert und an einen neuer Stelle der Platte als Block 124 abgespeichert wird, werden auch die entsprechenden direkten und indirekten Blöcke kopiert und dem aktiven Dateisystem 1830 zugeordnet.
- Fig. 19 ist ein Diagramm, welches die Änderungen veranschaulicht, die im Block 1824 gemäß Fig. 18C auftreten. Der Block 1824 nach Fig. 18C ist in der gestrichelten Linie 1824 in Fig. 19 dargestellt. Fig. 19 veranschaulicht verschiedene Umwegeebenen für den Block 1824 nach Fig. 18C. Der neue Block 1910, welcher gemäß Fig. 18C auf die Platte geschrieben wird, ist in Fig. 19 mit 1910 bezeichnet. Weil der Block 1824 einen Datenblock 1910 enthält, welcher modifizierte Daten beinhaltet, die durch einen doppelten Umweg oder doppelten Verweis referenziert werden, werden auch zwei weitere Blöcke 1918 und 1926 modifiziert. Der Zeiger 1924 eines einfach-indirekten Blocks 1918 referenziert einen neuen Block 1910, und deshalb muß der Block 1918 an eine neue Stelle der Platte geschrieben werden. In ähnlicher Weise wird der Zeiger 1928 des indirekten Blocks 1926 modifiziert, da er auf den Block 1918 zeigt. Deshalb kann gemäß Fig. 19 das Modifizieren eines Datenblocks 1910 zur Folge haben, daß mehrere indirekte Blöcke 1918 und 1926 ebenfalls modifiziert werden. Dies macht es erforderlich, auch die Blöcke 1918 und 1926 auf eine neue Stelle der Platte zu schreiben.
- Da die direkten und indirekten Blöcke 1910, 1918 und 1926 des Datenblocks 1824 in Fig. 18C geändert und an eine neue Stelle geschrieben wurden, wird die Inode in der Inoden-Datei in einen neuen Block geschrieben. Der modifizierte Block der Inoden-Datei erhält einen neuen Block auf der Platte, da Daten nicht überschrieben werden können.
- Wie in Fig. 19 gezeigt ist, wird auf den Block 1910 durch indirekte Blöcke 1926 bzw. 1918 gezeigt. Wenn also der Block 1910 modifiziert und an einer neuen Stelle der Platte gespeichert wird, werden auch die entsprechenden direkten und indirekten Blöcke kopiert und dem aktiven Dateisystem zugeordnet. Damit muß eine Reihe von Datenstrukturen aktualisiert werden. Das Ändern des direkten Blocks 1910 und der indirekten Blöcke 1918 und 1926 veranlaßt, daß die blkmap-Datei modifiziert werden muß.
- Die Schlüsseldateilstrukturen für Schnappschüsse sind die Blockabbild- Einträge, wo jeder Eintrag mehrere Bits für einen Schnappschuß aufweist. Dies ermöglicht es, daß mehrere Schnappschüsse erzeugt werden. Ein Schnappschuß ist ein Bild eines Baums von Blöcken, die das Dateisystem (1830 in Fig. 18) bilden. Solange keine neuen Daten auf Blöcke des Schnappschusses geschrieben werden, wird das durch den Schnappschuß repräsentierte Dateisystem nicht geändert. Ein Schnappschuß ist einem Konsistenzpunkt ähnlich.
- Das erfindungsgemäße Dateisystem ist vollständig konsistent nach dem letzten Mal des Schreibens der Fsinfo-Blöcke 1810 und 1870. Wenn daher das System einen Netzausfall erleidet, entsteht beim Neustart das Dateisystem 1830 in konsistentem Zustand. Da 8-32 MB Plattenspeicherraum bei einem typischen bekannten "Klon" eines 1-GB-Dateisystems verwendet werden, führen Klone nicht zu Konsistenzpunkten oder Schnappschüssen wie die vorliegende Erfindung.
- Bezugnehmend auf Fig. 22 existieren zwei frühere Schnappschüsse 2110A und 2110B auf der Platte. Zu dem Zeitpunkt, zu dem ein dritter Schnappschuß entsteht, wird die auf das aktive Dateisystem zeigende Wurzelinode in den Inodeneintrag 2110C für den dritten Schnappschuß in der Inoden-Datei 2110 kopiert. Gleichzeitig zeigt in dem durchgehenden Konsistenzpunkt ein Flag an, daß der Schnappschuß 3 erzeugt wird. Das gesamte Dateisystem wird verarbeitet, indem geprüft wird, ob BIT0 für jeden Eintrag innerhalb der blkmap-Datei gesetzt (1) oder gelöscht (0) ist. Sämtliche BIT0-Werte für jeden Blockabbild-Eintrag werden in die Ebene für den Schnappschuß 3 kopiert. Nach Beendigung ist jeder aktive Block 2110-2116 und 1207 in dem Dateisystem zu diesem Zeitpunkt in dem Schnappschuß aufgenommen.
- Blöcke, die durchgängig für eine gegebene Zeitspanne auf der Platte existiert haben, befinden sich ebenfalls in den entsprechenden Schnappschüssen 2110A-2110B, die dem dritten Schnappschuß 2110C vorausgehen. Wenn ein Block in dem Dateisystem für eine ausreichend lange Zeitspanne verblieben ist, ist er in sämtlichen Schnappschüssen enthalten. Der Block 1207 ist ein derartiger Block. Wie in Fig. 22 gezeigt ist, wird der Block 1207 durch die Inode 2210G der aktiven Inoden-Datei referenziert, außerdem indirekt durch die Schnappschüsse 1, 2 und 3.
- Die sequentielle Reihenfolge von Schnappschüssen repräsentiert nicht unbedingt eine chronologische Reihenfolge von Dateisystem-Kopien. Jeder einzelne Schnappschuß in einem Dateisystem kann zu jeder gegebenen Zeit gelöscht werden, um dadurch einen Eintrag für nachfolgenden Gebrauch verfügbar zu machen. Wenn BIT0 eines blkmap-Eintrags, der das aktive Dateisystem referenziert, gelöscht wird (was bedeutet, daß der Block aus dem aktiven Dateisystem gelöscht wurde), so kann der Block nicht noch einmal benutzt werden, wenn irgendeines der Schnappschuß- Referenzbits gesetzt wird. Dies deshalb, weil der Block Teil eines Schnappschusses ist, der noch in Gebrauch ist. Ein Block kann nur neu verwendet werden, wenn sämtliche Bits in dem blkmap-Eintrag auf Null gesetzt sind.
- Das Erzeugen eines Schnappschusses entspricht etwa exakt der Erzeugung eines regulären Konsistenzpunkts gemäß Fig. 5. Im Schritt 510 werden sämtliche unsauberen Inoden als in dem Konsistenzpunkt befindlich markiert. Im Schritt 520 werden reguläre Dateien auf die Platte geräumt. Im Schritt 520 werden Spezialdateien (das heißt die Inoden-Datei und die blkmap-Datei) auf Platte geräumt. Im Schritt 540 werden Fsinfo-Blöcke auf Platte geräumt. Im Schritt 550 werden sämtliche Inoden, die sich nicht im Konsistenzpunkt befanden, verarbeitet. Fig. 5 wird oben im einzelnen beschrieben. Tatsächlich erfolgt das Erzeugen eines Schnappschusses als Teil der Erzeugung eines Konsistenzpunkts. Der Hauptunterschied zwischen der Erzeugung eines Schnappschusses und der eines Konsistenzpunkts besteht darin, daß sämtliche Einträge der blkmap-Datei das aktive FS-Bit in das Schnappschuß-Bit einkopiert haben. Das Schnappschuß-Bit repräsentiert den entsprechenden Schnappschuß, um die Blöcke in dem Schnappschuß gegen Überschreiben zu schützen. Das Erzeugen und das Löschen von Schnappschüssen erfolgt im Schritt 530, da dies der einzige Punkt ist, an dem das Dateisystem vollständig selbst konsistent ist und auf dem Wege zur Platte ist.
- Im Schritt 530 werden unterschiedliche Schritte durchgeführt, die dann in Fig. 6 dargestellt sind, und zwar für einen Konsistenzpunkt, wenn ein neuer Schnappschuß erzeugt wird. Die Schritte sind sehr ähnlich jenen für einen regulären Konsistenzpunkt. Fig. 7 ist ein Flußdiagramm, welches die Schritte zeigt, welche der Schritt 530 zum Erzeugen eines Schnappschusses umfaßt. Wie oben beschrieben, weist der Schritt 530 Plattenspeicherplatz für die blkmap-Datei und die Inoden-Datei zu und kopiert das aktive FS-Bit in das Schnappschuß-Bit, welches den entsprechenden Schnappschuß repräsentiert, um die Blöcke in dem Schnappschuß gegen Überschreiben zu schützen.
- Im Schritt 710 werden die Inoden der blkmap-Datei und des Schnappschusses auf Platte vorgeräumt. Zusätzlich zu dem Räumen der Inode und der blkmap-Datei in einen Block der Inoden-Datei (wie im Schritt 610 der Fig. 6 für einen Konsistenzpunkt), wird die Inode des erzeugten Schnappschusses auch in einen Block der Inoden-Datei geräumt. Dies garantiert, daß der Block in der Inoden-Datei, der die Inode des Schnappschusses enthält, unsauber ist.
- Im Schritt 720 wird jeder Block in der blkmap-Datei unsauber gemacht. Im Schritt 760 (unten beschrieben) werden sämtliche Einträge in der blkmap- Datei aktualisiert, und nicht nur die Einträge in unsauberen Blöcken. Somit müssen sämtliche Blöcke der blkmap-Datei hier als unsauber markiert werden, um zu garantieren, daß der Schritt 730 für sie Plattenspeicherplatz zum Schreiben zuweist.
- Im Schritt 730 wird für sämtliche unsauberen Blöcke in der Inode und in blkmap-Dateien Plattenspeicherplatz zugewiesen. Die unsauberen Blöcke enthalten den Block in der Inoden-Datei, welche die Inode der blkmap- Datei, die unsauber ist, enthält, außerdem den Block, der die Inode für den neuen Schnappschuß enthält.
- Im Schritt 740 werden die Inhalte der Wurzelinode für das Dateisystem in die Inode des Schnappschusses innerhalb der Inoden-Datei kopiert. Zu dieser Zeit wird jedem Block, der Teil des neuen Konsistenzpunkts ist und der auf Platte geschrieben wird, Plattenspeicherplatz zugeordnet. Damit kopiert ein Duplizieren der Wurzelinode in die Schnappschuß-Inode in wirksamer Weise das gesamte aktive Dateisystem. Die aktuellen Blöcke, die in dem Schnappschuß enthalten sind, sind die gleichen Blöcke des aktiven Dateisystems.
- Im Schritt 750 werden die Inoden der blkmap-Datei und der Schnappschuß in die Inoden-Datei kopiert.
- Im Schritt 760 werden Einträge in der blkmap-Datei aktualisiert. Zusätzlich zu dem Kopieren des aktiven FS-Bits in das CP-Bit für die Einträge wird das aktive FS-Bit auch in das dem neuen Schnappschuß entsprechende Schnappschuß-Bit kopiert.
- Im Schritt 770 werden sämtliche unsauberen Blöcke in den blkmap- und Inoden-Dateien auf Platte geschrieben.
- Schließlich werden zu einer gewissen Zeit Schnappschüsse selbst aus dem Dateisystem entfernt, Schritt 760. Ein Schnappschuß wird dadurch aus dem Dateisystem entfernt, daß sein Schnappschuß-Inodeneintrag innerhalb der Inoden-Datei des aktiven Dateisystems gelöscht und jedes Bit, das der Schnappschußnummer in jedem Eintrag innerhalb der blkmap-Datei entspricht, gelöscht wird. Es erfolgt eine Zählung auch für jedes Bit des Schnappschusses in sämtlichen blkmap-Einträgen, die aus einem eingestellten Wert gelöscht werden, um dadurch eine Zählung der durch Löschen des Schnappschusses freigesetzten Blöcke zu schaffen (entsprechend der freigesetzten Menge an Plattenspeicherplatz). Das System entscheidet anhand des ältesten Schnappschusses, welcher Schnappschuß gelöscht werden soll. Auch Benutzer können von Hand spezifizierte Schnappschüsse löschen.
- Die vorliegende Erfindung begrenzt die Gesamtanzahl von Schnappschüssen und führt eine blkmap-Datei, die Einträge mit Mehrfach-Bits zum Verfolgen der Schnappschüsse anstelle der Verwendung von Zeigern mit einem COW-Bit, wie dies in Episode der Fall ist, aufweist. Ein nicht verwendeter Block enthält für sämtliche Bits in seinem blkmap-Datei-Eintrag nur Nullen. Im Verlauf der Zeit wird das BIT0 für das aktive Dateisystem üblicherweise zu einem gegebenen Zeitpunkt eingeschaltet. Das Setzen des BIT0 identifiziert den entsprechenden Block als in dem aktiven Dateisystem zugeordnet. Wie oben angegeben, werden sämtliche Schnappschuß-Bits zu Beginn auf Null gesetzt. Wenn das aktive Dateibit vor Setzen irgendeines Schnappschuß-Bits gelöscht ist, ist der Block in keinem auf Platte gespeicherten Schnappschuß vorhanden. Deshalb steht der Block sofort zur Neuzuweisung zur Verfügung und kann später aus einem Schnappschuß nicht wiedergewonnen werden.
- Wie oben beschrieben, ist ein Schnappschuß einem Konsistenzpunkt sehr ähnlich. Deshalb soll die Erzeugung eines Schnappschusses unter Bezugnahme auf die Unterschiede zwischen ihr und der Erzeugung eines Konsistenzpunkts gemäß Fig. 17A-17L erläutert werden. Fig. 21A-21F zeigen die Unterschiede bei der Erzeugung eines Schnappschusses.
- Fig. 17A-17D zeigen den Zustand des WAFL-Dateisystems, wenn ein Schnappschuß begonnen wird. Sämtliche unsauberen Inoden werden als in dem Konsistenzpunkt befindlich markiert, Schritt 510, und im Schritt 520 werden die regulären Dateien auf Platte geräumt. Damit ist die Anfangsverarbeitung für einen Schnappschuß identisch mit der eines Konsistenzpunkts. Die Verarbeitung für einen Schnappschuß unterscheidet sich im Schritt 530 von der des Konsistenzpunkts. Im folgenden wird die Verarbeitung eines Schnappschusses gemäß Fig. 7 erläutert.
- Die folgende Beschreibung gilt für einen zweiten Schnappschuß des WAFL-Dateisystems. Ein erster Schnappschuß ist in den blkmap- Einträgen der Fig. 17C aufgezeichnet. Wie in den Einträgen 2324A- 2324M, den Blöcken 2304-2306, 2310-2320 und 2324 dargestellt, sind diese in dem ersten Schnappschuß enthalten. Sämtliche anderen Schnappschuß-Bits (BIT1-BIT20) haben angenommener Weise den Wert 0, was anzeigt, daß ein entsprechender Schnappschuß auf der Platte nicht vorliegt. Fig. 21A zeigt das Dateisystem nach Abschluß der Schritte 510 und 520.
- Im Schritt 710 werden Inoden 2308C und 2308D des Schnappschusses 2 und der blkmap-Datei 2344 auf Platte geräumt. Dies stellt sicher, daß der Block der Inoden-Datei, der die Schnappschuß-2-Inode enthalten wird, unsauber ist. In Fig. 21B werden Inoden 2308C und 2308D für den Schnappschuß 2 und für die blkmap-Datei 2344 vorgeräumt.
- Im Schritt 720 ist die gesamte blkmap-Datei 2344 unsauber gemacht. Dies veranlaßt die gesamte blkmap-Datei 2344, im Schritt 730 Plattenraum zugewiesen zu bekommen. Im Schritt 730 wird Plattenraum für unsaubere Blöcke 2308 und 2326 für die Inoden-Datei 2346 und die blkmap-Datei 2344 gemäß Fig. 21 C zugewiesen. Angedeutet ist dies durch ein Dreifachsternchen (***) neben den Blöcken 2308 und 2326. Dies unterscheidet sich von der Erzeugung eines Konsistenzpunkts; bei dem. Plattenspeicherplatz nur für Blöcke zugewiesen ist, deren Einträge sich im Schritt 620 der Fig. 6 innerhalb der blkmap-Datei 2344 geändert haben. Die blkmap- Datei 2344 nach Fig. 21C enthält einen einzelnen Block 2324. Wenn al lerdings die blkmap-Datei 2344 mehr als einen Block umfaßt, so wird im Schritt 730 Plattenspeicherplatz für sämtliche Blöcke zugewiesen.
- Im Schritt 740 wird die Wurzelinode für das neue Dateisystem in die Inode 2308D für Schnappschuß 2 kopiert. Im Schritt 750 werden die Inoden 2308C und 2308D der blkmap-Datei 2344 und der Schnappschuß 2 auf Platte geräumt, wie in Fig. 21D gezeigt ist. Das Diagramm veranschaulicht, daß die Schnappschuß-2-Inode 2308D Blöcke 2304 und 2308, nicht aber Block 2306 referenziert.
- Im Schritt 760 werden Einträge 2326A-2326L im Block 2326 der blkmap- Datei 2344 gemäß Fig. 21 E aktualisiert. Das Diagramm zeigt, daß das Schnappschuß-2-Bit (BIT2) ebenso wie das FS-BIT und das CP-BIT für jeden Eintrag 2326A-2326L aktualisiert wird. Damit sind die Blöcke 2304, 2308-2312, 2316-2318, 2322 und 2326 im Schnappschuß 2 enthalten, die Blöcke 2306, 2314, 2320 und 2324 jedoch nicht. Im Schritt 770 werden die unsauberen Blöcke 2308 und 2326 auf Platte geschrieben.
- Die weitere Verarbeitung des Schnappschusses 2 ist identisch mit der Erzeugung eines Konsistenzpunkts, wie dies in Fig. 5 gezeigt ist. Im Schritt 540 werden zwei Fsinfo-Blöcke auf Platte geräumt. Fig. 21F repräsentiert das WAFL-Dateisystem in einem konsistenten Zustand anschließend an diesen Schritt. Die Dateien 2340, 2342, 2344 und 2346 des konsistenten Dateisystems nach Abschluß des Schritts 540 sind durch gestrichelte Linien in Fig. 21F angegeben. Im Schritt 50 wird der Konsistenzpunkt durch Verarbeitung der Inoden, die nicht in dem Konsistenzpunkt waren, abgeschlossen.
- Unix-Dateisysteme müssen in jeder Inode eine "Zugriffszeit" (atime von access time) enthalten. Atime gibt den letzten Zeitpunkt des Lesens der Datei an. Er wird jedesmal aktualisiert, wenn ein Zugriff auf die Datei erfolgt. Wenn also eine Datei gelesen wird, wird der Block, der die Inode in der Inoden-Datei enthält, neu geschrieben, um die Inode zu aktualisieren. Dies könnte von Nachteil für die Erzeugung von Schnappschüssen deshalb sein, weil als Konsequenz das Lesen einer Datei möglicherweise Speicherplatz auf der Platte benötigt. Außerdem könnte das Lesen sämtlicher Dateien innerhalb des Dateisystems zur Folge haben, daß die gesamte Inoden- Datei dupliziert wird. Die vorliegende Erfindung löst dieses Problem.
- Wegen des Vorhandenseins von Atime könnte ein Lesevorgang möglicherweise Plattenspeicherplatz verbrauchen, da ein Modifizieren einer Inode zur Folge hat, daß ein neuer Block für die Inoden-Datei auf die Platte geschrieben wird. Außerdem könnte ein Lesevorgang möglicherweise fehlschlagen, wenn ein Dateisystem voll ist, demzufolge ein abnormaler Zustand des Dateisystems auftritt.
- Im allgemeinen werden Daten auf einer Platte in dem WAFL-Dateisystem nicht überschrieben, um auf der Platte gespeicherte Daten zu schützen. Die einzige Ausnahme dieser Regel besteht darin, daß Atime für eine Inode überschreibt, wie dies in den Fig. 23A-23B gezeigt ist. Wenn ein "Atime-Überschreiben" stattfindet, bestehen die einzigen in einem Block der Inoden-Datei modifizierten Daten in Atime für eine oder mehrere der Inoden, die sie enthält, und der Block wird an derselben Stelle neu geschrieben. Dies ist die einzige Ausnahme innerhalb des WAFL-Systems. Im übrigen werden neue Daten stets auf neue Plattenspeicherplätze geschrieben.
- In Fig. 23A sind die Atimes 2423 und 2433 einer Inode 2422 in einem alten WAFL-Inoden-Datei-Block 2420 und die Schnappschußinode 2432, die den Block 2420 referenziert, dargestellt. Die Inode 2422 des Blocks 2420 referenziert direkt den Block 2410. Atime 2423 der Inode 2422 ist "4/30 9 : 15 PM", während Atime 2433 der Schnappschuß-Inode 2432 "5/1 10 : 00 AM" ist. Fig. 23A veranschaulicht das Dateisystem vor einem Zugriff auf den direkten Puffer 2410.
- Fig. 23B veranschaulicht die mode 2422 des direkten Blocks 2410, nachdem auf den direkten Block 2410 zugegriffen wurde. Wie in dem Diagramm dargestellt, wird die Zugriffszeit 2423 der mode 2422 mit der Zugriffszeit 2433 des Schnappschusses 2432, den sie referenziert, überschrieben. Damit wird die Zugriffszeit 2423 der mode 2422 für den direkten Block 2410 "5/1 11 : 23 AM".
- Das Zulassen des Überschreibens von moden-Datei-Blöcken mit neuen Zugriffszeiten (Atime) führt zu einer leichten Inkonsistenz innerhalb des Schnappschusses. Die Atime für eine Datei in einem Schnappschuß kann tatsächlich später liegen als der Zeitpunkt, zu dem der Schnappschuß erzeugt wurde. Um Benutzer an einem Feststellen dieser Inkonsistenz zu hindern, justiert WAFL den Wert Atime für sämtliche Dateien innerhalb eines Schnappschusses auf diejenige Zeit ein, zu der der Schnappschuß tatsächlich erzeugt wurde, und nicht auf die Zeit, zu der auf die Datei zuletzt zugegriffen wurde. Diese Schnappschußzeit wird in der mode gespeichert, die den Schnappschuß in seiner Gesamtheit beschreibt. Wenn folglich über den Schnappschuß zugegriffen wird, so wird die Zugriffszeit 2423 für die mode 2422 stets in Form "5/1 10 : 00 AM" gemeldet. Dies geschieht sowohl vor dem Aktualisieren, wenn man "4/30 9 : 15 PM" erwarten könnte, als auch nach der Aktualisierung, wenn "5/1 11 : 23 AM" erwartet werden könnte. Erfolgt ein Zugriff durch das aktive Dateisystem, so werden die Zeiten in der Form "4/30 9 : 15 PM" und "5/1 11 : 23 AM" vor bzw. nach dem Aktualisieren gemeldet. Auf diese Weise wird ein Verfahren zum Führen eines Dateisystems in einem konsistenten Zustand und zum Erzeugen von ausschließlich lesbaren Kopien des Dateisystems offenbart.
Claims (2)
1. Verfahren zum Erzeugen eines Konsistenzpunkts, umfassend die
Schritte:
Markieren (510) einer Mehrzahl von Inoden, wobei eine Inode eine
Dateidefinitionsstruktur ist, die zumindest eine Datei in einem
Dateisystem beschreibt, die auf mehrere modifizierte Blöcke in einem
Dateisystem verweist, als in einem Konsistenzpunkt befindlich;
Räumen (520) regulärer Dateien sowie Metadateien (530) auf eine
Speichereinrichtung;
Räumen (540) mindestens eines Blocks von Dateisysteminformation auf
die Speichereinrichtung; und
erneutes Einstellen (550) jeglicher berührter Inoden, die nicht Teil des
Konsistenzpunkts waren, in eine Warteschlange.
2. Verfahren nach Anspruch 1, bei dem der Schritt des Räumens von
Metadateien auf die Speichereinrichtung weiterhin folgende Schritte
beinhaltet:
Vorräumen (610) einer Inode aus einer Blockabbildungsdatei in eine
Inodendatei;
Zuweisen (620) von Platz auf der Speichereinrichtung für sämtliche
berührten Blöcke in der Inode und den Blockabbildungsdateien;
erneutes Räumen (630) der Inode für die Blockabbildungsdatei;
Aktualisieren (640) einer Mehrzahl von Einträgen in der
Blockabbildungsdatei, wobei jeder Eintrag unter den mehreren Einträgen einen
Block auf der Speichereinrichtung repräsentiert; und
Schreiben (650) sämtlicher berührter Blöcke in der Blockabbildungsdatei
und der Inodendatei auf die Speichereinrichtung.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US7164393A | 1993-06-03 | 1993-06-03 | |
PCT/US1994/006320 WO1994029807A1 (en) | 1993-06-03 | 1994-06-02 | Write anywhere file-system layout |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69425658D1 DE69425658D1 (de) | 2000-09-28 |
DE69425658T2 true DE69425658T2 (de) | 2001-04-19 |
Family
ID=22102650
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69435146T Expired - Lifetime DE69435146D1 (de) | 1993-06-03 | 1994-06-02 | Verfahren und Vorrichtung zum Beschreiben beliebiger Bereiche eines Dateisystems |
DE69425658T Expired - Lifetime DE69425658T2 (de) | 1993-06-03 | 1994-06-02 | Anordnung eines dateisystems zum beschreiben beliebiger bereiche |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69435146T Expired - Lifetime DE69435146D1 (de) | 1993-06-03 | 1994-06-02 | Verfahren und Vorrichtung zum Beschreiben beliebiger Bereiche eines Dateisystems |
Country Status (8)
Country | Link |
---|---|
US (1) | US5819292A (de) |
EP (2) | EP0702815B1 (de) |
JP (1) | JP3751018B2 (de) |
AT (2) | ATE195825T1 (de) |
DE (2) | DE69435146D1 (de) |
DK (1) | DK0702815T3 (de) |
HK (2) | HK1013697A1 (de) |
WO (1) | WO1994029807A1 (de) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6728735B1 (en) | 2001-03-12 | 2004-04-27 | Network Appliance, Inc. | Restartable dump that produces a consistent filesystem on tapes |
US6751635B1 (en) | 2000-08-18 | 2004-06-15 | Network Appliance, Inc. | File deletion and truncation using a zombie file space |
US6889228B1 (en) | 2001-03-29 | 2005-05-03 | Network Appliance, Inc. | Cascading support for mirrored volumes |
US6952797B1 (en) | 2000-10-25 | 2005-10-04 | Andy Kahn | Block-appended checksums |
US6976189B1 (en) | 2002-03-22 | 2005-12-13 | Network Appliance, Inc. | Persistent context-based behavior injection or testing of a computing system |
US7178137B1 (en) | 2001-04-05 | 2007-02-13 | Network Appliance, Inc. | Automatic verification of scheduling domain consistency |
US7231412B2 (en) | 1993-06-03 | 2007-06-12 | Network Appliance, Inc. | Allocating files in a file system integrated with a raid disk sub-system |
US7296073B1 (en) | 2000-09-13 | 2007-11-13 | Network Appliance, Inc. | Mechanism to survive server failures when using the CIFS protocol |
US7328306B1 (en) | 2002-02-25 | 2008-02-05 | Network Appliance, Inc. | Flexible disabling of disk sets |
US7454445B2 (en) | 2000-08-18 | 2008-11-18 | Network Appliance, Inc. | Write allocation based on storage system map and snapshot |
US7694302B1 (en) | 2001-04-05 | 2010-04-06 | Network Appliance, Inc. | Symmetric multiprocessor synchronization using migrating scheduling domains |
US8171480B2 (en) | 2004-01-27 | 2012-05-01 | Network Appliance, Inc. | Method and apparatus for allocating shared resources to process domains according to current processor utilization in a shared resource processor |
US8347293B2 (en) | 2005-10-20 | 2013-01-01 | Network Appliance, Inc. | Mutual exclusion domains to perform file system processes on stripes |
US8627331B1 (en) | 2010-04-30 | 2014-01-07 | Netapp, Inc. | Multi-level parallelism of process execution in a mutual exclusion domain of a processing system |
Families Citing this family (686)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5963962A (en) * | 1995-05-31 | 1999-10-05 | Network Appliance, Inc. | Write anywhere file-system layout |
US6604118B2 (en) | 1998-07-31 | 2003-08-05 | Network Appliance, Inc. | File system image transfer |
EP0701715A4 (de) | 1993-06-04 | 1999-11-17 | Network Appliance Corp | Verfahren zur paritätsdarstellung in einem raid-untersystem unter verwendung eines nichtflüchtigen speichers |
WO1997011426A1 (en) | 1995-09-18 | 1997-03-27 | Cyberstorage Systems, Inc. | Universal storage management system |
DE69621214T2 (de) * | 1996-01-31 | 2002-12-05 | Kabushiki Kaisha Toshiba, Kawasaki | Ein-Ausgabekontrollverfahren mit Wiederherstellungsfunktion |
US5946690A (en) * | 1996-12-17 | 1999-08-31 | Inca Technology, Inc. | NDC consistency reconnect mechanism |
US8621101B1 (en) | 2000-09-29 | 2013-12-31 | Alacritech, Inc. | Intelligent network storage interface device |
US5941969A (en) | 1997-10-22 | 1999-08-24 | Auspex Systems, Inc. | Bridge for direct data storage device access |
JP4363676B2 (ja) * | 1997-10-31 | 2009-11-11 | 株式会社東芝 | コンピュータシステム |
US6081883A (en) * | 1997-12-05 | 2000-06-27 | Auspex Systems, Incorporated | Processing system with dynamically allocatable buffer memory |
US6516351B2 (en) | 1997-12-05 | 2003-02-04 | Network Appliance, Inc. | Enforcing uniform file-locking for diverse file-locking protocols |
US6175900B1 (en) | 1998-02-09 | 2001-01-16 | Microsoft Corporation | Hierarchical bitmap-based memory manager |
US6457130B2 (en) | 1998-03-03 | 2002-09-24 | Network Appliance, Inc. | File access control in a multi-protocol file server |
US6317844B1 (en) | 1998-03-10 | 2001-11-13 | Network Appliance, Inc. | File server storage arrangement |
US6279011B1 (en) | 1998-06-19 | 2001-08-21 | Network Appliance, Inc. | Backup and restore for heterogeneous file server environment |
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 |
US6343984B1 (en) | 1998-11-30 | 2002-02-05 | Network Appliance, Inc. | Laminar flow duct cooling system |
US8225002B2 (en) | 1999-01-22 | 2012-07-17 | Network Disk, Inc. | Data storage and data sharing in a network of heterogeneous computers |
US6549988B1 (en) | 1999-01-22 | 2003-04-15 | Ilya Gertner | Data storage system comprising a network of PCs and method using same |
JP4294142B2 (ja) | 1999-02-02 | 2009-07-08 | 株式会社日立製作所 | ディスクサブシステム |
US6438714B1 (en) * | 1999-03-31 | 2002-08-20 | International Business Machines Corporation | Method and apparatus for testing large arrays of storage devices |
US7418435B1 (en) * | 1999-08-05 | 2008-08-26 | Oracle International Corporation | Multi-model access to data |
US7734591B1 (en) | 1999-08-16 | 2010-06-08 | Netapp, Inc. | Coherent device to device data replication |
US6961749B1 (en) | 1999-08-25 | 2005-11-01 | Network Appliance, Inc. | Scalable file server with highly available pairs |
EP1912124B8 (de) | 1999-10-14 | 2013-01-09 | Bluearc UK Limited | Vorrichtung und System zur Ausführung von Betriebsfunktionen |
US7337360B2 (en) * | 1999-10-19 | 2008-02-26 | Idocrase Investments Llc | Stored memory recovery system |
US6594780B1 (en) | 1999-10-19 | 2003-07-15 | Inasoft, Inc. | Operating system and data protection |
JP2001142773A (ja) * | 1999-11-17 | 2001-05-25 | Fujitsu Ltd | 交換システムのデータ管理装置及び記録媒体 |
US6883120B1 (en) | 1999-12-03 | 2005-04-19 | Network Appliance, Inc. | Computer assisted automatic error detection and diagnosis of file servers |
US6715034B1 (en) | 1999-12-13 | 2004-03-30 | Network Appliance, Inc. | Switching file system request in a mass storage system |
US6418449B1 (en) * | 2000-01-06 | 2002-07-09 | Inventec Corporation | Method of cloning the file system of a window web operating system by using a bitmap file |
US6484186B1 (en) * | 2000-02-15 | 2002-11-19 | Novell, Inc. | Method for backing up consistent versions of open files |
US6647473B1 (en) | 2000-02-16 | 2003-11-11 | Microsoft Corporation | Kernel-based crash-consistency coordinator |
US7150018B2 (en) | 2000-02-16 | 2006-12-12 | Microsoft Corporation | Method and system for deterministic ordering of software modules |
US6473775B1 (en) * | 2000-02-16 | 2002-10-29 | Microsoft Corporation | System and method for growing differential file on a base volume of a snapshot |
US7490092B2 (en) | 2000-07-06 | 2009-02-10 | Streamsage, Inc. | Method and system for indexing and searching timed media information based upon relevance intervals |
US7245291B2 (en) | 2000-07-11 | 2007-07-17 | Imran Sharif | System and method for internet appliance data entry and navigation |
US6980313B2 (en) * | 2000-07-11 | 2005-12-27 | Imran Sharif | Fax-compatible internet appliance |
US20020078445A1 (en) * | 2000-07-11 | 2002-06-20 | Imran Sharif | Internet appliance for interactive audio/video display using a remote control unit for user input |
US20030115167A1 (en) * | 2000-07-11 | 2003-06-19 | Imran Sharif | Web browser implemented in an Internet appliance |
US6728897B1 (en) | 2000-07-25 | 2004-04-27 | Network Appliance, Inc. | Negotiating takeover in high availability cluster |
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 |
US6640233B1 (en) * | 2000-08-18 | 2003-10-28 | Network Appliance, Inc. | Reserving file system blocks |
US6732125B1 (en) | 2000-09-08 | 2004-05-04 | Storage Technology Corporation | Self archiving log structured volume with intrinsic data protection |
US8019901B2 (en) | 2000-09-29 | 2011-09-13 | Alacritech, Inc. | Intelligent network storage interface system |
US6631374B1 (en) * | 2000-09-29 | 2003-10-07 | Oracle Corp. | System and method for providing fine-grained temporal database access |
US6654912B1 (en) * | 2000-10-04 | 2003-11-25 | Network Appliance, Inc. | Recovery of file system data in file servers mirrored file system volumes |
US20020051019A1 (en) * | 2000-10-31 | 2002-05-02 | De Vorchik David G. | Operating system user interface for staged write media |
US6618794B1 (en) * | 2000-10-31 | 2003-09-09 | Hewlett-Packard Development Company, L.P. | System for generating a point-in-time copy of data in a data storage system |
DE10058391C2 (de) | 2000-11-24 | 2003-06-18 | Siemens Ag | Vorrichtung zur Objektbearbeitung |
US7346928B1 (en) * | 2000-12-01 | 2008-03-18 | Network Appliance, Inc. | Decentralized appliance virus scanning |
US7778981B2 (en) * | 2000-12-01 | 2010-08-17 | Netapp, Inc. | Policy engine to control the servicing of requests received by a storage server |
US6721739B1 (en) * | 2000-12-05 | 2004-04-13 | Silicon Graphics, Inc. | System and method for maintaining and recovering data consistency across multiple pages |
US6751636B1 (en) | 2000-12-05 | 2004-06-15 | Silicon Graphics, Inc. | System and method for maintaining and recovering data consistency across multiple instances of a database |
US6993523B1 (en) | 2000-12-05 | 2006-01-31 | Silicon Graphics, Inc. | System and method for maintaining and recovering data consistency in a data base page |
US6629198B2 (en) * | 2000-12-08 | 2003-09-30 | Sun Microsystems, Inc. | Data storage system and method employing a write-ahead hash log |
US7730213B2 (en) * | 2000-12-18 | 2010-06-01 | Oracle America, Inc. | Object-based storage device with improved reliability and fast crash recovery |
US6745285B2 (en) | 2000-12-18 | 2004-06-01 | Sun Microsystems, Inc. | System and method for synchronizing mirrored and striped disk writes |
US6931450B2 (en) | 2000-12-18 | 2005-08-16 | Sun Microsystems, Inc. | Direct access from client to storage device |
US6636878B1 (en) * | 2001-01-16 | 2003-10-21 | Sun Microsystems, Inc. | Mechanism for replicating and maintaining files in a spaced-efficient manner |
US6862692B2 (en) | 2001-01-29 | 2005-03-01 | Adaptec, Inc. | Dynamic redistribution of parity groups |
US6990667B2 (en) | 2001-01-29 | 2006-01-24 | Adaptec, Inc. | Server-independent object positioning for load balancing drives and servers |
US6990547B2 (en) * | 2001-01-29 | 2006-01-24 | Adaptec, Inc. | Replacing file system processors by hot swapping |
US20020138559A1 (en) * | 2001-01-29 | 2002-09-26 | Ulrich Thomas R. | Dynamically distributed file system |
US7054927B2 (en) | 2001-01-29 | 2006-05-30 | Adaptec, Inc. | File system metadata describing server directory information |
US20020161846A1 (en) * | 2001-01-29 | 2002-10-31 | Ulrich Thomas R. | Data path controller architecture |
US6618736B1 (en) | 2001-03-09 | 2003-09-09 | Ensim Corporation | Template-based creation and archival of file systems |
US6668264B1 (en) | 2001-04-03 | 2003-12-23 | Network Appliance, Inc. | Resynchronization of a target volume with a source volume |
US7739614B1 (en) | 2001-05-22 | 2010-06-15 | Netapp, Inc. | System and method for consolidated reporting of characteristics for a group of directories |
US8171414B2 (en) * | 2001-05-22 | 2012-05-01 | Netapp, Inc. | System and method for consolidated reporting of characteristics for a group of file systems |
US7139817B1 (en) | 2001-06-12 | 2006-11-21 | Network Appliance, Inc. | Managing configuration information for multiple devices |
US7478164B1 (en) | 2001-06-12 | 2009-01-13 | Netapp, Inc. | Methods and apparatus for pacing delivery of streaming media data |
US6643654B1 (en) | 2001-06-25 | 2003-11-04 | Network Appliance, Inc. | System and method for representing named data streams within an on-disk structure of a file system |
US7469295B1 (en) | 2001-06-25 | 2008-12-23 | Network Appliance, Inc. | Modified round robin load balancing technique based on IP identifier |
US7249150B1 (en) * | 2001-07-03 | 2007-07-24 | Network Appliance, Inc. | System and method for parallelized replay of an NVRAM log in a storage appliance |
US7194513B2 (en) * | 2001-07-08 | 2007-03-20 | Imran Sharif | System and method for using an internet appliance to send/receive digital content files as E-mail attachments |
US6944785B2 (en) * | 2001-07-23 | 2005-09-13 | Network Appliance, Inc. | High-availability cluster virtual server system |
US6757695B1 (en) | 2001-08-09 | 2004-06-29 | Network Appliance, Inc. | System and method for mounting and unmounting storage volumes in a network storage environment |
US6851070B1 (en) | 2001-08-13 | 2005-02-01 | Network Appliance, Inc. | System and method for managing time-limited long-running operations in a data storage system |
US6965989B1 (en) | 2001-08-14 | 2005-11-15 | Network Appliance, Inc. | System and method for fast reboot of a file server |
US6920579B1 (en) | 2001-08-20 | 2005-07-19 | Network Appliance, Inc. | Operator initiated graceful takeover in a node cluster |
US7043493B2 (en) * | 2001-09-17 | 2006-05-09 | Fujitsu Limited | Hierarchical file system and anti-tearing algorithm for a limited-resource computer such as a smart card |
US20030149762A1 (en) * | 2001-10-05 | 2003-08-07 | Knight Gregory John | Storage area network methods and apparatus with history maintenance and removal |
US6668336B2 (en) | 2001-11-08 | 2003-12-23 | M-Systems Flash Disk Pioneers Ltd. | Ruggedized block device driver |
US6883114B2 (en) * | 2001-11-08 | 2005-04-19 | M-Systems Flash Disk Pioneers Ltd. | Block device driver enabling a ruggedized file system |
US7346831B1 (en) | 2001-11-13 | 2008-03-18 | Network Appliance, Inc. | Parity assignment technique for parity declustering in a parity array of a storage system |
US6851082B1 (en) | 2001-11-13 | 2005-02-01 | Network Appliance, Inc. | Concentrated parity technique for handling double failures and enabling storage of more than one parity block per stripe on a storage device of a storage array |
US6871317B1 (en) | 2001-11-13 | 2005-03-22 | Network Appliance, Inc. | Technique for efficiently organizing and distributing parity blocks among storage devices of a storage array |
US7730153B1 (en) | 2001-12-04 | 2010-06-01 | Netapp, Inc. | Efficient use of NVRAM during takeover in a node cluster |
US7159080B1 (en) * | 2001-12-20 | 2007-01-02 | Network Appliance, Inc. | System and method for storing storage operating system data in switch ports |
US6836832B1 (en) | 2001-12-21 | 2004-12-28 | Network Appliance, Inc. | System and method for pre-selecting candidate disks based on validity for volume |
US6978283B1 (en) | 2001-12-21 | 2005-12-20 | Network Appliance, Inc. | File system defragmentation technique via write allocation |
US7296068B1 (en) * | 2001-12-21 | 2007-11-13 | Network Appliance, Inc. | System and method for transfering volume ownership in net-worked storage |
US7146522B1 (en) | 2001-12-21 | 2006-12-05 | Network Appliance, Inc. | System and method for allocating spare disks in networked storage |
US7650412B2 (en) | 2001-12-21 | 2010-01-19 | Netapp, Inc. | Systems and method of implementing disk ownership in networked storage |
US6895429B2 (en) * | 2001-12-28 | 2005-05-17 | Network Appliance, Inc. | Technique for enabling multiple virtual filers on a single filer to participate in multiple address spaces with overlapping network addresses |
US7073115B2 (en) * | 2001-12-28 | 2006-07-04 | Network Appliance, Inc. | Correcting multiple block data loss in a storage array using a combination of a single diagonal parity group and multiple row parity groups |
US7640484B2 (en) | 2001-12-28 | 2009-12-29 | Netapp, Inc. | Triple parity technique for enabling efficient recovery from triple failures in a storage array |
US7613984B2 (en) | 2001-12-28 | 2009-11-03 | Netapp, Inc. | System and method for symmetric triple parity for failing storage devices |
US7036043B2 (en) | 2001-12-28 | 2006-04-25 | Storage Technology Corporation | Data management with virtual recovery mapping and backward moves |
US6993701B2 (en) * | 2001-12-28 | 2006-01-31 | Network Appliance, Inc. | Row-diagonal parity technique for enabling efficient recovery from double failures in a storage array |
US7360034B1 (en) * | 2001-12-28 | 2008-04-15 | Network Appliance, Inc. | Architecture for creating and maintaining virtual filers on a filer |
US8402346B2 (en) * | 2001-12-28 | 2013-03-19 | Netapp, Inc. | N-way parity technique for enabling recovery from up to N storage device failures |
US7206970B1 (en) | 2002-02-07 | 2007-04-17 | Network Appliance, Inc. | System and method for diagnostics execution and data capture in a storage system using nonvolatile memory |
US7562208B1 (en) * | 2002-02-07 | 2009-07-14 | Network Appliance, Inc. | Method and system to quarantine system software and configuration |
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 |
US7085785B2 (en) | 2002-02-15 | 2006-08-01 | International Business Machines Corporation | Writable file system snapshot with ditto address feature |
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 |
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 |
US6968345B1 (en) | 2002-02-27 | 2005-11-22 | Network Appliance, Inc. | Technique to enable support for symbolic link access by windows clients |
US7039828B1 (en) | 2002-02-28 | 2006-05-02 | Network Appliance, Inc. | System and method for clustered failover without network support |
US7389315B1 (en) | 2002-02-28 | 2008-06-17 | Network Appliance, Inc. | System and method for byte swapping file access data structures |
US6748510B1 (en) | 2002-02-28 | 2004-06-08 | Network Appliance, Inc. | System and method for verifying disk configuration |
US7373364B1 (en) * | 2002-03-05 | 2008-05-13 | Network Appliance, Inc. | System and method for creating a point-in-time restoration of a database file |
US7210068B1 (en) | 2002-03-06 | 2007-04-24 | Network Appliance, Inc. | System and method for multipath I/O support for fibre channel devices |
US7194519B1 (en) | 2002-03-15 | 2007-03-20 | Network Appliance, Inc. | System and method for administering a filer having a plurality of virtual filers |
US7143307B1 (en) | 2002-03-15 | 2006-11-28 | Network Appliance, Inc. | Remote disaster recovery and data migration using virtual appliance migration |
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 |
US7475098B2 (en) | 2002-03-19 | 2009-01-06 | Network Appliance, Inc. | System and method for managing a plurality of snapshots |
US7467167B2 (en) * | 2002-03-19 | 2008-12-16 | Network Appliance, Inc. | System and method for coalescing a plurality of snapshots |
US7051050B2 (en) * | 2002-03-19 | 2006-05-23 | Netwrok Appliance, Inc. | System and method for restoring a single file from a snapshot |
US7007046B2 (en) * | 2002-03-19 | 2006-02-28 | Network Appliance, Inc. | Format for transmission file system information between a source and a destination |
EP1349088B1 (de) * | 2002-03-19 | 2010-11-03 | Network Appliance, Inc. | System und Verfahren zur Bestimmung und Übertragung von Änderungen in Schnappschüssen |
US7043485B2 (en) | 2002-03-19 | 2006-05-09 | Network Appliance, Inc. | System and method for storage of snapshot metadata in a remote file |
US7010553B2 (en) | 2002-03-19 | 2006-03-07 | Network Appliance, Inc. | System and method for redirecting access to a remote mirrored snapshot |
US7225204B2 (en) * | 2002-03-19 | 2007-05-29 | Network Appliance, Inc. | System and method for asynchronous mirroring of snapshots at a destination using a purgatory directory and inode mapping |
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 |
US7254813B2 (en) * | 2002-03-21 | 2007-08-07 | Network Appliance, Inc. | Method and apparatus for resource allocation in a raid system |
US7437727B2 (en) * | 2002-03-21 | 2008-10-14 | Network Appliance, Inc. | Method and apparatus for runtime resource deadlock avoidance in a raid system |
US7539991B2 (en) * | 2002-03-21 | 2009-05-26 | Netapp, Inc. | Method and apparatus for decomposing I/O tasks in a raid system |
US7200715B2 (en) | 2002-03-21 | 2007-04-03 | Network Appliance, Inc. | Method for writing contiguous arrays of stripes in a RAID storage system using mapped block writes |
US7072910B2 (en) * | 2002-03-22 | 2006-07-04 | Network Appliance, Inc. | File folding technique |
US7418500B1 (en) | 2002-03-25 | 2008-08-26 | Network Appliance, Inc. | Mechanism for controlled sharing of files in a clustered application environment |
US7155458B1 (en) | 2002-04-05 | 2006-12-26 | Network Appliance, Inc. | Mechanism for distributed atomic creation of client-private files |
US7340489B2 (en) * | 2002-04-10 | 2008-03-04 | Emc Corporation | Virtual storage devices |
US7113945B1 (en) * | 2002-04-10 | 2006-09-26 | Emc Corporation | Virtual storage device that uses volatile memory |
US7464125B1 (en) * | 2002-04-15 | 2008-12-09 | Ibrix Inc. | Checking the validity of blocks and backup duplicates of blocks during block reads |
US7707263B1 (en) | 2002-05-03 | 2010-04-27 | Netapp, Inc. | System and method for associating a network address with a storage device |
US7181581B2 (en) * | 2002-05-09 | 2007-02-20 | Xiotech Corporation | Method and apparatus for mirroring data stored in a mass storage system |
JP2003330782A (ja) * | 2002-05-10 | 2003-11-21 | Hitachi Ltd | 計算機システム |
US7546364B2 (en) * | 2002-05-16 | 2009-06-09 | Emc Corporation | Replication of remote copy data for internet protocol (IP) transmission |
US6976146B1 (en) | 2002-05-21 | 2005-12-13 | Network Appliance, Inc. | System and method for emulating block appended checksums on storage devices by sector stealing |
US6857001B2 (en) * | 2002-06-07 | 2005-02-15 | Network Appliance, Inc. | Multiple concurrent active file systems |
US7783787B1 (en) | 2002-06-13 | 2010-08-24 | Netapp, Inc. | System and method for reprioritizing high-latency input/output operations |
US7024586B2 (en) | 2002-06-24 | 2006-04-04 | Network Appliance, Inc. | Using file system information in raid data reconstruction and migration |
US7386546B1 (en) | 2002-07-09 | 2008-06-10 | Network Appliance, Inc. | Metadirectory namespace and method for use of the same |
US7844577B2 (en) | 2002-07-15 | 2010-11-30 | Symantec Corporation | System and method for maintaining a backup storage system for a computer system |
WO2004012379A2 (en) * | 2002-07-30 | 2004-02-05 | Deepfile Corporation | Method and apparatus for managing file systems and file-based data storage |
US8417678B2 (en) | 2002-07-30 | 2013-04-09 | Storediq, Inc. | System, method and apparatus for enterprise policy management |
US7801894B1 (en) | 2004-10-28 | 2010-09-21 | Stored IQ | Method and apparatus for harvesting file system metadata |
US8612404B2 (en) * | 2002-07-30 | 2013-12-17 | Stored Iq, Inc. | Harvesting file system metsdata |
US6934822B2 (en) * | 2002-08-06 | 2005-08-23 | Emc Corporation | Organization of multiple snapshot copies in a data storage system |
US6957362B2 (en) * | 2002-08-06 | 2005-10-18 | Emc Corporation | Instantaneous restoration of a production copy from a snapshot copy in a data storage system |
US6792518B2 (en) | 2002-08-06 | 2004-09-14 | Emc Corporation | Data storage system having mata bit maps for indicating whether data blocks are invalid in snapshot copies |
US7107385B2 (en) * | 2002-08-09 | 2006-09-12 | Network Appliance, Inc. | Storage virtualization by layering virtual disk objects on a file system |
US7873700B2 (en) * | 2002-08-09 | 2011-01-18 | Netapp, Inc. | Multi-protocol storage appliance that provides integrated support for file and block access protocols |
US7711539B1 (en) | 2002-08-12 | 2010-05-04 | Netapp, Inc. | System and method for emulating SCSI reservations using network file access protocols |
US6983296B1 (en) | 2002-08-12 | 2006-01-03 | Network Appliance, Inc. | System and method for tracking modified files in a file system |
US7100089B1 (en) | 2002-09-06 | 2006-08-29 | 3Pardata, Inc. | Determining differences between snapshots |
US7165156B1 (en) | 2002-09-06 | 2007-01-16 | 3Pardata, Inc. | Read-write snapshots |
US7191304B1 (en) | 2002-09-06 | 2007-03-13 | 3Pardata, Inc. | Efficient and reliable virtual volume mapping |
US7743031B1 (en) | 2002-09-06 | 2010-06-22 | 3Par, Inc. | Time and space efficient technique for creating virtual volume copies |
US6938134B2 (en) * | 2002-09-19 | 2005-08-30 | Sun Microsystems, Inc. | System for storing block allocation information on multiple snapshots |
US7426576B1 (en) | 2002-09-20 | 2008-09-16 | Network Appliance, Inc. | Highly available DNS resolver and method for use of the same |
US7103597B2 (en) * | 2002-10-03 | 2006-09-05 | Mcgoveran David O | Adaptive transaction manager for complex transactions and business process |
US7707184B1 (en) | 2002-10-09 | 2010-04-27 | Netapp, Inc. | System and method for snapshot full backup and hard recovery of a database |
US7340486B1 (en) | 2002-10-10 | 2008-03-04 | Network Appliance, Inc. | System and method for file system snapshot of a virtual logical disk |
US7152069B1 (en) | 2002-10-15 | 2006-12-19 | Network Appliance, Inc. | Zero copy writes through use of mbufs |
US7171452B1 (en) | 2002-10-31 | 2007-01-30 | Network Appliance, Inc. | System and method for monitoring cluster partner boot status over a cluster interconnect |
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 |
JP4199993B2 (ja) * | 2002-11-27 | 2008-12-24 | 株式会社日立製作所 | スナップショット取得方法 |
US7284016B2 (en) | 2002-12-03 | 2007-10-16 | Emc Corporation | Client-server protocol for directory access of snapshot file systems in a storage system |
US7069307B1 (en) | 2002-12-20 | 2006-06-27 | Network Appliance, Inc. | System and method for inband management of a virtual disk |
US8041761B1 (en) | 2002-12-23 | 2011-10-18 | Netapp, Inc. | Virtual filer and IP space based IT configuration transitioning framework |
US8015266B1 (en) * | 2003-02-07 | 2011-09-06 | Netapp, Inc. | System and method for providing persistent node names |
US7809693B2 (en) * | 2003-02-10 | 2010-10-05 | Netapp, Inc. | System and method for restoring data on demand for instant volume restoration |
US7197490B1 (en) | 2003-02-10 | 2007-03-27 | Network Appliance, Inc. | System and method for lazy-copy sub-volume load balancing in a network attached storage pool |
US7991905B1 (en) | 2003-02-12 | 2011-08-02 | Netapp, Inc. | Adaptively selecting timeouts for streaming media |
US7231489B1 (en) | 2003-03-03 | 2007-06-12 | Network Appliance, Inc. | System and method for coordinating cluster state information |
US7117303B1 (en) | 2003-03-14 | 2006-10-03 | Network Appliance, Inc. | Efficient, robust file handle invalidation |
US7155460B2 (en) * | 2003-03-18 | 2006-12-26 | Network Appliance, Inc. | Write-once-read-many storage system and method for implementing the same |
JP4292882B2 (ja) | 2003-03-18 | 2009-07-08 | 株式会社日立製作所 | 複数のスナップショット維持方法及びサーバ装置及びストレージ装置 |
US7266654B2 (en) * | 2003-03-18 | 2007-09-04 | Hitachi, Ltd. | Storage system, server apparatus, and method for creating a plurality of snapshots |
US7424637B1 (en) | 2003-03-21 | 2008-09-09 | Networks Appliance, Inc. | Technique for managing addition of disks to a volume of a storage system |
US7111194B1 (en) | 2003-03-21 | 2006-09-19 | Network Appliance, Inc. | Mirror split brain avoidance |
US7328364B1 (en) | 2003-03-21 | 2008-02-05 | Network Appliance, Inc. | Technique for coherent suspension of I/O operations in a RAID subsystem |
US7664913B2 (en) * | 2003-03-21 | 2010-02-16 | Netapp, Inc. | Query-based spares management technique |
US7111021B1 (en) | 2003-03-21 | 2006-09-19 | Network Appliance, Inc. | System and method for efficient space accounting in a file system with snapshots |
US7111147B1 (en) * | 2003-03-21 | 2006-09-19 | Network Appliance, Inc. | Location-independent RAID group virtual block management |
US7143235B1 (en) | 2003-03-21 | 2006-11-28 | Network Appliance, Inc. | Proposed configuration management behaviors in a raid subsystem |
US7231409B1 (en) * | 2003-03-21 | 2007-06-12 | Network Appliance, Inc. | System and method for reallocating blocks in checkpointing bitmap-based file systems |
US7249286B1 (en) | 2003-03-24 | 2007-07-24 | Network Appliance, Inc. | System and method for automatically diagnosing protocol errors from packet traces |
US7383378B1 (en) | 2003-04-11 | 2008-06-03 | Network Appliance, Inc. | System and method for supporting file and block access to storage object on a storage appliance |
US7457982B2 (en) * | 2003-04-11 | 2008-11-25 | Network Appliance, Inc. | Writable virtual disk of read-only snapshot file objects |
US7293152B1 (en) | 2003-04-23 | 2007-11-06 | Network Appliance, Inc. | Consistent logical naming of initiator groups |
US7739543B1 (en) | 2003-04-23 | 2010-06-15 | Netapp, Inc. | System and method for transport-level failover for loosely coupled iSCSI target devices |
US7191437B1 (en) | 2003-04-23 | 2007-03-13 | Network Appliance, Inc. | System and method for reliable disk firmware update within a networked storage fabric |
US7293203B1 (en) | 2003-04-23 | 2007-11-06 | Network Appliance, Inc. | System and method for logging disk failure analysis in disk nonvolatile memory |
US7260737B1 (en) | 2003-04-23 | 2007-08-21 | Network Appliance, Inc. | System and method for transport-level failover of FCP devices in a cluster |
US7437530B1 (en) | 2003-04-24 | 2008-10-14 | Network Appliance, Inc. | System and method for mapping file block numbers to logical block addresses |
US7275179B1 (en) | 2003-04-24 | 2007-09-25 | Network Appliance, Inc. | System and method for reducing unrecoverable media errors in a disk subsystem |
US7603553B1 (en) | 2003-04-25 | 2009-10-13 | Netapp, Inc. | System and method to make file handles opaque to clients |
US7330862B1 (en) | 2003-04-25 | 2008-02-12 | Network Appliance, Inc. | Zero copy write datapath |
US7437523B1 (en) | 2003-04-25 | 2008-10-14 | Network Appliance, Inc. | System and method for on-the-fly file folding in a replicated storage system |
US7181439B1 (en) * | 2003-04-25 | 2007-02-20 | Network Appliance, Inc. | System and method for transparently accessing a virtual disk using a file-based protocol |
US7577692B1 (en) | 2003-04-25 | 2009-08-18 | Netapp, Inc. | System and method for reserving space to guarantee file writability in a file system supporting persistent consistency point images |
US7296043B2 (en) * | 2003-05-30 | 2007-11-13 | Microsoft Corporation | Memory file size adjustment |
US7136974B2 (en) * | 2003-06-19 | 2006-11-14 | Pillar Data Systems, Inc. | Systems and methods of data migration in snapshot operations |
US7451168B1 (en) | 2003-06-30 | 2008-11-11 | Data Domain, Inc. | Incremental garbage collection of data in a secondary storage |
US7424498B1 (en) | 2003-06-30 | 2008-09-09 | Data Domain, Inc. | Probabilistic summary data structure based encoding for garbage collection |
US6959313B2 (en) * | 2003-07-08 | 2005-10-25 | Pillar Data Systems, Inc. | Snapshots of file systems in data storage systems |
US7836029B2 (en) | 2003-07-08 | 2010-11-16 | Pillar Data Systems, Inc. | Systems and methods of searching for and determining modified blocks in a file system |
US20050010592A1 (en) * | 2003-07-08 | 2005-01-13 | John Guthrie | Method and system for taking a data snapshot |
US7379954B2 (en) * | 2003-07-08 | 2008-05-27 | Pillar Data Systems, Inc. | Management of file system snapshots |
US7756844B2 (en) * | 2003-07-08 | 2010-07-13 | Pillar Data Systems, Inc. | Methods of determining and searching for modified blocks in a file system |
US7523201B2 (en) * | 2003-07-14 | 2009-04-21 | Network Appliance, Inc. | System and method for optimized lun masking |
US7593996B2 (en) | 2003-07-18 | 2009-09-22 | Netapp, Inc. | System and method for establishing a peer connection using reliable RDMA primitives |
US7716323B2 (en) * | 2003-07-18 | 2010-05-11 | Netapp, Inc. | System and method for reliable peer communication in a clustered storage system |
US8856927B1 (en) | 2003-07-22 | 2014-10-07 | Acronis International Gmbh | System and method for using snapshots for rootkit detection |
US7246211B1 (en) | 2003-07-22 | 2007-07-17 | Swsoft Holdings, Ltd. | System and method for using file system snapshots for online data backup |
US7047380B2 (en) | 2003-07-22 | 2006-05-16 | Acronis Inc. | System and method for using file system snapshots for online data backup |
US8074035B1 (en) | 2003-07-22 | 2011-12-06 | Acronis, Inc. | System and method for using multivolume snapshots for online data backup |
US8473693B1 (en) | 2003-07-29 | 2013-06-25 | Netapp, Inc. | Managing ownership of memory buffers (mbufs) |
US7373640B1 (en) | 2003-07-31 | 2008-05-13 | Network Appliance, Inc. | Technique for dynamically restricting thread concurrency without rewriting thread code |
US7055014B1 (en) | 2003-08-11 | 2006-05-30 | Network Applicance, Inc. | User interface system for a multi-protocol storage appliance |
US7953819B2 (en) * | 2003-08-22 | 2011-05-31 | Emc Corporation | Multi-protocol sharable virtual storage objects |
US7035881B2 (en) * | 2003-09-23 | 2006-04-25 | Emc Corporation | Organization of read-write snapshot copies in a data storage system |
US7865485B2 (en) * | 2003-09-23 | 2011-01-04 | Emc Corporation | Multi-threaded write interface and methods for increasing the single file read and write throughput of a file server |
US7555504B2 (en) * | 2003-09-23 | 2009-06-30 | Emc Corporation | Maintenance of a file version set including read-only and read-write snapshot copies of a production file |
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 |
US7401093B1 (en) * | 2003-11-10 | 2008-07-15 | Network Appliance, Inc. | System and method for managing file data during consistency points |
US7721062B1 (en) | 2003-11-10 | 2010-05-18 | Netapp, Inc. | Method for detecting leaked buffer writes across file system consistency points |
US7783611B1 (en) * | 2003-11-10 | 2010-08-24 | Netapp, Inc. | System and method for managing file metadata during consistency points |
US7225210B2 (en) * | 2003-11-20 | 2007-05-29 | Overland Storage, Inc. | Block level data snapshot system and method |
US7647451B1 (en) | 2003-11-24 | 2010-01-12 | Netapp, Inc. | Data placement technique for striping data containers across volumes of a storage system cluster |
US7428558B2 (en) * | 2003-11-24 | 2008-09-23 | Emc Corporation | Persistent restore of virtual devices |
US7333993B2 (en) * | 2003-11-25 | 2008-02-19 | Network Appliance, Inc. | Adaptive file readahead technique for multiple read streams |
US7243089B2 (en) * | 2003-11-25 | 2007-07-10 | International Business Machines Corporation | System, method, and service for federating and optionally migrating a local file system into a distributed file system while preserving local access to existing data |
US20070297349A1 (en) * | 2003-11-28 | 2007-12-27 | Ofir Arkin | Method and System for Collecting Information Relating to a Communication Network |
US7409497B1 (en) | 2003-12-02 | 2008-08-05 | Network Appliance, Inc. | System and method for efficiently guaranteeing data consistency to clients of a storage system cluster |
US7698289B2 (en) * | 2003-12-02 | 2010-04-13 | Netapp, Inc. | Storage system architecture for striping data container content across volumes of a cluster |
WO2005064469A1 (en) | 2003-12-19 | 2005-07-14 | Network Appliance, Inc. | System and method for supporting asynchronous data replication with very short update intervals |
JP4354268B2 (ja) * | 2003-12-22 | 2009-10-28 | 株式会社河合楽器製作所 | 信号処理装置 |
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 |
US7437360B1 (en) | 2003-12-23 | 2008-10-14 | Network Appliance, Inc. | System and method for communication and synchronization of application-level dependencies and ownership of persistent consistency point images |
US7921110B1 (en) | 2003-12-23 | 2011-04-05 | Netapp, Inc. | System and method for comparing data sets |
US7162662B1 (en) * | 2003-12-23 | 2007-01-09 | Network Appliance, Inc. | System and method for fault-tolerant synchronization of replica updates for fixed persistent consistency point image consumption |
US7039661B1 (en) | 2003-12-29 | 2006-05-02 | Veritas Operating Corporation | Coordinated dirty block tracking |
US7249227B1 (en) * | 2003-12-29 | 2007-07-24 | Network Appliance, Inc. | System and method for zero copy block protocol write operations |
US7340639B1 (en) | 2004-01-08 | 2008-03-04 | Network Appliance, Inc. | System and method for proxying data access commands in a clustered storage system |
US7529836B1 (en) | 2004-01-08 | 2009-05-05 | Network Appliance, Inc. | Technique for throttling data access requests |
US7631148B2 (en) * | 2004-01-08 | 2009-12-08 | Netapp, Inc. | Adaptive file readahead based on multiple factors |
US7487381B1 (en) | 2004-01-08 | 2009-02-03 | Network Appliance, Inc. | Technique for verifying a configuration of a storage environment |
US7321982B2 (en) * | 2004-01-26 | 2008-01-22 | Network Appliance, Inc. | System and method for takeover of partner resources in conjunction with coredump |
US7266717B2 (en) * | 2004-01-26 | 2007-09-04 | Network Appliance, Inc. | System and method of selection and communication of a disk for storage of a coredump |
US7293195B1 (en) | 2004-01-29 | 2007-11-06 | Network Appliance, Inc. | System and method for coordinated bringup of a storage appliance in a cluster configuration |
US7383463B2 (en) * | 2004-02-04 | 2008-06-03 | Emc Corporation | Internet protocol based disaster recovery of a server |
US8041888B2 (en) | 2004-02-05 | 2011-10-18 | Netapp, Inc. | System and method for LUN cloning |
US7313720B1 (en) | 2004-02-12 | 2007-12-25 | Network Appliance, Inc. | Technique for increasing the number of persistent consistency point images in a file system |
US7440966B2 (en) * | 2004-02-12 | 2008-10-21 | International Business Machines Corporation | Method and apparatus for file system snapshot persistence |
US7966293B1 (en) | 2004-03-09 | 2011-06-21 | Netapp, Inc. | System and method for indexing a backup using persistent consistency point images |
US7428560B1 (en) | 2004-03-12 | 2008-09-23 | Sun Microsystems, Inc. | Age segregation for garbage collector |
US7340494B1 (en) | 2004-03-12 | 2008-03-04 | Sun Microsystems, Inc. | Garbage-first garbage collection |
US7599951B1 (en) | 2004-03-25 | 2009-10-06 | Emc Corporation | Continuous data backup |
US8086572B2 (en) * | 2004-03-30 | 2011-12-27 | International Business Machines Corporation | Method, system, and program for restoring data to a file |
US8230085B2 (en) * | 2004-04-12 | 2012-07-24 | Netapp, Inc. | System and method for supporting block-based protocols on a virtual storage appliance executing within a physical storage appliance |
US7424574B1 (en) | 2004-04-21 | 2008-09-09 | Sun Microsystems, Inc. | Method and apparatus for dynamic striping |
US7603568B1 (en) | 2004-04-21 | 2009-10-13 | Sun Microsystems, Inc. | Method and apparatus for self-validating checksums in a file system |
US7415653B1 (en) | 2004-04-21 | 2008-08-19 | Sun Microsystems, Inc. | Method and apparatus for vectored block-level checksum for file system data integrity |
US7328144B1 (en) | 2004-04-28 | 2008-02-05 | Network Appliance, Inc. | System and method for simulating a software protocol stack using an emulated protocol over an emulated network |
US8621029B1 (en) | 2004-04-28 | 2013-12-31 | Netapp, Inc. | System and method for providing remote direct memory access over a transport medium that does not natively support remote direct memory access operations |
US7251663B1 (en) | 2004-04-30 | 2007-07-31 | Network Appliance, Inc. | Method and apparatus for determining if stored memory range overlaps key memory ranges where the memory address space is organized in a tree form and partition elements for storing key memory ranges |
US7334095B1 (en) * | 2004-04-30 | 2008-02-19 | Network Appliance, Inc. | Writable clone of read-only volume |
US7334094B2 (en) * | 2004-04-30 | 2008-02-19 | Network Appliance, Inc. | Online clone volume splitting technique |
US7409511B2 (en) * | 2004-04-30 | 2008-08-05 | Network Appliance, Inc. | Cloning technique for efficiently creating a copy of a volume in a storage system |
US7430571B2 (en) * | 2004-04-30 | 2008-09-30 | Network Appliance, Inc. | Extension of write anywhere file layout write allocation |
US7409494B2 (en) * | 2004-04-30 | 2008-08-05 | Network Appliance, Inc. | Extension of write anywhere file system layout |
US8996455B2 (en) * | 2004-04-30 | 2015-03-31 | Netapp, Inc. | System and method for configuring a storage network utilizing a multi-protocol storage appliance |
US7412450B1 (en) | 2004-05-26 | 2008-08-12 | Sun Microsystems, Inc. | Method and apparatus for identifying tampering of data in a file system |
US7526622B1 (en) | 2004-05-26 | 2009-04-28 | Sun Microsystems, Inc. | Method and system for detecting and correcting data errors using checksums and replication |
US7281188B1 (en) | 2004-05-26 | 2007-10-09 | Sun Microsystems, Inc. | Method and system for detecting and correcting data errors using data permutations |
US7496586B1 (en) | 2004-05-26 | 2009-02-24 | Sun Microsystems, Inc. | Method and apparatus for compressing data in a file system |
US7562101B1 (en) * | 2004-05-28 | 2009-07-14 | Network Appliance, Inc. | Block allocation testing |
US7437528B1 (en) | 2004-08-17 | 2008-10-14 | Sun Microsystems, Inc. | Gang blocks |
US7533225B1 (en) | 2004-08-17 | 2009-05-12 | Sun Microsystems, Inc. | Method and apparatus for enabling adaptive endianness |
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 |
US20060075281A1 (en) * | 2004-09-27 | 2006-04-06 | Kimmel Jeffrey S | Use of application-level context information to detect corrupted data in a storage 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 |
US7984085B1 (en) * | 2004-10-25 | 2011-07-19 | Network Appliance, Inc. | Rate of change of data using on-the-fly accounting |
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 |
US7752325B1 (en) | 2004-10-26 | 2010-07-06 | Netapp, Inc. | Method and apparatus to efficiently transmit streaming media |
US8510331B1 (en) | 2004-10-28 | 2013-08-13 | Storediq, Inc. | System and method for a desktop agent for use in managing file systems |
US7844582B1 (en) | 2004-10-28 | 2010-11-30 | Stored IQ | System and method for involving users in object management |
US8959299B2 (en) * | 2004-11-15 | 2015-02-17 | Commvault Systems, Inc. | Using a snapshot as a data source |
US7636744B1 (en) | 2004-11-17 | 2009-12-22 | Netapp, Inc. | System and method for flexible space reservations in a file system supporting persistent consistency point images |
US7523286B2 (en) * | 2004-11-19 | 2009-04-21 | Network Appliance, Inc. | System and method for real-time balancing of user workload across multiple storage systems with shared back end storage |
KR100694069B1 (ko) * | 2004-11-29 | 2007-03-12 | 삼성전자주식회사 | 상이한 크기를 가지는 복수 개의 데이터 블록들을포함하는 저장 장치 및 이를 이용한 파일 관리 방법 및이를 포함하는 인쇄 장치 |
US20060143412A1 (en) * | 2004-12-28 | 2006-06-29 | Philippe Armangau | Snapshot copy facility maintaining read performance and write performance |
US8019842B1 (en) | 2005-01-27 | 2011-09-13 | Netapp, Inc. | System and method for distributing enclosure services data to coordinate shared storage |
US8180855B2 (en) * | 2005-01-27 | 2012-05-15 | Netapp, Inc. | Coordinated shared storage architecture |
US7424497B1 (en) * | 2005-01-27 | 2008-09-09 | Network Appliance, Inc. | Technique for accelerating the creation of a point in time prepresentation of a virtual file system |
JP2006209636A (ja) * | 2005-01-31 | 2006-08-10 | Hitachi Ltd | スナップショット維持方法 |
US7574464B2 (en) * | 2005-02-14 | 2009-08-11 | Netapp, Inc. | System and method for enabling a storage system to support multiple volume formats simultaneously |
US7747836B2 (en) * | 2005-03-08 | 2010-06-29 | Netapp, Inc. | Integrated storage virtualization and switch system |
US7757056B1 (en) | 2005-03-16 | 2010-07-13 | Netapp, Inc. | System and method for efficiently calculating storage required to split a clone volume |
JP4615337B2 (ja) * | 2005-03-16 | 2011-01-19 | 株式会社日立製作所 | ストレージシステム |
CN101228523B (zh) | 2005-04-25 | 2012-06-06 | 网络装置公司 | 用于高速缓存网络文件系统的系统和方法 |
EP1875393B1 (de) * | 2005-04-25 | 2015-08-05 | NetApp, Inc. | Architektur zur unterstützung spärlicher volumina |
US7698334B2 (en) * | 2005-04-29 | 2010-04-13 | Netapp, Inc. | System and method for multi-tiered meta-data caching and distribution in a clustered computer environment |
US7962689B1 (en) | 2005-04-29 | 2011-06-14 | Netapp, Inc. | System and method for performing transactional processing in a striped volume set |
US7743210B1 (en) | 2005-04-29 | 2010-06-22 | Netapp, Inc. | System and method for implementing atomic cross-stripe write operations in a striped volume set |
US7904649B2 (en) | 2005-04-29 | 2011-03-08 | Netapp, Inc. | System and method for restriping data across a plurality of volumes |
US8073899B2 (en) * | 2005-04-29 | 2011-12-06 | Netapp, Inc. | System and method for proxying data access commands in a storage system cluster |
US7698501B1 (en) | 2005-04-29 | 2010-04-13 | Netapp, Inc. | System and method for utilizing sparse data containers in a striped volume set |
US8224777B2 (en) * | 2005-04-29 | 2012-07-17 | Netapp, Inc. | System and method for generating consistent images of a set of data objects |
US7617370B2 (en) * | 2005-04-29 | 2009-11-10 | Netapp, Inc. | Data allocation within a storage system architecture |
US7496678B2 (en) * | 2005-05-11 | 2009-02-24 | Netapp, Inc. | Method and system for unified caching of media content |
US7634760B1 (en) | 2005-05-23 | 2009-12-15 | Netapp, Inc. | System and method for remote execution of a debugging utility using a remote management module |
US7613743B1 (en) * | 2005-06-10 | 2009-11-03 | Apple Inc. | Methods and apparatuses for data protection |
US7739318B2 (en) | 2005-06-20 | 2010-06-15 | Netapp, Inc. | System and method for maintaining mappings from data containers to their parent directories |
JP4799936B2 (ja) * | 2005-07-11 | 2011-10-26 | 株式会社日立製作所 | 条件別スナップショット取得方法及びシステム |
US7516285B1 (en) | 2005-07-22 | 2009-04-07 | Network Appliance, Inc. | Server side API for fencing cluster hosts via export access rights |
US7653682B2 (en) * | 2005-07-22 | 2010-01-26 | Netapp, Inc. | Client failure fencing mechanism for fencing network file system data in a host-cluster environment |
US20070022314A1 (en) * | 2005-07-22 | 2007-01-25 | Pranoop Erasani | Architecture and method for configuring a simplified cluster over a network with fencing and quorum |
US7657571B2 (en) * | 2005-08-30 | 2010-02-02 | Microsoft Corporation | Electronic data snapshot generator |
US7426618B2 (en) | 2005-09-06 | 2008-09-16 | Dot Hill Systems Corp. | Snapshot restore method and apparatus |
US20110145689A1 (en) * | 2005-09-09 | 2011-06-16 | Microsoft Corporation | Named object view over multiple files |
US20070061699A1 (en) * | 2005-09-09 | 2007-03-15 | Microsoft Corporation | Named object view of electronic data report |
US7650366B1 (en) * | 2005-09-09 | 2010-01-19 | Netapp, Inc. | System and method for generating a crash consistent persistent consistency point image set |
US7805600B2 (en) * | 2005-09-15 | 2010-09-28 | Sas Institute Inc. | Computer-implemented systems and methods for managing images |
US7707193B2 (en) * | 2005-09-22 | 2010-04-27 | Netapp, Inc. | System and method for verifying and restoring the consistency of inode to pathname mappings in a filesystem |
US20070088917A1 (en) * | 2005-10-14 | 2007-04-19 | Ranaweera Samantha L | System and method for creating and maintaining a logical serial attached SCSI communication channel among a plurality of storage systems |
US8484365B1 (en) | 2005-10-20 | 2013-07-09 | Netapp, Inc. | System and method for providing a unified iSCSI target with a plurality of loosely coupled iSCSI front ends |
US7467276B1 (en) | 2005-10-25 | 2008-12-16 | Network Appliance, Inc. | System and method for automatic root volume creation |
US7664791B1 (en) | 2005-10-26 | 2010-02-16 | Netapp, Inc. | Concurrent creation of persistent point-in-time images of multiple independent file systems |
WO2007053356A2 (en) * | 2005-10-28 | 2007-05-10 | Network Appliance, Inc. | System and method for optimizing multi-pathing support in a distributed storage system environment |
US8255425B1 (en) | 2005-11-01 | 2012-08-28 | Netapp, Inc. | System and method for event notification using an event routing table |
US7376796B2 (en) | 2005-11-01 | 2008-05-20 | Network Appliance, Inc. | Lightweight coherency control protocol for clustered storage system |
US7730258B1 (en) | 2005-11-01 | 2010-06-01 | Netapp, Inc. | System and method for managing hard and soft lock state information in a distributed storage system environment |
US7325111B1 (en) | 2005-11-01 | 2008-01-29 | Network Appliance, Inc. | Method and system for single pass volume scanning for multiple destination mirroring |
US7930495B2 (en) * | 2005-11-04 | 2011-04-19 | Oracle America, Inc. | Method and system for dirty time log directed resilvering |
US7877554B2 (en) * | 2005-11-04 | 2011-01-25 | Oracle America, Inc. | Method and system for block reallocation |
US20070106868A1 (en) * | 2005-11-04 | 2007-05-10 | Sun Microsystems, Inc. | Method and system for latency-directed block allocation |
US7925827B2 (en) * | 2005-11-04 | 2011-04-12 | Oracle America, Inc. | Method and system for dirty time logging |
US7865673B2 (en) * | 2005-11-04 | 2011-01-04 | Oracle America, Inc. | Multiple replication levels with pooled devices |
US7743225B2 (en) * | 2005-11-04 | 2010-06-22 | Oracle America, Inc. | Ditto blocks |
US7689877B2 (en) * | 2005-11-04 | 2010-03-30 | Sun Microsystems, Inc. | Method and system using checksums to repair data |
US7596739B2 (en) * | 2005-11-04 | 2009-09-29 | Sun Microsystems, Inc. | Method and system for data replication |
US7490096B2 (en) * | 2005-11-04 | 2009-02-10 | Sun Microsystems, Inc. | Automatic intent log testing |
US20070112895A1 (en) * | 2005-11-04 | 2007-05-17 | Sun Microsystems, Inc. | Block-based incremental backup |
US8495010B2 (en) * | 2005-11-04 | 2013-07-23 | Oracle America, Inc. | Method and system for adaptive metadata replication |
US8938594B2 (en) * | 2005-11-04 | 2015-01-20 | Oracle America, Inc. | Method and system for metadata-based resilvering |
US7873799B2 (en) * | 2005-11-04 | 2011-01-18 | Oracle America, Inc. | Method and system supporting per-file and per-block replication |
US8635190B2 (en) * | 2005-11-04 | 2014-01-21 | Oracle America, Inc. | Method and system for pruned resilvering using a dirty time log |
US7716519B2 (en) * | 2005-11-04 | 2010-05-11 | Oracle America, Inc. | Method and system for repairing partially damaged blocks |
US7716445B2 (en) * | 2005-11-04 | 2010-05-11 | Oracle America, Inc. | Method and system for storing a sparse file using fill counts |
US7899989B2 (en) * | 2005-11-04 | 2011-03-01 | Oracle America, Inc. | Method and system for using a block allocation policy |
US8549051B2 (en) * | 2005-11-04 | 2013-10-01 | Oracle America, Inc. | Unlimited file system snapshots and clones |
US7480684B2 (en) * | 2005-11-04 | 2009-01-20 | Sun Microsystems, Inc. | Method and system for object allocation using fill counts |
CA2629833C (en) | 2005-11-28 | 2015-10-27 | Commvault Systems, Inc. | Systems and methods for classifying and transferring information in a storage network |
US7797570B2 (en) | 2005-11-29 | 2010-09-14 | Netapp, Inc. | System and method for failover of iSCSI target portal groups in a cluster environment |
US8549252B2 (en) * | 2005-12-13 | 2013-10-01 | Emc Corporation | File based volumes and file systems |
US20200257596A1 (en) | 2005-12-19 | 2020-08-13 | Commvault Systems, Inc. | Systems and methods of unified reconstruction in storage systems |
US7464116B2 (en) * | 2005-12-28 | 2008-12-09 | Network Appliance, Inc. | Method and apparatus for cloning filesystems across computing systems |
US7693864B1 (en) | 2006-01-03 | 2010-04-06 | Netapp, Inc. | System and method for quickly determining changed metadata using persistent consistency point image differencing |
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 |
TWI353536B (en) * | 2006-01-26 | 2011-12-01 | Infortrend Technology Inc | Virtualized storage computer system and method of |
US7734603B1 (en) | 2006-01-26 | 2010-06-08 | Netapp, Inc. | Content addressable storage array element |
US8560503B1 (en) | 2006-01-26 | 2013-10-15 | Netapp, Inc. | Content addressable storage system |
US8990153B2 (en) | 2006-02-07 | 2015-03-24 | Dot Hill Systems Corporation | Pull data replication model |
US7472242B1 (en) | 2006-02-14 | 2008-12-30 | Network Appliance, Inc. | Eliminating duplicate blocks during backup writes |
US7788456B1 (en) | 2006-02-16 | 2010-08-31 | Network Appliance, Inc. | Use of data images to allow release of unneeded data storage |
US7912815B1 (en) | 2006-03-01 | 2011-03-22 | Netapp, Inc. | Method and system of automatically monitoring a storage server |
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 |
US8285817B1 (en) | 2006-03-20 | 2012-10-09 | Netapp, Inc. | Migration engine for use in a logical namespace of a storage system environment |
US7590660B1 (en) | 2006-03-21 | 2009-09-15 | Network Appliance, Inc. | Method and system for efficient database cloning |
US7926049B1 (en) | 2006-03-23 | 2011-04-12 | Netapp, Inc. | System and method for determining differences between software configurations |
US7565519B1 (en) | 2006-03-23 | 2009-07-21 | Netapp, Inc. | System and method for automatically upgrading/reverting configurations across a plurality of product release lines |
US7783850B2 (en) | 2006-03-28 | 2010-08-24 | Dot Hill Systems Corporation | Method and apparatus for master volume access during volume copy |
US8260831B2 (en) * | 2006-03-31 | 2012-09-04 | Netapp, Inc. | System and method for implementing a flexible storage manager with threshold control |
US20070233868A1 (en) * | 2006-03-31 | 2007-10-04 | Tyrrell John C | System and method for intelligent provisioning of storage across a plurality of storage systems |
US7836020B1 (en) * | 2006-04-03 | 2010-11-16 | Network Appliance, Inc. | Method and apparatus to improve server performance associated with takeover and giveback procedures |
US8090908B1 (en) | 2006-04-26 | 2012-01-03 | Netapp, Inc. | Single nodename cluster system for fibre channel |
US8788685B1 (en) | 2006-04-27 | 2014-07-22 | Netapp, Inc. | System and method for testing multi-protocol storage systems |
US7716420B2 (en) | 2006-04-28 | 2010-05-11 | Network Appliance, Inc. | Methods of converting traditional volumes into flexible volumes |
US8229979B2 (en) * | 2006-04-28 | 2012-07-24 | Sap Ag | Method and system for inspecting memory leaks |
US7769723B2 (en) * | 2006-04-28 | 2010-08-03 | Netapp, Inc. | System and method for providing continuous data protection |
US8793289B2 (en) * | 2006-04-28 | 2014-07-29 | Sap Ag | Method and system for detecting memory leaks and copying garbage collection files |
US7840969B2 (en) * | 2006-04-28 | 2010-11-23 | Netapp, Inc. | System and method for management of jobs in a cluster environment |
US8165221B2 (en) | 2006-04-28 | 2012-04-24 | Netapp, Inc. | System and method for sampling based elimination of duplicate data |
US8131667B1 (en) | 2006-04-28 | 2012-03-06 | Netapp, Inc. | System and method for generating synthetic clients |
US7734666B2 (en) * | 2006-04-28 | 2010-06-08 | Sap Ag | Method and system for inspecting memory leaks and analyzing contents of garbage collection files |
US7464238B1 (en) | 2006-04-28 | 2008-12-09 | Network Appliance, Inc. | System and method for verifying the consistency of mirrored data sets |
US9026495B1 (en) | 2006-05-26 | 2015-05-05 | Netapp, Inc. | System and method for creating and accessing a host-accessible storage entity |
US7613750B2 (en) * | 2006-05-29 | 2009-11-03 | Microsoft Corporation | Creating frequent application-consistent backups efficiently |
US7603387B2 (en) * | 2006-06-16 | 2009-10-13 | Microsoft Corporation | Techniques to manage media files |
US7783686B2 (en) * | 2006-06-16 | 2010-08-24 | Microsoft Corporation | Application program interface to manage media files |
US7558913B2 (en) * | 2006-06-20 | 2009-07-07 | Microsoft Corporation | Atomic commit of cache transfer with staging area |
US7844584B1 (en) | 2006-06-23 | 2010-11-30 | Netapp, Inc. | System and method for persistently storing lock state information |
US7921077B2 (en) * | 2006-06-29 | 2011-04-05 | Netapp, Inc. | System and method for managing data deduplication of storage systems utilizing persistent consistency point images |
US8412682B2 (en) | 2006-06-29 | 2013-04-02 | Netapp, Inc. | System and method for retrieving and using block fingerprints for data deduplication |
US8010509B1 (en) | 2006-06-30 | 2011-08-30 | Netapp, Inc. | System and method for verifying and correcting the consistency of mirrored data sets |
GB2439578B (en) | 2006-06-30 | 2011-11-09 | Data Equation Ltd | Data processing |
GB2440357B (en) | 2006-06-30 | 2011-12-07 | Data Equation Ltd | Data processing |
GB2439577B (en) | 2006-06-30 | 2011-12-14 | Data Equation Ltd | Data processing |
GB2439576B (en) | 2006-06-30 | 2011-05-04 | Data Equation Ltd | Storing related data fragments in the same block |
GB2439752B (en) | 2006-06-30 | 2011-11-02 | Data Equation Ltd | Storing and Modifying Data |
US7587563B1 (en) | 2006-07-11 | 2009-09-08 | Network Appliance, Inc. | Method and system to make a read-only file system appear to be writeable |
US7809687B2 (en) * | 2006-08-04 | 2010-10-05 | Apple Inc. | Searching a backup archive |
US7853567B2 (en) * | 2006-08-04 | 2010-12-14 | Apple Inc. | Conflict resolution in recovery of electronic data |
US7853566B2 (en) | 2006-08-04 | 2010-12-14 | Apple Inc. | Navigation of electronic backups |
US7809688B2 (en) * | 2006-08-04 | 2010-10-05 | Apple Inc. | Managing backup of content |
US8370853B2 (en) | 2006-08-04 | 2013-02-05 | Apple Inc. | Event notification management |
US8166415B2 (en) | 2006-08-04 | 2012-04-24 | Apple Inc. | User interface for backup management |
US7856424B2 (en) | 2006-08-04 | 2010-12-21 | Apple Inc. | User interface for backup management |
US8311988B2 (en) | 2006-08-04 | 2012-11-13 | Apple Inc. | Consistent back up of electronic information |
US7860839B2 (en) | 2006-08-04 | 2010-12-28 | Apple Inc. | Application-based backup-restore of electronic information |
US9009115B2 (en) | 2006-08-04 | 2015-04-14 | Apple Inc. | Restoring electronic information |
US7747584B1 (en) | 2006-08-22 | 2010-06-29 | Netapp, Inc. | System and method for enabling de-duplication in a storage system architecture |
US7979701B1 (en) | 2006-09-15 | 2011-07-12 | Netapp, Inc. | Cross mapping graphical interface to show encryption relationships between hosts and storage devices |
US7739546B1 (en) | 2006-10-20 | 2010-06-15 | Netapp, Inc. | System and method for storing and retrieving file system log information in a clustered computer system |
US7685178B2 (en) | 2006-10-31 | 2010-03-23 | Netapp, Inc. | System and method for examining client generated content stored on a data container exported by a storage system |
US7720889B1 (en) * | 2006-10-31 | 2010-05-18 | Netapp, Inc. | System and method for nearly in-band search indexing |
US7783847B2 (en) | 2006-10-31 | 2010-08-24 | Oracle America Inc. | Method and system for reallocating blocks in a storage pool |
US7827366B1 (en) | 2006-10-31 | 2010-11-02 | Network Appliance, Inc. | Method and system for providing continuous and long-term data protection for a dataset in a storage system |
US7584229B2 (en) * | 2006-10-31 | 2009-09-01 | Sun Microsystems, Inc. | Method and system for priority-based allocation in a storage pool |
US7840657B2 (en) * | 2006-10-31 | 2010-11-23 | Oracle America, Inc. | Method and apparatus for power-managing storage devices in a storage pool |
US7822921B2 (en) | 2006-10-31 | 2010-10-26 | Netapp, Inc. | System and method for optimizing write operations in storage systems |
US7822728B1 (en) * | 2006-11-08 | 2010-10-26 | Emc Corporation | Metadata pipelining and optimization in a file server |
US7593973B2 (en) | 2006-11-15 | 2009-09-22 | Dot Hill Systems Corp. | Method and apparatus for transferring snapshot data |
US7933921B2 (en) | 2006-11-29 | 2011-04-26 | Netapp, Inc. | Referent-controlled location resolution of resources in a federated distributed system |
US7613947B1 (en) | 2006-11-30 | 2009-11-03 | Netapp, Inc. | System and method for storage takeover |
US7647526B1 (en) | 2006-12-06 | 2010-01-12 | Netapp, Inc. | Reducing reconstruct input/output operations in storage systems |
US7620669B1 (en) | 2006-12-15 | 2009-11-17 | Netapp, Inc. | System and method for enhancing log performance |
US7921267B1 (en) | 2006-12-20 | 2011-04-05 | Network Appliance, Inc. | Method and system for fixing a mirror of a dataset |
US7676510B1 (en) | 2006-12-22 | 2010-03-09 | Network Appliance, Inc. | Space reservation monitoring in a fractionally reserved data storage system |
US8489811B1 (en) | 2006-12-29 | 2013-07-16 | Netapp, Inc. | System and method for addressing data containers using data set identifiers |
US8301673B2 (en) * | 2006-12-29 | 2012-10-30 | Netapp, Inc. | System and method for performing distributed consistency verification of a clustered file system |
US8751467B2 (en) | 2007-01-18 | 2014-06-10 | Dot Hill Systems Corporation | Method and apparatus for quickly accessing backing store metadata |
US7831565B2 (en) | 2007-01-18 | 2010-11-09 | Dot Hill Systems Corporation | Deletion of rollback snapshot partition |
US7853750B2 (en) * | 2007-01-30 | 2010-12-14 | Netapp, Inc. | Method and an apparatus to store data patterns |
US8190641B2 (en) | 2007-02-13 | 2012-05-29 | Netapp, Inc. | System and method for administration of virtual servers |
US8868495B2 (en) * | 2007-02-21 | 2014-10-21 | Netapp, Inc. | System and method for indexing user data on storage systems |
US7870356B1 (en) | 2007-02-22 | 2011-01-11 | Emc Corporation | Creation of snapshot copies using a sparse file for keeping a record of changed blocks |
US8312046B1 (en) | 2007-02-28 | 2012-11-13 | Netapp, Inc. | System and method for enabling a data container to appear in a plurality of locations in a super-namespace |
US8219821B2 (en) * | 2007-03-27 | 2012-07-10 | Netapp, Inc. | System and method for signature based data container recognition |
US7653612B1 (en) | 2007-03-28 | 2010-01-26 | Emc Corporation | Data protection services offload using shallow files |
US8312214B1 (en) | 2007-03-28 | 2012-11-13 | Netapp, Inc. | System and method for pausing disk drives in an aggregate |
US8510524B1 (en) | 2007-03-29 | 2013-08-13 | Netapp, Inc. | File system capable of generating snapshots and providing fast sequential read access |
US8533410B1 (en) | 2007-03-29 | 2013-09-10 | Netapp, Inc. | Maintaining snapshot and active file system metadata in an on-disk structure of a file system |
US7849057B1 (en) * | 2007-03-30 | 2010-12-07 | Netapp, Inc. | Identifying snapshot membership for blocks based on snapid |
US7716435B1 (en) | 2007-03-30 | 2010-05-11 | Emc Corporation | Protection of point-in-time application data using snapshot copies of a logical volume |
US7716183B2 (en) | 2007-04-11 | 2010-05-11 | Dot Hill Systems Corporation | Snapshot preserved data cloning |
US7975115B2 (en) | 2007-04-11 | 2011-07-05 | Dot Hill Systems Corporation | Method and apparatus for separating snapshot preserved and write data |
US8209587B1 (en) | 2007-04-12 | 2012-06-26 | Netapp, Inc. | System and method for eliminating zeroing of disk drives in RAID arrays |
US7734947B1 (en) | 2007-04-17 | 2010-06-08 | Netapp, Inc. | System and method for virtual interface failover within a cluster |
US9134921B1 (en) | 2007-04-23 | 2015-09-15 | Netapp, Inc. | Uniquely naming storage devices in a global storage environment |
US8219749B2 (en) * | 2007-04-27 | 2012-07-10 | Netapp, Inc. | System and method for efficient updates of sequential block storage |
US7827350B1 (en) | 2007-04-27 | 2010-11-02 | Netapp, Inc. | Method and system for promoting a snapshot in a distributed file system |
US8412896B1 (en) | 2007-04-27 | 2013-04-02 | Netapp, Inc. | Method and system for transparent restore of junction file types |
US7840837B2 (en) * | 2007-04-27 | 2010-11-23 | Netapp, Inc. | System and method for protecting memory during system initialization |
US7987383B1 (en) | 2007-04-27 | 2011-07-26 | Netapp, Inc. | System and method for rapid indentification of coredump disks during simultaneous take over |
US8898536B2 (en) | 2007-04-27 | 2014-11-25 | Netapp, Inc. | Multi-core engine for detecting bit errors |
US7882304B2 (en) * | 2007-04-27 | 2011-02-01 | Netapp, Inc. | System and method for efficient updates of sequential block storage |
US8086652B1 (en) | 2007-04-27 | 2011-12-27 | Netapp, Inc. | Storage system-based hole punching for reclaiming unused space from a data container |
US7958385B1 (en) | 2007-04-30 | 2011-06-07 | Netapp, Inc. | System and method for verification and enforcement of virtual interface failover within a cluster |
US8001345B2 (en) | 2007-05-10 | 2011-08-16 | Dot Hill Systems Corporation | Automatic triggering of backing store re-initialization |
US7783603B2 (en) | 2007-05-10 | 2010-08-24 | Dot Hill Systems Corporation | Backing store re-initialization method and apparatus |
US7836331B1 (en) | 2007-05-15 | 2010-11-16 | Netapp, Inc. | System and method for protecting the contents of memory during error conditions |
US7702662B2 (en) * | 2007-05-16 | 2010-04-20 | International Business Machines Corporation | Method and system for handling reallocated blocks in a file system |
US8762345B2 (en) * | 2007-05-31 | 2014-06-24 | Netapp, Inc. | System and method for accelerating anchor point detection |
US7797489B1 (en) | 2007-06-01 | 2010-09-14 | Netapp, Inc. | System and method for providing space availability notification in a distributed striped volume set |
US8429368B2 (en) * | 2007-06-01 | 2013-04-23 | Netapp, Inc. | Providing an administrative path for accessing a writeable master storage volume in a mirrored storage environment |
US8725965B2 (en) | 2007-06-08 | 2014-05-13 | Apple Inc. | System setup for electronic backup |
US20080307017A1 (en) | 2007-06-08 | 2008-12-11 | Apple Inc. | Searching and Restoring of Backups |
US8468136B2 (en) | 2007-06-08 | 2013-06-18 | Apple Inc. | Efficient data backup |
US8745523B2 (en) | 2007-06-08 | 2014-06-03 | Apple Inc. | Deletion in electronic backups |
EP2372553B1 (de) * | 2007-06-08 | 2013-01-30 | Apple Inc. | Anwendungsbasierte Sicherung/Wiederherstellung elektronischer Informationen |
US8010900B2 (en) | 2007-06-08 | 2011-08-30 | Apple Inc. | User interface for electronic backup |
US8429425B2 (en) | 2007-06-08 | 2013-04-23 | Apple Inc. | Electronic backup and restoration of encrypted data |
US8307004B2 (en) * | 2007-06-08 | 2012-11-06 | Apple Inc. | Manipulating electronic backups |
US8099392B2 (en) * | 2007-06-08 | 2012-01-17 | Apple Inc. | Electronic backup of applications |
US8204858B2 (en) | 2007-06-25 | 2012-06-19 | Dot Hill Systems Corporation | Snapshot reset method and apparatus |
JP4907605B2 (ja) * | 2007-06-25 | 2012-04-04 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | inodeの割り当て及び割り当て解除の方法及びコンピュータプログラム |
US7676704B2 (en) * | 2007-06-29 | 2010-03-09 | Symantec Corporation | Resource management for scalable file system recovery |
US8301791B2 (en) * | 2007-07-26 | 2012-10-30 | Netapp, Inc. | System and method for non-disruptive check of a mirror |
US7975102B1 (en) | 2007-08-06 | 2011-07-05 | Netapp, Inc. | Technique to avoid cascaded hot spotting |
US7941406B2 (en) * | 2007-08-20 | 2011-05-10 | Novell, Inc. | Techniques for snapshotting |
US8346952B2 (en) * | 2007-08-21 | 2013-01-01 | Netapp, Inc. | De-centralization of group administration authority within a network storage architecture |
US8793226B1 (en) | 2007-08-28 | 2014-07-29 | Netapp, Inc. | System and method for estimating duplicate data |
US8799595B1 (en) * | 2007-08-30 | 2014-08-05 | American Megatrends, Inc. | Eliminating duplicate data in storage systems with boot consolidation |
US7958325B2 (en) * | 2007-09-11 | 2011-06-07 | International Business Machines Corporation | Handling temporary files in a file system with snapshots |
US7865475B1 (en) | 2007-09-12 | 2011-01-04 | Netapp, Inc. | Mechanism for converting one type of mirror to another type of mirror on a storage system without transferring data |
US7783666B1 (en) | 2007-09-26 | 2010-08-24 | Netapp, Inc. | Controlling access to storage resources by using access pattern based quotas |
US7792882B2 (en) * | 2007-09-27 | 2010-09-07 | Oracle America, Inc. | Method and system for block allocation for hybrid drives |
US8504904B2 (en) * | 2008-01-16 | 2013-08-06 | Hitachi Data Systems Engineering UK Limited | Validating objects in a data storage system |
US8112465B2 (en) | 2007-10-12 | 2012-02-07 | Bluearc Uk Limited | System, device, and method for validating data structures in a storage system |
WO2009049023A2 (en) * | 2007-10-12 | 2009-04-16 | Bluearc Uk Limited | Multi-way checkpoints in a data storage system |
US9767120B2 (en) * | 2008-01-16 | 2017-09-19 | Hitachi Data Systems Engineering UK Limited | Multi-way checkpoints in a data storage system |
US7904756B2 (en) * | 2007-10-19 | 2011-03-08 | Oracle International Corporation | Repair planning engine for data corruptions |
US8352431B1 (en) | 2007-10-31 | 2013-01-08 | Emc Corporation | Fine-grain policy-based snapshots |
US9817832B1 (en) | 2007-10-31 | 2017-11-14 | EMC IP Holding Company LLC | Unified framework for policy-based metadata-driven storage services |
US7996636B1 (en) | 2007-11-06 | 2011-08-09 | Netapp, Inc. | Uniquely identifying block context signatures in a storage volume hierarchy |
US7809776B1 (en) | 2007-11-30 | 2010-10-05 | Netapp, Inc. | System and method for supporting change notify watches for virtualized storage systems |
US7984259B1 (en) | 2007-12-17 | 2011-07-19 | Netapp, Inc. | Reducing load imbalance in a storage system |
US8473526B2 (en) * | 2008-01-08 | 2013-06-25 | International Business Machines Corporation | System, method and computer program product for managing a group of copies of a data entity |
US7996607B1 (en) | 2008-01-28 | 2011-08-09 | Netapp, Inc. | Distributing lookup operations in a striped storage system |
US8296301B2 (en) | 2008-01-30 | 2012-10-23 | Commvault Systems, Inc. | Systems and methods for probabilistic data classification |
US8549222B1 (en) | 2008-02-12 | 2013-10-01 | Netapp, Inc. | Cache-based storage system architecture |
US9134917B2 (en) * | 2008-02-12 | 2015-09-15 | Netapp, Inc. | Hybrid media storage system architecture |
US8055629B2 (en) * | 2008-03-05 | 2011-11-08 | International Business Machines Corporation | Transitioning an archived file to write-once-read-many |
US8725986B1 (en) | 2008-04-18 | 2014-05-13 | Netapp, Inc. | System and method for volume block number to disk block number mapping |
US8095728B2 (en) * | 2008-04-18 | 2012-01-10 | Oracle America, Inc. | Method and system for power aware I/O scheduling |
US8661428B2 (en) * | 2008-04-25 | 2014-02-25 | Vmware, Inc. | Updating a file using differences and file format therefor |
US8219564B1 (en) | 2008-04-29 | 2012-07-10 | Netapp, Inc. | Two-dimensional indexes for quick multiple attribute search in a catalog system |
US8799429B1 (en) | 2008-05-06 | 2014-08-05 | American Megatrends, Inc. | Boot acceleration by consolidating client-specific boot data in a data storage system |
US8037279B2 (en) * | 2008-06-12 | 2011-10-11 | Oracle America, Inc. | Method and system for cross-domain data sharing |
US9215066B2 (en) * | 2008-06-25 | 2015-12-15 | Oracle America, Inc. | Method and system for making information in a data set of a copy-on-write file system inaccessible |
US7979401B2 (en) * | 2008-06-26 | 2011-07-12 | International Business Macines Corporation | Time based file system for continuous data protection |
US8135907B2 (en) * | 2008-06-30 | 2012-03-13 | Oracle America, Inc. | Method and system for managing wear-level aware file systems |
JP5205164B2 (ja) | 2008-07-29 | 2013-06-05 | 株式会社日立製作所 | ファイルシステム管理装置及び方法 |
US8099571B1 (en) | 2008-08-06 | 2012-01-17 | Netapp, Inc. | Logical block replication with deduplication |
US8250043B2 (en) * | 2008-08-19 | 2012-08-21 | Netapp, Inc. | System and method for compression of partially ordered data sets |
US8099572B1 (en) | 2008-09-30 | 2012-01-17 | Emc Corporation | Efficient backup and restore of storage objects in a version set |
US8151069B1 (en) | 2008-10-29 | 2012-04-03 | Emc Corporation | Multiprotection for snapsnots |
US7992055B1 (en) | 2008-11-07 | 2011-08-02 | Netapp, Inc. | System and method for providing autosupport for a security system |
US9158579B1 (en) | 2008-11-10 | 2015-10-13 | Netapp, Inc. | System having operation queues corresponding to operation execution time |
US8713016B2 (en) | 2008-12-24 | 2014-04-29 | Comcast Interactive Media, Llc | Method and apparatus for organizing segments of media assets and determining relevance of segments to a query |
US9442933B2 (en) | 2008-12-24 | 2016-09-13 | Comcast Interactive Media, Llc | Identification of segments within audio, video, and multimedia items |
US11531668B2 (en) | 2008-12-29 | 2022-12-20 | Comcast Interactive Media, Llc | Merging of multiple data sets |
US8285680B2 (en) * | 2009-01-08 | 2012-10-09 | International Business Machines Corporation | Individual object restore |
US8495417B2 (en) * | 2009-01-09 | 2013-07-23 | Netapp, Inc. | System and method for redundancy-protected aggregates |
US8566362B2 (en) * | 2009-01-23 | 2013-10-22 | Nasuni Corporation | Method and system for versioned file system using structured data representations |
US20100211616A1 (en) * | 2009-02-16 | 2010-08-19 | Rajesh Khandelwal | Performance by Avoiding Disk I/O for Deduplicated File Blocks |
JP5244979B2 (ja) * | 2009-02-23 | 2013-07-24 | 株式会社日立製作所 | ストレージシステムおよびその制御方法 |
US8176043B2 (en) | 2009-03-12 | 2012-05-08 | Comcast Interactive Media, Llc | Ranking search results |
US20100250614A1 (en) * | 2009-03-31 | 2010-09-30 | Comcast Cable Holdings, Llc | Storing and searching encoded data |
US8688798B1 (en) | 2009-04-03 | 2014-04-01 | Netapp, Inc. | System and method for a shared write address protocol over a remote direct memory access connection |
US8266136B1 (en) | 2009-04-13 | 2012-09-11 | Netapp, Inc. | Mechanism for performing fast directory lookup in a server system |
US8392481B2 (en) * | 2009-04-22 | 2013-03-05 | International Business Machines Corporation | Accessing snapshots of a time based file system |
US8321645B2 (en) * | 2009-04-29 | 2012-11-27 | Netapp, Inc. | Mechanisms for moving data in a hybrid aggregate |
US8321380B1 (en) | 2009-04-30 | 2012-11-27 | Netapp, Inc. | Unordered idempotent replication operations |
US8117388B2 (en) * | 2009-04-30 | 2012-02-14 | Netapp, Inc. | Data distribution through capacity leveling in a striped file system |
US20100281207A1 (en) * | 2009-04-30 | 2010-11-04 | Miller Steven C | Flash-based data archive storage system |
US8655848B1 (en) | 2009-04-30 | 2014-02-18 | Netapp, Inc. | Unordered idempotent logical replication operations |
US8533223B2 (en) | 2009-05-12 | 2013-09-10 | Comcast Interactive Media, LLC. | Disambiguation and tagging of entities |
WO2010132055A1 (en) | 2009-05-13 | 2010-11-18 | Hewlett-Packard Development Company, L.P. | System for virtual disks version control |
US9213697B1 (en) * | 2009-05-20 | 2015-12-15 | Acronis International Gmbh | System and method for restoration of MS exchange server mail |
US8280858B2 (en) * | 2009-06-29 | 2012-10-02 | Oracle America, Inc. | Storage pool scrubbing with concurrent snapshots |
US9892730B2 (en) | 2009-07-01 | 2018-02-13 | Comcast Interactive Media, Llc | Generating topic-specific language models |
US9092500B2 (en) | 2009-09-03 | 2015-07-28 | Commvault Systems, Inc. | Utilizing snapshots for access to databases and other applications |
US8671072B1 (en) | 2009-09-14 | 2014-03-11 | Netapp, Inc. | System and method for hijacking inodes based on replication operations received in an arbitrary order |
US8150808B2 (en) | 2009-10-21 | 2012-04-03 | Delphix Corp. | Virtual database system |
US8161077B2 (en) | 2009-10-21 | 2012-04-17 | Delphix Corp. | Datacenter workflow automation scenarios using virtual databases |
US8799367B1 (en) | 2009-10-30 | 2014-08-05 | Netapp, Inc. | Using logical block addresses with generation numbers as data fingerprints for network deduplication |
US8473690B1 (en) | 2009-10-30 | 2013-06-25 | Netapp, Inc. | Using logical block addresses with generation numbers as data fingerprints to provide cache coherency |
WO2011082132A1 (en) | 2009-12-31 | 2011-07-07 | Commvault Systems, Inc. | Systems and methods for analyzing snapshots |
WO2011082138A1 (en) | 2009-12-31 | 2011-07-07 | Commvault Systems, Inc. | Systems and methods for performing data management operations using snapshots |
US9003110B2 (en) | 2010-01-13 | 2015-04-07 | International Business Machines Corporation | Dividing incoming data into multiple data streams and transforming the data for storage in a logical data object |
US8683152B2 (en) * | 2010-03-10 | 2014-03-25 | Netapp, Inc. | Fast migration of virtual storage partition data across storage systems |
US8996563B2 (en) | 2010-04-06 | 2015-03-31 | Tokutek, Inc. | High-performance streaming dictionary |
EP2386958A1 (de) | 2010-05-13 | 2011-11-16 | Assa Abloy AB | Verfahren für stufenweise abbruchresistente Speicherbereinigung |
US9742564B2 (en) | 2010-05-14 | 2017-08-22 | Oracle International Corporation | Method and system for encrypting data |
US8224780B2 (en) * | 2010-06-15 | 2012-07-17 | Microsoft Corporation | Checkpoints for a file system |
US11726955B2 (en) | 2010-06-19 | 2023-08-15 | Hewlett Packard Enterprise Development Lp | Methods and apparatus for efficient container location database snapshot operation |
US9323775B2 (en) | 2010-06-19 | 2016-04-26 | Mapr Technologies, Inc. | Map-reduce ready distributed file system |
US8548944B2 (en) | 2010-07-15 | 2013-10-01 | Delphix Corp. | De-duplication based backup of file systems |
US8799231B2 (en) | 2010-08-30 | 2014-08-05 | Nasuni Corporation | Versioned file system with fast restore |
US9747270B2 (en) | 2011-01-07 | 2017-08-29 | Microsoft Technology Licensing, Llc | Natural input for spreadsheet actions |
FR2965952B1 (fr) * | 2010-10-06 | 2013-06-21 | Commissariat Energie Atomique | Procede de mise a jour d'un index inverse et serveur mettant en oeuvre ce procede |
US8990526B2 (en) | 2010-10-06 | 2015-03-24 | Quantum Corporation | Merging data volumes and derivative versions of the data volumes |
WO2012051298A2 (en) | 2010-10-12 | 2012-04-19 | Nasuni Corporation | Versioned file system with sharing |
US9858155B2 (en) | 2010-11-16 | 2018-01-02 | Actifio, Inc. | System and method for managing data with service level agreements that may specify non-uniform copying of data |
US8417674B2 (en) | 2010-11-16 | 2013-04-09 | Actifio, Inc. | System and method for creating deduplicated copies of data by sending difference data between near-neighbor temporal states |
US8904126B2 (en) | 2010-11-16 | 2014-12-02 | Actifio, Inc. | System and method for performing a plurality of prescribed data management functions in a manner that reduces redundant access operations to primary storage |
US8843489B2 (en) | 2010-11-16 | 2014-09-23 | Actifio, Inc. | System and method for managing deduplicated copies of data using temporal relationships among copies |
US8402004B2 (en) | 2010-11-16 | 2013-03-19 | Actifio, Inc. | System and method for creating deduplicated copies of data by tracking temporal relationships among copies and by ingesting difference data |
US8738570B2 (en) * | 2010-11-22 | 2014-05-27 | Hitachi Data Systems Engineering UK Limited | File cloning and de-cloning in a data storage system |
US8468174B1 (en) | 2010-11-30 | 2013-06-18 | Jedidiah Yueh | Interfacing with a virtual database system |
US8904006B2 (en) | 2010-12-08 | 2014-12-02 | International Business Machines Corporation | In-flight block map for a clustered redirect-on-write filesystem |
US8396832B2 (en) | 2010-12-08 | 2013-03-12 | International Business Machines Corporation | Independent fileset generations in a clustered redirect-on-write filesystem |
US8458181B2 (en) | 2010-12-08 | 2013-06-04 | International Business Machines Corporation | Distributed free block map for a clustered redirect-on-write file system |
US8626713B2 (en) * | 2010-12-08 | 2014-01-07 | International Business Machines Corporation | Multiple contexts in a redirect on write file system |
US8818966B1 (en) | 2010-12-30 | 2014-08-26 | Emc Corporation | Continuous file defragmentation during file over-writes |
US8984029B2 (en) | 2011-01-14 | 2015-03-17 | Apple Inc. | File system management |
US8943026B2 (en) | 2011-01-14 | 2015-01-27 | Apple Inc. | Visual representation of a local backup |
US9996540B2 (en) | 2011-03-31 | 2018-06-12 | EMC IP Holding Company LLC | System and method for maintaining consistent points in file systems using a prime dependency list |
US8832394B2 (en) | 2011-03-31 | 2014-09-09 | Emc Corporation | System and method for maintaining consistent points in file systems |
US10210169B2 (en) | 2011-03-31 | 2019-02-19 | EMC IP Holding Company LLC | System and method for verifying consistent points in file systems |
US8706703B2 (en) * | 2011-06-27 | 2014-04-22 | International Business Machines Corporation | Efficient file system object-based deduplication |
US8983915B2 (en) | 2011-08-01 | 2015-03-17 | Actifio, Inc. | Successive data fingerprinting for copy accuracy assurance |
US9336222B2 (en) * | 2011-08-05 | 2016-05-10 | Netapp, Inc. | Creation and access of quota trees in a file system |
JP2013073557A (ja) * | 2011-09-29 | 2013-04-22 | Hitachi Solutions Ltd | 情報検索システム、検索サーバ及びプログラム |
US9514154B2 (en) | 2011-10-27 | 2016-12-06 | International Business Machines Corporation | Virtual file system interface for communicating changes of metadata in a data storage system |
US9053083B2 (en) | 2011-11-04 | 2015-06-09 | Microsoft Technology Licensing, Llc | Interaction between web gadgets and spreadsheets |
US9098452B2 (en) | 2011-12-19 | 2015-08-04 | International Business Machines Corporation | Selecting files to backup in a block level backup |
US9171099B2 (en) | 2012-01-26 | 2015-10-27 | Microsoft Technology Licensing, Llc | System and method for providing calculation web services for online documents |
US9471578B2 (en) | 2012-03-07 | 2016-10-18 | Commvault Systems, Inc. | Data storage system utilizing proxy device for storage operations |
US9298715B2 (en) | 2012-03-07 | 2016-03-29 | Commvault Systems, Inc. | Data storage system utilizing proxy device for storage operations |
US9319274B1 (en) * | 2012-03-29 | 2016-04-19 | Emc Corporation | Method and system for dynamic provisioning using server dormant mode for virtual server dormancy |
US9342537B2 (en) | 2012-04-23 | 2016-05-17 | Commvault Systems, Inc. | Integrated snapshot interface for a data storage system |
EP2862051A4 (de) | 2012-06-18 | 2016-08-10 | Actifio Inc | Verbessertes datenverwaltungsvirtualisierungssystem |
US9146684B2 (en) | 2012-09-28 | 2015-09-29 | Netapp, Inc. | Storage architecture for server flash and storage array operation |
US8788461B2 (en) | 2012-10-04 | 2014-07-22 | Delphix Corp. | Creating validated database snapshots for provisioning virtual databases |
US10346369B2 (en) | 2012-10-11 | 2019-07-09 | Delphix Corp. | Retrieving point-in-time copies of a source database for creating virtual databases |
US8832024B2 (en) | 2012-10-26 | 2014-09-09 | Netapp, Inc. | Simplified copy offload |
US9208168B2 (en) | 2012-11-19 | 2015-12-08 | Netapp, Inc. | Inter-protocol copy offload |
US10908835B1 (en) | 2013-01-10 | 2021-02-02 | Pure Storage, Inc. | Reversing deletion of a virtual machine |
US11733908B2 (en) | 2013-01-10 | 2023-08-22 | Pure Storage, Inc. | Delaying deletion of a dataset |
US9886346B2 (en) | 2013-01-11 | 2018-02-06 | Commvault Systems, Inc. | Single snapshot for multiple agents |
US9582213B2 (en) * | 2013-02-21 | 2017-02-28 | Netapp, Inc. | Object store architecture for distributed data processing system |
US9934230B1 (en) | 2013-02-28 | 2018-04-03 | Netapp, Inc. | Delegations for non-regular files |
US9582219B2 (en) | 2013-03-12 | 2017-02-28 | Netapp, Inc. | Technique for rapidly converting between storage representations in a virtualized computing environment |
US10180951B2 (en) | 2013-03-15 | 2019-01-15 | Amazon Technologies, Inc. | Place snapshots |
US9229864B1 (en) * | 2013-03-15 | 2016-01-05 | Emc Corporation | Managing metadata synchronization for reducing host system latency in a storage system |
AU2014265979A1 (en) | 2013-05-14 | 2015-12-10 | Actifio, Inc. | Efficient data replication and garbage collection predictions |
US10664652B2 (en) | 2013-06-15 | 2020-05-26 | Microsoft Technology Licensing, Llc | Seamless grid and canvas integration in a spreadsheet application |
US10108685B2 (en) | 2013-07-09 | 2018-10-23 | Delphix Corp. | Remote provisioning of virtual databases |
US9436556B2 (en) | 2013-07-09 | 2016-09-06 | Delphix Corp. | Customizable storage system for virtual databases |
KR101693683B1 (ko) | 2013-07-09 | 2017-01-06 | 델픽스 코퍼레이션 | 가상 데이터베이스 되감기 |
US9477605B2 (en) | 2013-07-11 | 2016-10-25 | Advanced Micro Devices, Inc. | Memory hierarchy using row-based compression |
US11132300B2 (en) * | 2013-07-11 | 2021-09-28 | Advanced Micro Devices, Inc. | Memory hierarchy using page-based compression |
JP5650826B2 (ja) * | 2013-10-04 | 2015-01-07 | 日本電信電話株式会社 | 検索インデックス生成装置及び検索インデックス構築方法及び検索インデックス構築プログラム |
US20150142748A1 (en) | 2013-11-18 | 2015-05-21 | Actifio, Inc. | Computerized methods and apparatus for data cloning |
WO2015094329A1 (en) * | 2013-12-20 | 2015-06-25 | Hitachi Data Systems Engineering UK Limited | System for queue based object cloning |
US9842026B2 (en) | 2013-12-31 | 2017-12-12 | Netapp, Inc. | Snapshot-protected consistency checking file systems |
US9632874B2 (en) | 2014-01-24 | 2017-04-25 | Commvault Systems, Inc. | Database application backup in single snapshot for multiple applications |
US9639426B2 (en) | 2014-01-24 | 2017-05-02 | Commvault Systems, Inc. | Single snapshot for multiple applications |
US9495251B2 (en) | 2014-01-24 | 2016-11-15 | Commvault Systems, Inc. | Snapshot readiness checking and reporting |
US9753812B2 (en) | 2014-01-24 | 2017-09-05 | Commvault Systems, Inc. | Generating mapping information for single snapshot for multiple applications |
US9720778B2 (en) | 2014-02-14 | 2017-08-01 | Actifio, Inc. | Local area network free data movement |
US9645766B1 (en) | 2014-03-28 | 2017-05-09 | EMC IP Holding Company LLC | Tape emulation alternate data path |
US10037204B2 (en) | 2014-04-22 | 2018-07-31 | Delphix Corp. | Version control of applications |
US9710478B2 (en) | 2014-05-02 | 2017-07-18 | Netapp, Inc. | System and method for adaptive data placement within a distributed file system |
US9792187B2 (en) | 2014-05-06 | 2017-10-17 | Actifio, Inc. | Facilitating test failover using a thin provisioned virtual machine created from a snapshot |
US9841991B2 (en) | 2014-05-12 | 2017-12-12 | Netapp, Inc. | Techniques for virtual machine migration |
US10216531B2 (en) | 2014-05-12 | 2019-02-26 | Netapp, Inc. | Techniques for virtual machine shifting |
US9477683B2 (en) * | 2014-05-30 | 2016-10-25 | International Business Machines Corporation | Techniques for enabling coarse-grained volume snapshots for virtual machine backup and restore |
WO2015195834A1 (en) | 2014-06-17 | 2015-12-23 | Rangasamy Govind | Resiliency director |
US9921769B2 (en) | 2014-06-19 | 2018-03-20 | Cohesity, Inc. | Making more active use of a secondary storage system |
US10977134B2 (en) | 2014-08-19 | 2021-04-13 | Netapp Inc. | Restoration process to restore corrupted data of a volume |
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 |
US9774672B2 (en) | 2014-09-03 | 2017-09-26 | Commvault Systems, Inc. | Consolidated processing of storage-array commands by a snapshot-control media agent |
US10379963B2 (en) | 2014-09-16 | 2019-08-13 | Actifio, Inc. | Methods and apparatus for managing a large-scale environment of copy data management appliances |
WO2016044403A1 (en) | 2014-09-16 | 2016-03-24 | Mutalik, Madhav | Copy data techniques |
US9959335B2 (en) | 2014-09-22 | 2018-05-01 | Netapp, Inc. | System and method for avoiding object identifier collisions in a peered cluster environment |
US9811428B2 (en) | 2014-09-22 | 2017-11-07 | Netapp Inc. | System and method for handling multi-node failures in a disaster recovery cluster |
US9904688B2 (en) | 2014-09-30 | 2018-02-27 | International Business Machines Corporation | Buffering and replicating data written to a distributed storage system |
US9916325B2 (en) | 2014-09-30 | 2018-03-13 | International Business Machines Corporation | Quick initialization of data regions in a distributed storage 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 |
EP3224744A4 (de) | 2014-11-28 | 2018-08-01 | Nasuni Corporation | Versioniertes dateisystem mit globaler sperre |
WO2016094819A1 (en) | 2014-12-12 | 2016-06-16 | Actifio, Inc. | Searching and indexing of backup data sets |
US10055300B2 (en) | 2015-01-12 | 2018-08-21 | Actifio, Inc. | Disk group based backup |
US10083196B2 (en) | 2015-02-04 | 2018-09-25 | Delphix Corporation | Creating secure virtual databases storing masked data |
US9600193B2 (en) | 2015-02-04 | 2017-03-21 | Delphix Corporation | Replicating snapshots from a source storage system to a target storage system |
US9990366B2 (en) | 2015-03-13 | 2018-06-05 | Delphix Corporation | Virtual partitions in virtual databases |
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 |
US10282201B2 (en) | 2015-04-30 | 2019-05-07 | Actifo, Inc. | Data provisioning techniques |
US11294657B2 (en) * | 2015-05-15 | 2022-04-05 | Hewlett-Packard Development Company, L.P. | Data copying |
US10613938B2 (en) | 2015-07-01 | 2020-04-07 | Actifio, Inc. | Data virtualization using copy data tokens |
US10691659B2 (en) | 2015-07-01 | 2020-06-23 | Actifio, Inc. | Integrating copy data tokens with source code repositories |
US9952797B2 (en) | 2015-07-31 | 2018-04-24 | Netapp, Inc. | Systems, methods and devices for addressing data blocks in mass storage filing systems |
US10257273B2 (en) | 2015-07-31 | 2019-04-09 | Netapp, Inc. | Systems, methods and devices for RDMA read/write operations |
US9715348B2 (en) | 2015-09-09 | 2017-07-25 | Netapp, Inc. | Systems, methods and devices for block sharing across volumes in data storage systems |
US10503753B2 (en) | 2016-03-10 | 2019-12-10 | Commvault Systems, Inc. | Snapshot replication operations based on incremental block change tracking |
WO2017168499A1 (ja) | 2016-03-28 | 2017-10-05 | 株式会社日立製作所 | データ処理システム及びデータ処理方法 |
US9817592B1 (en) | 2016-04-27 | 2017-11-14 | Netapp, Inc. | Using an intermediate virtual disk format for virtual disk conversion |
US10445298B2 (en) | 2016-05-18 | 2019-10-15 | Actifio, Inc. | Vault to object store |
US10476955B2 (en) | 2016-06-02 | 2019-11-12 | Actifio, Inc. | Streaming and sequential data replication |
US10983951B1 (en) * | 2016-09-29 | 2021-04-20 | EMC IP Holding Company LLC | Recovery processing for persistent file data cache to reduce data loss |
US10540516B2 (en) | 2016-10-13 | 2020-01-21 | Commvault Systems, Inc. | Data protection within an unsecured storage environment |
US10822132B2 (en) | 2017-02-10 | 2020-11-03 | R.E.D. Stamp, Inc. | High speed stamp applicator |
US10855554B2 (en) | 2017-04-28 | 2020-12-01 | Actifio, Inc. | Systems and methods for determining service level agreement compliance |
US11403178B2 (en) | 2017-09-29 | 2022-08-02 | Google Llc | Incremental vault to object store |
WO2019148497A1 (zh) * | 2018-02-05 | 2019-08-08 | 华为技术有限公司 | 一种数据查询方法及装置 |
US20190251204A1 (en) | 2018-02-14 | 2019-08-15 | Commvault Systems, Inc. | Targeted search of backup data using calendar event data |
US10732885B2 (en) | 2018-02-14 | 2020-08-04 | Commvault Systems, Inc. | Block-level live browsing and private writable snapshots using an ISCSI server |
US11176001B2 (en) | 2018-06-08 | 2021-11-16 | Google Llc | Automated backup and restore of a disk group |
US10719401B2 (en) | 2018-09-12 | 2020-07-21 | International Business Machines Corporation | Increasing data recoverability during central inode list loss |
US11803303B1 (en) * | 2022-04-08 | 2023-10-31 | International Business Machines Corporation | Intelligent layer control of redundant content in container images |
Family Cites Families (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4075691A (en) * | 1975-11-06 | 1978-02-21 | Bunker Ramo Corporation | Communication control unit |
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 |
US4488231A (en) * | 1980-09-29 | 1984-12-11 | Honeywell Information Systems Inc. | Communication multiplexer having dual microprocessors |
FR2500659B1 (fr) * | 1981-02-25 | 1986-02-28 | Philips Ind Commerciale | Dispositif pour l'allocation dynamique des taches d'un ordinateur multiprocesseur |
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 |
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 |
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 |
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 |
US4803621A (en) * | 1986-07-24 | 1989-02-07 | Sun Microsystems, Inc. | Memory access system |
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 |
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 |
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 |
US4914583A (en) * | 1988-04-13 | 1990-04-03 | Motorola, Inc. | Method of indicating processes resident within a cell of a data processing system |
US5043876A (en) * | 1988-05-27 | 1991-08-27 | International Business Machines Corporation | N-level file shadowing and recovery in a shared file system |
US5065354A (en) * | 1988-09-16 | 1991-11-12 | Compaq Computer Corporation | Queued posted-write disk write method with improved error handling |
US5218696A (en) * | 1989-07-24 | 1993-06-08 | International Business Machines Corporation | Method for dynamically expanding and rapidly accessing file directories |
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 |
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 |
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 |
CA2045799C (en) * | 1990-07-11 | 1999-03-23 | Kenneth L. Thompson | File system with read/write and read only storage |
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 |
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 |
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 |
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 |
US5313626A (en) * | 1991-12-17 | 1994-05-17 | Jones Craig S | Disk drive array with efficient background rebuilding |
US5305326A (en) * | 1992-03-06 | 1994-04-19 | Data General Corporation | High availability disk arrays |
US5315602A (en) * | 1992-08-12 | 1994-05-24 | Digital Equipment Corporation | Optimized stripe detection for redundant arrays of disk drives |
-
1994
- 1994-06-02 AT AT94921242T patent/ATE195825T1/de not_active IP Right Cessation
- 1994-06-02 AT AT99120949T patent/ATE409907T1/de not_active IP Right Cessation
- 1994-06-02 EP EP94921242A patent/EP0702815B1/de not_active Expired - Lifetime
- 1994-06-02 DE DE69435146T patent/DE69435146D1/de not_active Expired - Lifetime
- 1994-06-02 JP JP50199995A patent/JP3751018B2/ja not_active Expired - Lifetime
- 1994-06-02 DK DK94921242T patent/DK0702815T3/da active
- 1994-06-02 EP EP99120949A patent/EP1003103B1/de not_active Expired - Lifetime
- 1994-06-02 WO PCT/US1994/006320 patent/WO1994029807A1/en active IP Right Grant
- 1994-06-02 DE DE69425658T patent/DE69425658T2/de not_active Expired - Lifetime
-
1995
- 1995-05-31 US US08/454,921 patent/US5819292A/en not_active Expired - Lifetime
-
1998
- 1998-12-23 HK HK98114949A patent/HK1013697A1/xx not_active IP Right Cessation
- 1998-12-23 HK HK00106621A patent/HK1027876A1/xx not_active IP Right Cessation
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7231412B2 (en) | 1993-06-03 | 2007-06-12 | Network Appliance, Inc. | Allocating files in a file system integrated with a raid disk sub-system |
US6751635B1 (en) | 2000-08-18 | 2004-06-15 | Network Appliance, Inc. | File deletion and truncation using a zombie file space |
US7305424B2 (en) | 2000-08-18 | 2007-12-04 | Network Appliance, Inc. | Manipulation of zombie files and evil-twin files |
US7454445B2 (en) | 2000-08-18 | 2008-11-18 | Network Appliance, Inc. | Write allocation based on storage system map and snapshot |
US7296073B1 (en) | 2000-09-13 | 2007-11-13 | Network Appliance, Inc. | Mechanism to survive server failures when using the CIFS protocol |
US6952797B1 (en) | 2000-10-25 | 2005-10-04 | Andy Kahn | Block-appended checksums |
US8204864B1 (en) | 2001-03-12 | 2012-06-19 | Network Appliance, Inc. | Restartable dump that produces a consistent filesystem on tapes |
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 |
US7178137B1 (en) | 2001-04-05 | 2007-02-13 | Network Appliance, Inc. | Automatic verification of scheduling domain consistency |
US7694302B1 (en) | 2001-04-05 | 2010-04-06 | Network Appliance, Inc. | Symmetric multiprocessor synchronization using migrating scheduling domains |
US7328306B1 (en) | 2002-02-25 | 2008-02-05 | Network Appliance, Inc. | Flexible disabling of disk sets |
US6976189B1 (en) | 2002-03-22 | 2005-12-13 | Network Appliance, Inc. | Persistent context-based behavior injection or testing of a computing system |
US7831864B1 (en) | 2002-03-22 | 2010-11-09 | Network Appliance, Inc. | Persistent context-based behavior injection or testing of a computing system |
US8171480B2 (en) | 2004-01-27 | 2012-05-01 | Network Appliance, Inc. | Method and apparatus for allocating shared resources to process domains according to current processor utilization in a shared resource processor |
US8347293B2 (en) | 2005-10-20 | 2013-01-01 | Network Appliance, Inc. | Mutual exclusion domains to perform file system processes on stripes |
US8627331B1 (en) | 2010-04-30 | 2014-01-07 | Netapp, Inc. | Multi-level parallelism of process execution in a mutual exclusion domain of a processing system |
US9071622B2 (en) | 2010-04-30 | 2015-06-30 | Netapp, Inc. | Multi-level parallelism of process execution in a mutual exclusion domain of a processing system |
Also Published As
Publication number | Publication date |
---|---|
JP3751018B2 (ja) | 2006-03-01 |
WO1994029807A1 (en) | 1994-12-22 |
EP0702815A4 (de) | 1998-08-12 |
US5819292A (en) | 1998-10-06 |
JPH08511367A (ja) | 1996-11-26 |
DE69425658D1 (de) | 2000-09-28 |
EP1003103B1 (de) | 2008-10-01 |
DK0702815T3 (da) | 2000-12-18 |
DE69435146D1 (de) | 2008-11-13 |
HK1027876A1 (en) | 2001-01-23 |
HK1013697A1 (en) | 1999-09-03 |
EP0702815B1 (de) | 2000-08-23 |
EP1003103A2 (de) | 2000-05-24 |
EP0702815A1 (de) | 1996-03-27 |
ATE195825T1 (de) | 2000-09-15 |
EP1003103A3 (de) | 2007-08-15 |
ATE409907T1 (de) | 2008-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69425658T2 (de) | Anordnung eines dateisystems zum beschreiben beliebiger bereiche | |
DE3784190T2 (de) | Eintragung eines datenbasisindex in das journal zur verbesserten rueckstellung. | |
DE60001976T2 (de) | Verfahren und system zur datensicherung/wiederherstellung von an einer einzigen stelle gespeicherten dateien | |
DE69130312T2 (de) | Dateisystem mit Schreib/Lesespeicher und einmaligen Schreib- und mehrmaligen Lese-speicher | |
DE60213867T2 (de) | Vorrichtung zur verwaltung von datenreplikation | |
DE69513956T2 (de) | Datenspeicherverwaltung für in einem netzwerk zusammengeschaltete prozessoren | |
DE69516538T2 (de) | Speicherung von rechnerdaten | |
DE69413977T2 (de) | Anordnung und verfahren zur verteilten datenverwaltung in vernetzten rechnersystemen | |
DE69119222T2 (de) | Datensicherung und Beseitigung in einem Datenverarbeitungssystem | |
DE102013215535B4 (de) | Sicherung oder wiederherstellung von daten mit hilfe eines hauptspeichers und nichtflüchtiger speichermedien | |
US5963962A (en) | Write anywhere file-system layout | |
DE112007003693B4 (de) | Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung | |
DE60304677T2 (de) | Verfahren und vorrichtung zur bereitstellung einer inkrementellen wiederherstellung eines speichermediums bei datenverlust | |
DE69332672T2 (de) | Verfahren und System zum Einbinden von Änderungen in hierarchisch strukturierten Daten | |
DE10211606B4 (de) | Datenverarbeitungseinrichtung mit einem Metadatensicherungsmanagement | |
DE69714344T2 (de) | Vorrichtung und Verfahren für die Verfügbarkeit und Wiedergewinnung von Dateien unter Verwendung von Sammlungen von Kopierspeicher | |
DE102013204972B4 (de) | Hybride Sicherung und Wiederherstellung eines sehr grossen Dateisystems unter Verwendung von Metadaten-Abbildsicherung und herkömmlicher Sicherung | |
DE69431186T2 (de) | Verfahren und Dateisystem zur Zuordnung von Datei-Blöcken zu Speicherplatz in einem RAID-Plattensystem | |
DE69032517T2 (de) | Verfahren und System zum dynamischen Identifizieren von Datenträgern in einem Gestaltungsdateisystem | |
DE69623227T2 (de) | Verfahren und System zur Berechnung von Dateinamen mit hoher Wahrscheinlichkeit der Eindeutigkeit | |
DE69031491T2 (de) | Hypertextdatenverarbeitungssystem und Verfahren | |
DE60113586T2 (de) | Übertragen von miteinander verbundenen Datenobjekten in einer verteilten Datenspeicherumgebung | |
DE69126066T2 (de) | Verfahren und Gerät zur Optimierung des Logbuchaufhebungsgebrauchs | |
DE68926693T2 (de) | System und Verfahren zur einem Systemfehler nachfolgenden Datenerholung in einer Datenbank eines Rechnersystems | |
DE3780807T2 (de) | Verfahren zum schnellen oeffnen von mit pfadnamen identifizierten plattendateien. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |