Abstract:
A method and system for estimating space in a compressed volume to enable a storage server to respond to write requests before actually compressing and/or allocating data on disk. In some embodiments, in response to receiving a request to store data, the storage server estimates the amount of storage space required to store the data on disk. The storage server compares the estimated amount with the amount of available disk space. When the amount of available disk space is less than the estimated space, the storage server sends a response indicating that the request failed. Otherwise, when the amount of available disk space is greater than or equal to the estimate space, the storage server sends a response indicating that the request succeeded. The response is sent before the storage server allocates any disk space in connection with the request.
Abstract:
An extent-based storage architecture is implemented by a storage server receiving a read request for an extent from a client, wherein the extent includes a group of contiguous blocks and the read request includes a file block number. The storage server retrieves an extent identifier from a first sorted data structure, wherein the storage server uses the received file block number to traverse the first sorted data structure to the extent identifier. The storage server retrieves a reference to the extent from a second sorted data structure, wherein the storage server uses the retrieved extent identifier to traverse the second sorted data structure to the reference, and wherein the second sorted data structure is global across a plurality of volumes. The storage server retrieves the extent from a storage device using the reference and returns the extent to the client.
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 (fbn) to disk block number (dbn) mapping for the region.
Abstract:
A plurality of storage devices is organized into a physical volume called an aggregate, and the aggregate is organized into a global storage space, and a data block is resident on one of the storage devices of the plurality of storage devices. A plurality of virtual volumes is organized within the aggregate and he data block is allocated to a virtual volume. A physical volume block number (pvbn) is selected for the data block from a pvbn space of the aggregate, and virtual volume block number (vvbn) for the data block is selected from a vvbn space of the selected vvol. Both the selected pvbn and the selected vvbn are inserted in a parent block as block pointers to point to the allocated data block on the storage device.
Abstract:
Methods and systems for load balancing read/write requests of a virtualized storage system. In one embodiment, a storage system includes a plurality of physical storage devices and a storage module operable within a communication network to present the plurality of physical storage devices as a virtual storage device to a plurality of network computing elements that are coupled to the communication network. The virtual storage device comprises a plurality of virtual storage volumes, wherein each virtual storage volume is communicatively coupled to the physical storage devices via the storage module. The storage module comprises maps that are used to route read/write requests from the network computing elements to the virtual storage volumes. Each map links read/write requests from at least one network computing element to a respective virtual storage volume within the virtual storage device.
Abstract:
A triple parity (TP) technique reduces overhead of computing diagonal and anti-diagonal parity for a storage array adapted to enable efficient recovery from the concurrent failure of three storage devices in the array. The diagonal parity is computed along diagonal parity sets that collectively span all data disks and a row parity disk of the array. The parity for all of the diagonal parity sets except one is stored on the diagonal parity disk. Similarly, the anti-diagonal parity is computed along anti-diagonal parity sets that collectively span all data disks and a row parity disk of the array. The parity for all of the anti-diagonal parity sets except one is stored on the anti-diagonal parity disk. The TP technique provides a uniform stripe depth and an optimal amount of parity information.
Abstract:
A method of making a foreign law in usable in a network storage controller includes transparently converting the foreign logical unit to the native format of the file system in place, by progressively increasing the binding between the file system of the storage controller and the foreign logical unit, while the foreign logical unit remains online, without requiring copying of the foreign logical unit.
Abstract:
Error handling and recovery, implemented in a storage server, detects an error in a peripheral device of the storage server. If the error is recoverable, the system contains the error by isolating the peripheral device to prevent the generation of additional interrupt signals and migrates operations of the peripheral device to a back-up peripheral device. The system initiates error recovery by calling a recovery routine and a reinitialization routine, both provided by a device driver for the peripheral device. After device recovery is complete, the system migrates operations of the back-up peripheral device back to the peripheral device.
Abstract:
An on-disk structure of a file system has the capability to generate snapshots and provide fast sequential read access to data containers, such as files. The on-disk structure arranges sequential portions of files on disk within regions, wherein each region comprises a predetermined amount of disk space represented by blocks and wherein the data of the files stored within each region may or may not be stored sequentially within the region. In addition, the on-disk structure accommodates a plurality of types of regions, including (i) active regions that contain active file system data for large files, (ii) snapshot regions that contain “copy out” snapshot data for the large files and (iii) metadata regions that contain metadata, as well as directories and small files.
Abstract:
Described herein is a flash remapping (FR) layer in a storage operating system for utilizing flash memory as a secondary permanent storage device in a storage system. The FR layer collects particular information (specified by collection parameters) of received access requests for data stored on primary storage devices of the storage system. Based on the collected information and a predetermined access pattern (specified by pattern parameters), the FR layer selects data sets on the primary storage devices to be transferred permanently to flash memory, whereby subsequent access requests to the selected data sets are redirected to flash memory. New parameters may be received by the FR layer (from a user or program) to dynamically reconfigure the functions of the FR layer. The FR layer may be implemented in the operating system without requiring other code of the storage operating system to be modified.