Abstract:
A computerized file system has a first software layer for writing data blocks to persistent storage, and a second software layer for receiving requests from a client, and in response to receiving a request passing a command to the first software layer. A current bit map shows data blocks of persistent storage which are allocated to holding data of the file system. A safe copy of the current bit map is maintained. A third copy of the current bit map is passed, at a selected time, to the first software layer to enable the first software layer to write data blocks containing the bit map current at the selected time to the persistent storage, and simultaneously changing the current bit map as maintained in a computer memory while data blocks containing the bit map current at the selected time are written to the persistent storage.
Abstract:
A file which has been changed from a data storage system is restored. If the file was changed from an active file system, a set of twin pointers is created by copying from the latest pointers in the active file system before the file system was changed. A pointer from the twin pointers is compared with a pointer from a snapshot of the active file system. If a pointer from the twin pointers points to a same data block as the pointer from the snapshot, the twin pointer is written into the active file system to restore the file to the active file system. If the pointers do not point to the same data block, a data of the block is copied to a new block in the active file system to restore data changed since the snapshot was taken.
Abstract:
A file folding technique reduces the number of duplicate data blocks of a file consumed on a storage device of a file server configured to generate a persistent image of its active file system at a point in time. According to the file folding technique, if “old” data blocks of the file are over-written with “new” data and that new data is identical to the data of the persistent file image, the old data blocks are “freed” and the file is directed to refer to the persistent image for its data. The invention reduces disk space consumption in a file server configured to generate persistent images of its active file system and, in particular, reduces overall persistent image disk usage.
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 relates to a system for restoring a file from a snapshot, where a version of the file exists in both an active file system and the snapshot. A twin inode is created in the active file system and comparisons are made between block pointers of the twin inode and the snapshot. If there is a match, the block pointer of the twin inode is moved to the active file system. If there is not a match, a determination is made whether the snapshot block pointer exists in the active file system. If the snapshot block pointer does not exist in the active file system, it is copied to the active file system. If it does exist, then the actual data block pointed to by the snapshot block pointer is copied to the active file system. In this way, a file may be restored without the need to always copy every individual data block or inode from the snapshot.
Abstract:
A method for handling a fault in a storage system comprises maintaining data in a mass storage subsystem and providing access to the data on behalf of a client. The method further comprises detecting a fault in a volume of data stored in the mass storage subsystem, determining a severity of the fault, and selecting a course of action in response to the fault, based on the severity of the fault.
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:
The present invention provides a system and method for restoring a single 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.
Abstract:
A method for restoring a file which has been deleted from a data storage system is described. A set of twin pointers is created by copying from the latest pointers in the active file system at a time of restoration. A new set of pointers is created. A pointer from the twin pointers is compared with a pointer from a snapshot of the active file system made at a time earlier than the deletion of the file. In response to a pointer from the snapshot pointing to a different data block than the pointer from the twin pointers, writing the snapshot pointer into the new set of pointers. Writing the new set of pointers into the active file system at the time of restoration to restore the file to the active file system.
Abstract:
A method and apparatus are disclosed for restoring a virtual disk (vdisk) in a data storage system as the vdisk was at an earlier time. Pointers are maintained to point to data represented by the vdisk. The pointers are saved to persistent storage at the earlier time. The data at the earlier time is maintained on the data storage device. A pointer pointing to data represented by the vdisk 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, keeping the pointer from the later time in the active file system. If the pointer from the later time does not match the pointers saved at the earlier time, copying a set of pointers associated with the pointer saved at the earlier time to the active file system.