RAID

From Free Knowledge Base- The DUCK Project: information for everyone
Jump to: navigation, search

RAID aka R.A.I.D. or Redundant Array of Independent Disks is a data storage virtualization technology that combines multiple physical disk drive components into one or more logical units for the purposes of data redundancy, performance improvement, or both. In a RAID configuration the data is distributed across the drives in one of several ways, referred to as RAID levels, depending on the required level of redundancy and performance. The different schemes, or data distribution layouts, are named by the word "RAID" followed by a number, for example RAID 0 or RAID 1. Each scheme, or RAID level, provides a different balance among the key goals: reliability, availability, performance, and capacity. RAID levels greater than RAID 0 provide protection against unrecoverable sector read errors, as well as against failures of whole physical drives.

Originally, there were five standard levels of RAID, but many variations have evolved, including several nested levels and many non-standard levels (mostly proprietary). RAID levels and their associated data formats are standardized by the Storage Networking Industry Association (SNIA) in the Common RAID Disk Drive Format (DDF) standard.

DDF Standard:

  • RAID 0 – Block level striping. MD can handle devices of different lengths, the extra space on the larger device is then not striped.
  • RAID 1 – Mirror.
  • RAID 4 – Like RAID 0, but with an extra device for the parity.
  • RAID 5 – Like RAID 4, but with the parity distributed across all devices.
  • RAID 6 – Like RAID 5, but with two parity segments per stripe.
  • RAID 10 – Take a number of RAID 1 mirrorsets and stripe across them RAID 0 style.

RAID 10 is distinct from RAID 0+1, which consists of a top-level RAID 1 mirror composed of high-performance RAID 0 stripes directly across the physical hard disks. A single-drive failure in a RAID 10 configuration results in one of the lower-level mirrors entering degraded mode, but the top-level stripe performing normally (except for the performance hit). A single-drive failure in a RAID 0+1 configuration results in one of the lower-level stripes completely failing, and the top-level mirror entering degraded mode. Which of the two setups is preferable depends on the details of the application in question, such as whether or not spare disks are available, and how they should be spun up.

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.

The distribution of data across multiple drives can be managed either by dedicated computer hardware, Hardware RAID, or by software as in Software RAID. Software RAID may be part of the operating system, part of the firmware and drivers supplied with a standard drive controller (so-called "hardware-assisted software RAID"), or it may reside entirely within the hardware RAID controller.

Earlier in the increased popularity of RAID within the industry RAID implementations typically used SCSI type hard drives. It is not uncommon today to find implementations using IDE/EIDE and SATA drives such as Hardware RAID on Linux- IDE and SATA. Hardware RAID controllers can be configured through card BIOS or Option ROM before an operating system is booted, and after the operating system is booted, proprietary configuration utilities are available from the manufacturer of each controller. Long before Microsoft Windows even came close to supporting a software RAID solution, Software RAID on Linux was commonplace, using inexpensive consumer drives and available without a hardware controller.

Software RAID implementations are provided by many modern operating systems. Software RAID can be implemented as:

  • A layer that abstracts multiple devices, thereby providing a single virtual device (such as Linux kernel's md and OpenBSD's softraid)
  • A more generic logical volume manager (provided with most server-class operating systems such as Veritas or LVM)
  • A component of the file system (such as ZFS, Spectrum Scale or Btrfs)
  • A layer that sits above any file system and provides parity protection to user data (such as RAID-F)

Linux's md supports software RAID 0, RAID 1, RAID 4, RAID 5, RAID 6, and all nestings. Furthermore, reshaping/resizing/expanding operations are also supported. FreeBSD supports software RAID 0, RAID 1, RAID 3, and RAID 5, and all nesting capability is via the GEOM modules and ccd. Apple's macOS and macOS Server support software RAID 0, RAID 1, and RAID 1+0. These are examples of software RAID supported by the Operating System without the need of a hardware RAID controller.

The rise of the problematic Fake RAID was due to issues such as Software-implemented RAID is not always compatible with the system's boot process, and it is generally impractical for desktop versions of Windows. However, hardware RAID controllers are expensive and proprietary. To fill this gap, inexpensive "RAID controllers" were introduced that do not contain a dedicated RAID controller chip, but simply a standard drive controller chip with proprietary firmware and drivers. The problem is that initially the industry allowed companies such as Dell and HP to advertise low end consumer grade desktop PCs as being equipped with a RAID controller, and many motherboard manufacturers such as Gigabyte and Asus jumped on hte bandwagon too. These units were advertised as having a RAID controller on the motherboard, which was in fact not a true hardware RAID controller, but actually Fake RAID which required proprietary drivers that were not universally compatible with most operating systems other than Microsoft Windows. This false advertising created many issues for consumers looking to implement inexpensive RAID on systems not intended for Microsoft Windows.

Some alternatives to RAID include:

  • JBOD aka Just a Bunch of Disks which is basically hard disk drives operated as individual independent hard disk drives.
  • SPAN and BIG using JBOD
  • MAID aka a Massive Array of Idle Drives

Some related terms: Fiber Channel, FC, SCSI, iSCSI, Internet Small Computer Systems Interface, NAS, Network Attached Storage, SAN, Storage Area Network, HBA, Host Bus Adapter, GBIC, Giga Bitrate Interface Converter