Apparatus and Method for Hardware-Based File System
First Claim
1. A method for maintaining a file system object in a non-volatile storage at successive checkpoints, the method comprising:
- maintaining an object structure for the file system object, the object structure comprising a first tree structure rooted by a first root node and a second tree structure rooted by a second root node, each tree structure optionally including a number of intermediate nodes and a number of data blocks, each tree structure representing a version of the file system object; and
alternately managing the object structure using the first tree structure rooted by the first root node while storing the second tree structure rooted by the second root node in the non-volatile storage and managing the object structure using the second tree structure rooted by the second root node while storing the first tree structure rooted by the first root node in the non-volatile storage.
4 Assignments
0 Petitions
Accused Products
Abstract
A hardware-based file system includes multiple linked sub-modules that perform functions ancillary to client data handling. Each sub-module is associated with a metadata cache. A doubly-rooted structure is used to store each file system object at successive checkpoints. Metadata is stored within an object and/or as a separate object. Provisions are made for allocating sparse objects. A delayed write feature is used for writing certain objects into non-volatile storage. Checkpoints can be retained as read-only versions of the file system. Modifications to the file system are accomplished without affecting the contents of retained checkpoints. The file system can be reverted to a retained checkpoint. Multiple file servers can be interconnected as a cluster, and each file server stores requests from another file server. Interconnections between file servers can be dynamically modified. A distributed locking mechanism is used to control access to file system objects stored by the file servers.
-
Citations
18 Claims
-
1. A method for maintaining a file system object in a non-volatile storage at successive checkpoints, the method comprising:
-
maintaining an object structure for the file system object, the object structure comprising a first tree structure rooted by a first root node and a second tree structure rooted by a second root node, each tree structure optionally including a number of intermediate nodes and a number of data blocks, each tree structure representing a version of the file system object; and
alternately managing the object structure using the first tree structure rooted by the first root node while storing the second tree structure rooted by the second root node in the non-volatile storage and managing the object structure using the second tree structure rooted by the second root node while storing the first tree structure rooted by the first root node in the non-volatile storage. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for storing metadata associated with an object in a file system, the method comprising:
-
maintaining a first object structure for the object, the object structure including at least a root node and optionally including intermediate nodes and data blocks; and
storing a first portion of metadata in the root node. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. An apparatus comprising:
-
a non-volatile storage; and
means for maintaining a file system object in the non-volatile storage at successive checkpoints using an object structure having two and only two root nodes for managing a current version of the object, said means alternating between the two root nodes for managing the object at the successive checkpoints. - View Dependent Claims (15, 16, 17, 18)
-
Specification