摘要:
A system and method of operating a storage server in a data network for relocating one or more data blocks of a file, comprising creating a virtual block mapping pointer; and relocating one or more file system data.
摘要:
This invention is a system and a method for operating a storage server to provide read or write access to a data in a data network using a new architecture. The method of creating virtual block mapping pointer in response to a request by a client of the storage server to de-duplicate the file system data block or to allow compression of one or more file system data blocks into one or more physical data blocks. Further, the method relocates one or more file system data blocks from one part of the file system address space to another by using one or more virtual block mapping pointers that provides the mapping information for the one or more file system data blocks that are being relocated. The virtual block mapping pointer allows relocating of file system data blocks by same number of metadata operations regardless of number of files sharing the block that are being relocated and the state of those blocks (compressed or not).
摘要:
A snapshot copy facility maintains information indicating block ownership and sharing between successive versions by delegating block reference counts to parent-child relationships between the file system blocks, as indicated by block pointers in inodes and indirect blocks. When a child block becomes shared between a parent block of the production file and a parent block of a snapshot copy, the delegated reference count is split among the parent blocks. This method is compatible with a conventional data de-duplication facility, and avoids a need to update block reference counts in block metadata of child blocks of a shared indirect block upon splitting the shared indirect block when writing to a production file.
摘要:
A snapshot copy facility maintains information indicating ownership and sharing of child nodes in the hierarchy of a file between successive versions by delegating reference counts to the parent-child relationships between the nodes, as indicated by pointers in the parent nodes. When a child node becomes shared between a parent node of the production file and a parent node of a snapshot copy, the delegated reference count is split among the parent nodes. This method is compatible with a conventional data de-duplication facility, and avoids a need to update reference counts in metadata of child nodes of a shared intermediate node upon splitting the shared intermediate node when writing to a production file.
摘要:
When a client requests creation of a production file system or logical unit number (LUN) of storage, a sparse metavolume and a container file system built on the sparse metavolume are implicitly created for containing the production file system or LUN. By implicitly creating one container file system for each production file system or LUN, it is possible to hide the management of the container file system from the client or end user. The creation of snapshot copies in the container file system can also be hidden from the client or end user. Customer service level expectations and thin provisioning can be met automatically by storage policies implemented upon the container file system and the underlying sparse metavolume.
摘要:
A file server provides access to a file system built on a logical volume of data storage. The file system includes multiple cylinder groups of file system blocks, and the logical volume includes slices of the cylinder groups. The file server has a storage reorganizer for identifying allocated file system blocks in a selected slice, and evacuating the identified allocated file system blocks from the selected slice. The selected slice is evacuated by reverse mapping each identified allocated block to identify a file to which the identified allocated block is allocated, allocating a new block in another slice, copying data from the identified allocated block to the new block, and substituting the new block for the identified allocated block in the file.
摘要:
This invention is a system and a method for recovering and repairing a logical volume in a data storage environment using a new architecture. The method of recovering a logical volume enables mounting of a file system by instantiating only a single slice under the sparse volume and instantiating rest of the slices provisioned under the sparse volume in background by a asynchronous recovery process or on-demand by the clients of the file system issuing an I/O on the slice volume. The method of repairing a logical volume provides the ability to regenerate the metadata required to reconstruct the corrupted volume.
摘要:
Storage tiering uses file system awareness of storage class for storage allocation or migration of a storage object from one class of storage to another. For example, the storage object is a production file system, a logical unit number (LUN) of storage, or a snapshot copy of the production file system or LUN. Each storage class may comprise a different back-end disk type, such as Fiber Channel, ATA, etc. Storage allocation or migration is based on storage class to implement a storage policy, such as: (a) move snapshots off the class of storage of the production object and onto a different class of storage; (b) direct new writes to a specified class of storage; or (c) writes targeting a particular storage object are targeted to a particular class of storage.
摘要:
In a file server, a file system is built upon a volume of data storage. The file system includes multiple cylinder groups. Each cylinder group includes file system blocks. The file system blocks include allocated blocks and free blocks. The volume includes slices of storage, and each slice stores at least one of the cylinder groups. A hierarchical slice map has a top level that includes a count of free blocks in the file system, an upper level that includes a count of free blocks in groups of the slices, an intermediate level that includes a count of the free blocks in sub-groups of the slices, and a bottom level that includes a count of the free blocks in each slice of storage. To find a free block for allocation to a file, the slice map hierarchy is searched in a top-down fashion.
摘要:
A self healing file system is designed for proactive detection and containment of faults, errors, and corruptions, in order to enable in place (online) and non-intrusive recovery. For proactive fault detection, the file system maintains certain per-block metadata of each file system block. The per-block metadata includes a redundancy check, and for file system data blocks, an inode identifier, and an offset of the file system data block in the file including the file system data block. The redundancy check is used to detect and mark bad file system blocks. The inode identifier and offset is used for validating connectivity of the file system blocks to the inodes, and for tracing bad blocks to files that contain the bad blocks.