Abstract:
A method for restoring a virtual disk (vdisk) in an active file system to an earlier time is described. Pointers pointing to data represented by the virtual disk are maintained. The pointers are saved to persistent storage at the earlier time. A pointer at a later time is compared with the pointers saved at the earlier time. If the pointer from the later time matches the pointer saved at the earlier time, the pointer from the later time is kept in the active file system. If the pointer from the later time does not match the pointers saved at the earlier time, a set of pointers associated with the pointer saved at the earlier time is copied to the active file system.
Abstract:
A system and method for conforming a metadata file associated with qtree of a storage system to a version used by a file system kernel of the storage system, where the version indicates a format of the metadata file. The metadata file stores state information with respect to each qtree, and may be located outside of the qtree structure. Major and minor versions are compared with latest known major and minor versions associated with the file system kernel. In response to such comparisons, the metadata file may be updated to a newer version, rolled back to an older version, and/or the system may enter a corrective state where further operations are performed.
Abstract:
A method for reducing duplicate data of an active file system, where the data is stored on a storage device of a storage system, is disclosed. A persistent image of the active file system is generated at a first point in time. At a later time, a sequence of steps to compare the active file system with the persistent image is initiated. Then, if a block of data of the active file system is identical to the data in the persistent image, the active file system is directed to refer to the persistent image for data of the file. Alternatively, if the block of data of the active file system is not identical to the data in the persistent image, the active file system is directed to refer to the data of the active file system. A file folding command may be issued to start the comparison.
Abstract:
The present invention provides a system and method for restoring a vdisk from a snapshot without the need to copy every individual block or inode from the snapshot. A vdisk restore process duplicates the inode of a vdisk within the active file system and performs a reconciliation process between the blocks of the twin inode and the snapshot inode. If the vdisk does not exist within the active file system, a new buffer tree is created that points to the data blocks stored in the snapshot.
Abstract:
In a system and method for updating a remote replicated destination file system snapshot with changes in a source file system snapshot, users and processes are redirected to a local exported snapshot of the replicated snapshot on the active file system on the destination before beginning the next update of the active file system's replicated snapshot. In this manner, an unstable replicated snapshot is not accessed. Indirection is introduced into inode lookup at the destination as the destination's active file system is being updated. The indirection can be based upon a snapshot ID that conforms to a latest exported snapshot ID.
Abstract:
In a system and method for updating a remote replicated destination file system snapshot with changes in a source file system snapshot, users and processes are redirected to a local exported snapshot of the replicated snapshot on the active file system on the destination before beginning the next update of the active file system's replicated snapshot. In this manner, an unstable replicated snapshot is not accessed. Indirection is introduced into inode lookup at the destination as the destination's active file system is being updated. The indirection can be based upon a snapshot ID that conforms to a latest exported snapshot ID.
Abstract:
The present invention provides a technique for efficiently generating and validating external file handles at a storage operating system of a filer. According to one aspect of the technique, the storage operating system associates a unique internal file handle with each file or directory stored in the filer. This unique internal file handle is used to generate a corresponding external file handle. Unlike previous approaches, the internal file handles' representations do not change depending on the location of their corresponding files or directories, e.g., on-disk or in-core, within the filer, thereby simplifying file management within the filer. According to another aspect of the inventive technique, the filer executes a file-handle validation procedure to determine whether an external file handle received with a file access request has become invalid (or “stale”) as a result of an NVRAM failure in the filer. The file-handle validation procedure enables the filer to efficiently determine the validity of the external file handle without having to perform conventional time-consuming and processing-intensive operations. Advantageously, the inventive technique is preferably only applied to generation and validation of external file handles configured in accordance with a stateless file-system protocol, such as the NFS protocol. In this way, there is no overhead added to the filer's storage operating system for generating and validating external file handles configured in accordance with stateful file-system protocols.
Abstract:
A system and method for improving the efficiency of the transmission of updated blocks generated by logging all the block allocations and deletes as well as CPs and PCPI creation and deletion in a persistent log. The log is scanned during each update cycle (in which changes are transmitted to a destination mirror) by the storage operating system, and only changed blocks that are referenced by the file system as it existed at the end of the update cycle or referenced by PCPIs that existed at the end of the update cycle are actually sent in the transmission. This reduces the number of changes being transmitted.
Abstract:
A metadirectory namespace is provided for storing files and directories “hidden” from one or more user-accessible namespaces. The metadirectory namespace is a separate, parallel namespace that coexists with other user-accessible namespaces in a storage operating system. Files and directories may be identified as being stored in a metadirectory based on their location or based on their associated flags. The metadirectory namespace may be selectively exported only to clients, users and applications given special file access permissions.
Abstract:
The present invention provides a system and method for restoring a single data stream file from a snapshot without the need to copy every individual block or inode from the snapshot. A file restore process duplicates the inode of a file within the active file system and performs a reconciliation process between the blocks of the twin inode and the snapshot inode. If the file does not exist within the active file system, a new buffer tree is created that points to the data blocks stored in the snapshot.