摘要:
A self-biasing storage device sled for mounting a storage device within a chassis is provided. The self-biasing storage device sled includes a bezel, which includes a first portion that is stationary relative to a storage device, a second portion vertically captured within the first portion and configured to slide between unlatching and latching positions, and a spring configured to push the latch outwardly from the bezel. The second portion includes a finger-movable member, a latch, and a horizontal biasing feature adjacent to the latch and configured to move in concert with the latch. When the storage device is installed in the chassis, the horizontal biasing feature exerts force against a first chassis interior side surface and biases the storage device sled against a second chassis interior side surface.
摘要:
A method for a storage controller to write a data block to one of a plurality of storage components is provided. The storage controller receives a write request from a host computer, and determines at least a portion of the data block includes a Logical Block Address (LBA) that is not currently mapped to a physical page of storage. The storage controller calculates availability for each storage component within the plurality of storage components, and selects the storage component with a highest calculated availability from the plurality of storage components. The storage controller next determines a next available physical page within the selected storage component. Finally, the storage controller writes the at least a portion of the data block including LBAs that are not currently mapped to a physical page of storage to the next available physical page.
摘要:
A compliant drawer latch is provided. The compliant drawer latch includes a first portion affixed to an inside surface of a chassis, and a second portion coupled to the first portion. The second portion includes a latch strike plate, a latch spring cap plate, and a latch return spring arranged between the latch strike plate and the latch spring cap plate. A drawer contacts the latch strike plate when the drawer is seated in the chassis. When the drawer over-travels the latch strike plate compresses the latch return spring up to a predetermined distance, and the compressed latch return spring applies force to the latch strike plate to return the latch strike plate to a latching position when the drawer rebounds from over-travel.
摘要:
A network storage appliance is disclosed. The storage appliance includes a port combiner that provides data communication between at least first, second, and third I/O ports; a storage controller that controls storage devices and includes the first I/O port; a server having the second I/O port; and an I/O connector for networking the third I/O port to the port combiner. A single chassis encloses the port combiner, storage controller, and server, and the I/O connector is affixed on the storage appliance. The third I/O port is external to the chassis and is not enclosed therein. In various embodiments, the port combiner comprises a FiberChannel hub comprising a series of loop resiliency circuits, or a FiberChannel, Ethernet, or Infiniband switch. In one embodiment, the port combiner, I/O ports, and server are all comprised in a single blade module for plugging into a backplane of the chassis.
摘要:
A method for efficiently processing write data from a storage controller to a striped storage volume is provided. The method includes receiving, by the storage controller, a host write request including a host write request size, calculating, by the storage controller, that a time to fill a stripe including the host write request is less than a host guaranteed write time, and processing, by the storage controller, the host write request as a writeback host write request. The storage controller stores writeback host write requests in a write cache. The time to fill the stripe is a size of the stripe divided by a data rate of a corresponding host write stream including the host write request. The host guaranteed write time is the maximum latency that the storage controller guarantees host write requests are committed to one of the write cache and the striped storage volume.
摘要:
A method for providing efficient use of a read cache by a storage controller is provided. The method includes the storage controller receiving a read request from a host computer and determining if a host stream size is larger than a read cache size. The host stream size is a current cumulative size of all read requests in the host stream. If the host stream size is larger than the read cache size then migrating data to a first area of the read cache containing data that has been in the read cache for the longest time. If the host stream size is not larger than the read cache size then migrating data to a second area of the read cache containing data that has been in the read cache for the shortest time. The host stream is a consecutive group of sequential read requests from the host computer.
摘要:
A data storage system, device, and method are provided for replicating data between different data storage systems or appliances. More specifically, the present invention affords communications between heterogeneous data storage systems that potential employ different communication protocols. A bridging communication protocol is utilized by one or both storage systems in order to accommodate different communication protocols. Alternatively, a storage appliance connecting the data storage systems may employ the bridging communication protocol.
摘要:
A method for destaging data from a memory of a storage controller to a striped volume is provided. The method includes determining if a stripe should be destaged from a write cache of the storage controller to the striped volume, destaging a partial stripe if a full stripe write percentage is less than a full stripe write affinity value, and destaging a full stripe if the full stripe write percentage is greater than the full stripe write affinity value. The full stripe write percentage includes a full stripe count divided by the sum of the full stripe count and a partial stripe count. The full stripe count is the number of stripes in the write cache where all chunks of a stripe are dirty. The partial stripe count is the number of stripes where at least one chunk but less than all chunks of the stripe are dirty.
摘要:
A method for a pair of redundant storage controllers to ensure reliable cached write data transfers to storage device logical volumes is provided. The method includes maintaining metadata including a first number identifying which controller currently owns the volume, a second number identifying which controller previously owned the volume, a third number identifying which controller is a preferred owner of the volume, and an indication if the volume is write protected. The method also includes determining if all volumes currently owned by the controller are write protected. If all volumes currently owned by the controller are write protected, then the method includes verifying that the second controller is working and transferring cache data from the second controller to the first controller. If all volumes currently owned by the first controller are not write protected, then the method includes updating the second number and placing all volumes online.
摘要:
The present invention provides for the expansion of a virtual storage device. Expansion of the virtual storage device includes adding one or more additional storage device units to an existing virtual storage device. Blocks or strips included in an added storage device unit are assigned addresses, to allow the added storage capacity to be accessed immediately. In order to reestablish a pattern of data storage addresses from the original storage device units of the pre-expanded virtual storage device across all of the storage device units of the post-expanded virtual storage device, temporary storage is provided. In particular, as a strip of data is relocated to its proper post-expand location, the data occupying that location is placed in a temporary storage buffer. Data in the temporary storage buffer is then written to the proper post-expand location for that data, with displaced data being written to a second temporary storage buffer.