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:
The techniques introduced here provide a storage server migration that is non-disruptive to client applications. The techniques described here allow the migration of data from a source storage server to a destination storage server without the need for planned downtime typically associated with storage server migration. Using the techniques described here, data migration operations are performed while client applications continue to run and access data from the source storage server. Once data migration operations are complete, all applications and clients are transitioned to the destination storage server without disruption to the client applications.
Abstract:
Method and system for replicating a storage volume is provided. Information is adaptively replicated in a swap mode or a copy mode. When information is copied from a storage volume to a memory buffer, an application determines if another information transfer from the same source volume is pending. If a transfer from the same source is pending, then information is copied from the memory buffer to a stolen buffer in a copy mode. If a transfer from the same source is not pending, then instead of copying the information, the application enables a swap mode. During the swap mode, an operating system for a storage system swaps a pointer from the stolen buffer to information stored in the memory buffer. The memory buffer itself is invalidated so that no other module can access the memory buffer. Because the pointers are swapped, the application accesses information directly from the memory buffer.
Abstract:
Systems and associated methods for flexible scalability of storage systems. In one aspect, a storage controller may include an interface to a fabric adapted to permit each storage controller coupled to the fabric to directly access memory mapped components of all other storage controllers coupled to the fabric. The CPU and other master device circuits within a storage controller may directly address memory an I/O devices directly coupled thereto within the same storage controller and may use RDMA features to directly address memory an I/O devices of other storage controllers through the fabric interface.
Abstract:
Method and system is provided for managing metadata for a plurality of data containers that are stored at one or more storage volumes in a storage system. The metadata is collected from one or more storage volumes and then provided to a catalog module. The catalog module pre-processes the metadata and then generates a searchable data structure. The searchable data structure may then be used to respond to a user request for information regarding the storage system.
Abstract:
A technique is disclosed for non-disruptive migration of data between storage on hosts that do not share storage with each other. Aggregate relocation is enabled to operate between the hosts in the absence of shared storage connectivity. The technique includes mirroring an aggregate from storage of a first host to storage of a second host by using a sub-RAID level proxy in each of the first and second hosts to proxy data communications between the hosts. The proxy is used in lieu of the mirroring application in the first host having direct access to the storage devices of the second host. The technique further includes relocating the aggregate from the first host to the second host.
Abstract:
A rail system for supporting equipment in a rack is disclosed. The rail system may include: a first support rail assembly extending between a pair of vertical columns; a second support rail assembly extending between a different pair of vertical columns. Each support rail assembly may include: a support rail having opposite ends; aligners configured to align the opposite ends of the support rail with apertures of vertical columns; and mounting plates configured to removably secure the aligners to the opposite ends of the support rail. At least one mounting plate may be further configured to define at least one receiving portion for receiving a fastener for securing an equipment supportable in the rack.
Abstract:
The present invention is directed to a method and system for efficient write journal entry management maintaining minimum write journal information stored in a nonvolatile memory through utilizing an additional structure in a fast volatile memory. The method and system may manage write journaling of a file volume including multiple fixed sized regions and assign a persistent 1-bit synchronization status (the write journal information) to each data region. In addition, a non-persistent I/O counter (the additional structure) for each region to manage the persistent 1-bit synchronization status during run-time. The present invention may provide a mechanism to determine when write I/O operations have not successfully completed to a specific region of the file volume.
Abstract:
A storage system provides highly flexible data layouts that can be tailored to various different applications and use cases. The system defines several types of data containers, including “regions”, “logical extents” and “slabs”. Each region includes one or more logical extents. Allocated to each logical extent is at least part of one or more slabs allocated to the region that includes the extent. Each slab is a set of blocks of storage from one or more physical storage devices. The slabs can be defined from a heterogeneous pool of physical storage. The system also maintains multiple “volumes” above the region layer. Each volume includes one or more logical extents from one or more regions. A foreign LUN can be assimilated into the system by defining slabs as separate portions of the foreign LUN. Layouts of the extents within the regions are not visible to any of the volumes.
Abstract:
A cache-based storage architecture has primary and secondary storage subsystems that are controlled by first and second data layout engines to provide a high-performance storage system. The primary storage subsystem illustratively comprises non-volatile electronic storage media configured as a cache, while the secondary storage subsystem comprises magnetic storage media configured as a disk array. The data layout engines illustratively implement data layout techniques that improve read and write performance to the primary and secondary storage subsystems. To that end, the data layout engines cooperate to optimize the use of the non-volatile cache as a primary storage stage that efficiently serves random data access operations prior to substantially transposing them into sequential data access operations for permanent (or archival) storage on the disk array.