In computer data storage, data striping is the technique of segmenting logically sequential data, such as a file, in a way that accesses of sequential segments are made to different physical storage devices. Striping is useful when a processing device requests access to data more quickly than a storage device can provide access. By performing segment accesses on multiple devices, multiple segments can be accessed concurrently. This provides more data access throughput, which avoids causing the processor to idly wait for data accesses. Striping is used across disk drives in RAID storage, network interfaces in Grid-oriented Storage, and RAM in some systems.
One method of striping is done by interleaving sequential segments on storage devices in a round-robin fashion from the beginning of the data sequence. This works well for streaming data, but subsequent random accesses will require knowledge of which device contains the data. If the data is stored such that the physical address of each data segment is assigned a 1-to-1 mapping to a particular device, the device to access each segment requested can be calculated from the address without knowing the offset of the data within the full sequence.
Other methods might be employed in which sequential segments are not stored on sequential devices. Such non-sequential interleaving can have benefits in some error correction schemes.
Advantages and disadvantages
Advantages of striping include performance and throughput. Sequential time interleaving of data accesses allows the lesser data access throughput of each storage devices to be cumulatively multiplied by the number of storage devices employed. Increased throughput allows the data processing device to continue its work without interruption, and thereby finish its procedures more quickly. This is manifested in improved performance of the data processing.
Because different segments of data are kept on different storage devices, the failure of one device causes the corruption of the full data sequence. In effect, the failure rate of the array of storage devices is equal to the sum of the failure rate of each storage device. This disadvantage of striping can be overcome by the storage of redundant information, such as parity, for the purpose of error correction. In such a system, the disadvantage is overcome at the cost of requiring extra storage.
Wide Striping and Narrow Striping
Wide Striping occurs when chunks of data are spread across multiple arrays, possibly all the drives in the system. Narrow Striping occurs when the chunks of data are spread across the drives in a single array.
Data striping is used in some modern databases, such as Sybase, and in certain RAID devices under software or hardware control, such as IBM's array subsystem. File systems of clusters also use striping. Oracle Automatic Storage Management allows ASM files to be either coarse or fine striped.
Data striping can also be achieved with Linux's Logical Volume Management (LVM). The LVM system allows for the adjustment of coarseness of the striping pattern. LVM tools will allow implementation of data striping in conjunction with mirroring; however, LVM1 will not allow adding additional disks to a striped Logical Volume (LV). This can be achieved with LVM2 using LVM2 format metadata.
In some RAID configurations (such as RAID-0) if one RAID disk fails, this file (and all other data), will be lost. In other RAID configurations (such as a RAID-5 with a parity drive), if one drive fails the data can be restored by using the other drives in the array. This is because RAID-5 uses parity error correcting redundancy.