Abstract:
A method for enhancing the performance on non-full stripe writes while closing the RAID5 write hole is disclosed. When a RAID controller receives data to be written to a disk array, the controller stores the data in nonvolatile memory, and opens a write operation. When the current write operation is initiated, the controller reads the old data from the disk array and checks for cached parity that corresponds to the stripe of data that is to be modified. If the parity is cached, the controller reads the cached parity, and if the parity is not cached the controller reads the old parity from the disk array. New parity is then computed. If the parity was cached, the controller will modify a parity log to show an outstanding data write. If the parity was not cached, the controller will open a parity log to show an outstanding data and parity write. The new parity is then cached in non-volatile memory. The controller then determines whether the following write operation is for the same stripe of data. If the following write operation is for the same stripe, the controller writes the new data to disk and opens a parity log for the following write operation to show an outstanding parity write, and terminates the current write operation. If the following write operation is not for the same stripe, the controller writes both the new data and new parity to disk, and terminates the current write operation.
Abstract:
A network storage controller (100) for transferring data between a host computer and a storage device, such as a redundant array of inexpensive disks (RAI), is disclosed. The network storage controller (100) includes at least one channel interface module (136, 140) which is adapted to be connected to the host computer and storage device. The channel interface module (136, 140) is connected to a passive backplane (116), and selectively transfers data between the host computer and storage device and the passive backplane (116). The network storage controller (100) also includes at least one controller management module (104, 108), attached to the passive backplane (116). The controller management module (104, 108) communicates with the channel interface module (136, 140) via the passive backplane (116), and processes and temporarily stores data received from the host computer or storage device. In applications where redundancy is required, at least two controller management modules (104, 108) and at least two channel interface modules (136, 140) may be used. The controller management modules (104, 108) may mirror data between one another using the passive backplane (116) and a shared communication path on the channel interface modules (136, 140), thereby substantially avoiding the use of host or disk channels to mirror data. The channel interface modules (136, 140) are operable to connect the host computer or storage device to one or more controller memory modules (104, 108). The controller management modules (104, 108) may include a DMA engine to facilitate the transfer of mirrored data.
Abstract:
A system and method for efficient parity mirroring between controllers of an active-active controller pair in a redundant array of inexpensive disks (RAID) system (600) is disclosed. When a second controller (616) in an active controller pair receives new data to be written to a disk array, it mirrors the new data to a first controller (608) in the active-active controller pair. The second controller (616) then computes new parity for the data stripe associated with the new data. The second controller (616) then opens a parity log and mirrors logical block address (LBA) information for the new data to a first controller (608) in the active-active controller pair. In the event of a failure of the second controller after mirroring the LBA information and prior to completing the write operation, the first controller uses the LBA information to complete the write operation, assuring that the new data and new parity are properly stored on the disk array. If a hard disk in the disk array fails, parity is mirrored between the first and second controllers, rather than just LBA information. If a hard disk and the second controller fail when the first controller contains LBA information, a list containing the LBA is created and a media error is returned in the event that a host requests in the form of a read operation data contained in the listed LBAs.
Abstract:
A data storage system (400) that includes first and second controllers ( 404,408) is provided. Data is mirrored from one controller (404) to the other controller (408) according to different steps depending on the amount of data to be mirrored. When the data to be mirrored is less than or equal to a predetermined number of bytes, one less interrupt is generated than when the data to be mirrored is greater than the predetermined number of bits.
Abstract:
A data storage system that includes first and second controllers is provided. Data is mirrored from one controller to the other controller according to different steps depending on the amount of data to be mirrored. When the data to be mirrored is less than or equal to a predetermined number of bytes, one less interrupt is generated than when the data to be mirrored is greater than the predetermined number of bits.