Abstract:
In a system and method for updating a remote replicated destination file system snapshot with changes in a source file system snapshot, the snapshot being associated with a qtree (or other sub-organization of the file system volume), a qtree metadata file on the destination in provided. The qtree metadata file resides, in the destination volume, and outside the qtree structure. The metadata file stores state information with respect to each qtree. This metadata file resides at a known location in the destination volume. The metadata file can include a plurality of fixed length records having respective fields for storing various information including qtree-specific information, and can be part of a hidden metadata directory.
Abstract:
A system and method for mounting and unmounting volumes attached to a data storage system, such as a file server, tracks specific sub-states within each of the overall mounting and unmounting procedure states, in which specific file system requests are and are not allowed (as appropriate) with respect to the mounting/unmounting volume based upon the sub-state. More specifically, for mounting or unmounting, a storage operating system in the file server transitions a volume through a series of sub-states, as tracked in appropriate control structures. Each sub-state is characterized by a set of permitted operations that may be performed while the volume is in that sub-state, entrance and exit criteria for that sub-state, and restricted operations that may not be performed while the volume is that sub-state. During transaction request handling, the storage operating system validates each request against the sub-state to determine the disposition of the request. Then, depending on the request and the sub-state, the storage operating system will execute the request, ignore the request, hold the request for later execution, or return an error message to the client originating the request.
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 data storage system is disclosed. A flag is maintained in metadata pointing to a block of data. A first value of the flag indicates that the block of data is stored in a user accessible file. A second value of the flag indicates that the block of data is stored in a protected file. The flag pointing to the requested data block is checked upon receipt of a data access request. When the flag has the first value the data access request is permitted. When the flag has the second value, an access control list is checked, and if the requesting client is listed in the access control list permitting the data access request, and if the requesting client is not listed in the access control list denying the data access request.
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.
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:
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:
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:
A storage server provides a set of client devices with access to a set of mass storage devices. The storage server receives requests from the client devices, each request representing a storage operation to be performed by the storage server on the set of mass storage devices. The storage server maintains a log of write requests received from the client devices, the log including a separate log entry for each of the write requests, and a separate checksum in each of the log entries. Each checksum is for use by a checksum algorithm in determining data integrity of the corresponding log entry. The checksum algorithm is selected, from among a number of selectable a checksum algorithms, based on one or more predetermined criteria, such as a desired balance between performance and checksum strength.
Abstract:
File system is capable of performing long operations, such as deletions and truncations of long files, in a deterministic and atomic manner with regard to its recorded consistency points. The system includes both live filespace accessible to users, and user-inaccessible zombie filespace. In representative embodiments, the system includes a file deletion manager and a truncation manager capable of operating on files in the zombie filespace. Changes to the zombie filespace can be recorded in persistent memory. After a power failure or a similar event, the system can use the recorded changes to replay operations on the files in the zombie filespace, facilitating recovery. Zombie space can be sized dynamically, enabling the deletion manager to request enlargement of the zombie filespace. In some embodiments, files are transferred to the zombie filespace before links to the files' blocks in the live filespace are broken, and before performing operations on the files.