quinta-feira, 16 de março de 2017

Storage : RAID Overview

RAID is an acronym that originally stood for “redundant array of inexpensive disks”. Today it commonly refers to “redundant array of independent disks”. With the advent of solid state drives, more and more people are referring to RAID as “redundant array of independent drives”. RAID technology combines multiple physical storage drives to create a logical drive that spans across all the physical drives. Data
is then written across the multiple drives instead of on a single drive. The logical drive or logical volume appears as a physical drive to the operating system of the host that stores data on it. The group of drives from which the logical volume is created is called a RAID set or a RAID group. RAID has two primary functions. The first one is to protect data against failed drives. The second function is to improve I/O performance by serving I/Os from multiple drives in a parallel manner. RAID can be implemented either in software or hardware. Software RAID is implemented at a host’s operating system level. It uses host resources such as processor and memory. For certain RAID techniques this may not pose a performance problem. However, for RAID techniques that use parities, software RAID may lead to significant performance problems. Hardware RAID can be implemented either on a host or on a storage system.
An integrated RAID controller present on the motherboard implements hardware RAID on a host. Alternately, a RAID controller expansion card can be attached to the host. The hardware RAID controller has its own processor and memory. Because of this there is no RAID overhead on the host’s processor. RAID controllers are also implemented on a storage system. Hardware RAID implemented on storage systems offers several benefits over hardware RAID implemented on the server hardware.
Typically there are redundant RAID controllers on storage system, which provides high availability. Storage systems also support multiple drive types, which may not be supported by the RAID controller on a host. Apart from this, storage systems have large caches and multiple intelligent features. This provides better I/O performance, protection, and reliability. Let’s take a look at the different RAID techniques. There are three main RAID techniques – striping, mirroring, and parity. In the striping technique, data is written
simultaneously across all the storage drives in a RAID set. Each write to the logical volume spreads the data across all the drives in the RAID set. And each read retrieves data simultaneously from all the drives in the RAID set. Because the I/O is performed in parallel across multiple drives, this significantly improves read/write performance. However, striping does not protect data against drive failure.
In the mirroring technique, the data is stored on two storage drives giving two mirrored copies of the same data. This protects the data in case one drive fails. When a failed drive is replaced with a new one, the RAID controller rebuilds data on the new drive from the remaining intact drive. Mirroring may improve read performance by reading data simultaneously from both the drives in the pair. However, not all RAID
controllers implement this. Mirroring makes writes slower because each write results in an additional write to the other drive in the pair. With mirroring you also need twice as much capacity to store data.
In the parity technique, data is striped across all drives except one in a RAID set. The last drive stores a parity value that is computed by performing an Exclusive-OR operation on the striped data. In case a drive fails, data can still be recovered by using the parity and the data on the remaining drives. In this way, parity protects data against drive failure without the need to mirror it. At the same time, it also improves read performance because it uses striping. However write performance is affected because, each time the data changes, parity has to be recalculated. 

Nenhum comentário:

Postar um comentário