RAID

Each scheme, or RAID level, provides a different balance among the key goals: reliability, availability, performance, and capacity.

The term "RAID" was invented by David Patterson, Garth Gibson, and Randy Katz at the University of California, Berkeley in 1987.

In their June 1988 paper "A Case for Redundant Arrays of Inexpensive Disks (RAID)", presented at the SIGMOD Conference, they argued that the top-performing mainframe disk drives of the time could be beaten on performance by an array of the inexpensive drives that had been developed for the growing personal computer market.

[2][11][12][13] Many RAID levels employ an error protection scheme called "parity", a widely used method in information technology to provide fault tolerance in a given set of data.

Most use simple XOR, but RAID 6 uses two separate parities based respectively on addition and multiplication in a particular Galois field or Reed–Solomon error correction.

[14] RAID can also provide data security with solid-state drives (SSDs) without the expense of an all-SSD system.

For this configuration to provide a significant speed advantage, an appropriate controller is needed that uses the fast SSD for all read operations.

Such configurations include the following: The distribution of data across multiple drives can be managed either by dedicated computer hardware or by software.

Unlike the network interface controllers for Ethernet, which can usually be configured and serviced entirely through the common operating system paradigms like ifconfig in Unix, without a need for any third-party tools, each manufacturer of each RAID controller usually provides their own proprietary software tooling for each operating system that they deem to support, ensuring a vendor lock-in, and contributing to reliability issues.

[33] For example, in FreeBSD, in order to access the configuration of Adaptec RAID controllers, users are required to enable Linux compatibility layer, and use the Linux tooling from Adaptec,[34] potentially compromising the stability, reliability and security of their setup, especially when taking the long-term view.

[33] Some other operating systems have implemented their own generic frameworks for interfacing with any RAID controller, and provide tools for monitoring RAID volume status, as well as facilitation of drive identification through LED blinking, alarm management and hot spare disk designations from within the operating system without having to reboot into card BIOS.

[64] Software-implemented RAID is not always compatible with the system's boot process, and it is generally impractical for desktop versions of Windows.

During early bootup, the RAID is implemented by the firmware and, once the operating system has been more completely loaded, the drivers take over control.

[74] While RAID may protect against physical drive failure, the data is still exposed to operator, software, hardware, and virus destruction.

Increasing drive capacities and large RAID 5 instances have led to the maximum error rates being insufficient to guarantee a successful recovery, due to the high likelihood of such an error occurring on one or more remaining drives during a RAID set rebuild.

[81] Double-protection parity-based schemes, such as RAID 6, attempt to address this issue by providing redundancy that allows double-drive failures; as a downside, such schemes suffer from elevated write penalty—the number of times the storage medium must be accessed during a single write operation.

[24][83] Data scrubbing, as a background process, can be used to detect and recover from UREs, effectively reducing the risk of them happening during RAID rebuilds and causing double-drive failures.

If the system experiences a power loss or other major failure, the data may be irrevocably lost from the cache before reaching the non-volatile storage.

Storage servers with 24 hard disk drives each and built-in hardware RAID controllers supporting various RAID levels
A SATA 3.0 controller that provides RAID functionality through proprietary firmware and drivers