Abstract:
Systems and methods which allow for one or more input/output (I/O) ports residing on a device in a storage network environment to be reconfigured in order to communicate using different protocols are provided. Embodiments may provide for dynamic reconfiguration of an I/O port while the device including the port is deployed in the storage network. In some instances, such reconfiguration may be managed locally and/or by a remote management processing resource in the storage network. In some embodiments, reconfiguration of an I/O port to communicate in a different protocol may be implemented, either manually or automatically, based on observed traffic data.
Abstract:
A system and method for utilizing a network-based file system from a client terminal. In examples described herein, an input command is processed on a client terminal for use of the network-based file system. A task is initiated in response to the input command. The performance of the task includes concatenating multiple file system operations associated with the input command and communicating the multiple file system operations to the network-based file system as a single communication. One or more replies to the one or more file system operations are asynchronously processed.
Abstract:
Embodiments described herein provide a technique for securely responding to an enumeration request of a data container stored at a location referenced by a junction or mount point within a share served by a storage system. To that end, the technique applies access permissions of the data container at the referenced location instead of permissions that may reside at the junction or mount point. Upon determining that the permissions are insufficient to allow access to the data container, the technique ensures that a descriptor of the junction or mount point is not included in a response to the enumeration request.
Abstract:
A storage system comprises a cache for caching data blocks and storage devices for storing blocks. A storage operating system may deduplicate sets of redundant blocks on the storage devices based on a deduplication requirement. Blocks in cache are typically deduplicated based on the deduplication on the storage devices. Sets of redundant blocks that have not met the deduplication requirement for storage devices and have not been deduplicated on the storage devices and cache are targeted for further deduplication processing. Sets of redundant blocks may be further deduplicated based on their popularity (number of accesses) in cache. If a set of redundant blocks in cache is determined to have a combined number of accesses being greater than a predetermined threshold number of accesses, the set of redundant blocks is determined to be “popular.” Popular sets of redundant blocks are selected for deduplication in cache and the storage devices.
Abstract:
An on-disk structure of a file system has the capability to maintain snapshot and file system metadata on a storage system. The on-disk structure arranges file system data sequentially on disk within regions, wherein each region comprises a predetermined amount of disk space represented by blocks. The snapshot and file system metadata is maintained within level 1 (L1) indirect blocks of the on-disk structure. Each L1 indirect block describes (i.e., represents) a corresponding region of the on-disk structure of the file system; in the case of an active region, e.g., an L1 indirect block represents an active file data portion of a large file. The L1 indirect block that references an active region also performs file block number-to-disk block number mapping for the region.
Abstract:
In one embodiment, use of hashing in a file system metadata arrangement reduces an amount of metadata stored in a memory of a node in a cluster and reduces the amount of metadata needed to process an input/output (I/O) request at the node. Illustratively, cuckoo hashing may be modified and applied to construct the file system metadata arrangement. The file system metadata arrangement may be illustratively configured as a key-value extent store embodied as a data structure, e.g., a cuckoo hash table, wherein a value, such as a hash table index, may be configured as an index and applied to the cuckoo hash table to obtain a key, such as an extent key, configured to reference a location of an extent on one or more storage devices, such as solid state drives.
Abstract:
Method and system for access based directory enumeration is provided. When a directory is enumerated for a first time, user credentials are verified against an access control list (ACL) entry that is referenced by an ACL inode (referred to as Xnode). The Xnode number is obtained from a file handle for a directory entry. The verification is recorded in a data structure that stores the Xnode identifier and user identifier. When the directory is enumerated again, the data structure is used to verify that the user has been validated before, instead of loading and checking against an ACL entry.
Abstract:
Embodiments described herein provide a storage conversion technique for rapidly converting between storage representations served by a storage system and presented to a host computer of a virtualized computing environment. The storage representations may include physical storage represented by a sequential set of blocks on disks of the storage system that are presented to the host computer in the form of a logical unit number (LUN) and virtual storage represented by a virtual storage device of the storage system that is presented to a hypervisor of the virtualized computing environment in the form of a virtual disk file. Illustratively, the LUN and virtual disk file may be storage objects (e.g., files) having different (file) types and formats in a volume of the storage system; yet each storage object may be organized as a buffer tree having indirect blocks that contain pointers configured to reference data blocks used to store data.
Abstract:
In one embodiment, a clustered storage system is configured to reduce parity overhead of Redundant Array of Independent Disks (RAID) groups, as well as to facilitate distribution and servicing of the storage containers among storage systems (nodes) of the cluster. The storage containers may be stored on one or more storage arrays of storage devices, such as solid state drives (SSDs), connected to the nodes of the cluster. The RAID groups may be formed from slices (i.e., portions) of storage spaces of the SSDs instead of the entire storage spaces of the SSDs. That is, each RAID group may be formed “horizontally” across a set of SSDs as slices (i.e., one slice of storage space from each SSD in the set). Accordingly, a plurality of RAID groups may co-exist (i.e., be stacked) on the same set of SSDs.
Abstract:
Described herein is a system and method for a scalable crash-consistent snapshot operation. Write requests may be received from an application and a snapshot creation request may further be received. Write requests received before the snapshot creation request may be associated with pre-snapshot tags and write requests received after the snapshot creation request may be associated with post-snapshot tags. Furthermore, in response to the snapshot creation request, logical interfaces may begin to be switched from a pre-snapshot configuration to a post-snapshot configuration. The snapshot may then be created based on the pre-snapshot write requests and the post-snapshot write requests may be suspended until the logical interfaces have switched configuration.