What is RAID?
RAID stands for “Redundant Array of Independent Disks.” It is a data storage technology that combines multiple physical disk drives into one or more logical units to improve performance and/or reliability. The main goals and benefits of RAID include:
Improved performance – By spreading data across multiple disks (a process called “striping”), RAID can allow for simultaneous read and write operations, increasing overall speed.
Fault tolerance – RAID allows data to be duplicated or distributed across disks so that the failure of any single disk does not result in data loss. Common RAID configurations for fault tolerance include RAID 1 (disk mirroring) and RAID 5 (striping with distributed parity).
According to Wikipedia, the term RAID was first coined in 1987 by David Patterson, Garth A. Gibson, and Randy Katz at the University of California, Berkeley. The different standard RAID levels were later defined in the proceedings of the 1988 ACM SIGMOD conference. RAID represented an important evolution in storage technology, allowing multiple inexpensive disks to act together to improve performance and reliability.
Types of RAID
There are several common types of RAID configurations used for computer data storage. The main levels include:
- RAID 0 – Also known as disk striping, RAID 0 splits data evenly across two or more drives with no redundancy. It provides improved performance but no fault tolerance.[1]
- RAID 1 – Also known as disk mirroring, RAID 1 duplicates data across two drives to provide fault tolerance and improved read performance. However, it halves storage capacity and has slow write speeds.[2]
- RAID 5 – RAID 5 stripes data and parity information across three or more disks. If one disk fails, data can be rebuilt using the parity drive. RAID 5 provides good performance and storage efficiency.[1]
- RAID 10 – RAID 10 combines mirroring and striping for both performance and redundancy by creating a RAID 1 mirror and then striping data across mirrors. It requires at least four drives.[3]
There are also more advanced RAID types like RAID 6, RAID 01, RAID 50, and others that provide variations on redundancy and performance.
[1] http://pecos-softwareworks.com/raid/what_is_raid_some_raid_basics.shtml
[2] https://www.youtube.com/watch?v=Tkal93IQyEE
[3] https://www.naschannel.com/nas/242/
RAID Controller
A RAID controller is hardware or software that manages the disk drives in a RAID setup (Techopedia, 2014). It provides the physical disk drives as logical units to the operating system. The main function of a RAID controller is to improve disk performance and reliability through RAID methods like disk striping, mirroring, and parity.
There are two types of RAID controllers:
Hardware RAID Controller: This is a physical card that is installed in a PCI/PCIe slot on the motherboard. It has its own processor, cache, and firmware to manage RAID efficiently. Hardware RAID provides better performance compared to software RAID (TTR Data Recovery, 2020).
Software RAID Controller: This utilizes the system’s CPU and operating system to manage RAID. It does not require any additional hardware. Software RAID has minimal effect on system performance and is easier to set up, but lacks some advanced features of hardware RAID (IT-Service24).
Motherboard RAID Support
Many modern motherboards include built-in RAID support, which allows configuring RAID arrays through the BIOS using SATA ports and drives connected directly to the motherboard.[1] This is different from using a dedicated add-on RAID controller card.
The main advantage of motherboard RAID is convenience and cost savings from not needing a separate RAID card. However, motherboard RAID relies on the system CPU for processing, rather than having its own dedicated processor like add-on cards. This can impact performance, especially for CPU-intensive RAID levels like RAID 5/6 parity calculations.[2]
Add-on RAID cards also tend to support more drives, more RAID levels, caching, battery backups, and other advanced features not found on motherboard RAID. However, motherboard RAID may be sufficient for basic home or small office needs using fewer drives.[3] The choice depends on performance needs and budget.
Enabling RAID in BIOS
To enable RAID support in the BIOS, follow these steps:
- Enter the BIOS setup utility during system boot by pressing the designated key (usually Delete or F2).
- Navigate to the SATA or Onboard Device configuration menu.
- Locate the option for RAID mode and set it to Enabled.
- Save changes and exit BIOS.
There are some other important BIOS settings to configure RAID:
- Make sure the SATA operation mode is set to RAID instead of AHCI or IDE.
- Enable any optional RAID-related features like RAID memory buffers.
- Disable automatic hard drive detection to avoid unintended RAID configuration.
Consult your motherboard manual for the exact BIOS options and steps. Once RAID mode is enabled, you can proceed to configuring the RAID array within the RAID software.
Configuring RAID
Once you have enabled RAID support in the BIOS, the next step is to configure the RAID arrays. This is done through the RAID configuration utility in your operating system.
The RAID configuration utility allows you to create arrays with different RAID levels based on your storage needs. When creating a RAID array, you will need to:
- Choose the RAID level (0, 1, 5, 10 etc.)
- Select the physical disks to include in the array
- Allocate storage capacity for the array
Higher RAID levels like RAID 5 and 10 provide redundancy and protection against disk failures. However, they also require more disks. RAID 0 and 1 are simple arrays that do not provide disk fault tolerance.
When selecting disks, it’s best to use identical drives in terms of capacity and speed for optimal performance. The RAID configuration utility will list the available disks and capacities to help guide you.
Once you have selected the options, the utility will automatically build the RAID array in the background. You can then access and manage the array through the operating system.
RAID Performance
The performance of a RAID configuration can vary greatly depending on the RAID level used. Some key differences in performance between RAID levels include:
RAID 0 offers the best performance, as data is striped across multiple drives simultaneously for fast read/write speeds. However, RAID 0 provides no redundancy. Studies show RAID 0 can be up to 300% faster than a single drive.
RAID 1 provides good read performance, as either drive can be read simultaneously. However, write performance is slower as data must be written to both drives. RAID 1 is optimal when redundancy is critical.
RAID 5 provides a balance of speed and redundancy by striping data across drives and using parity. Write speeds are slower than RAID 0 due to parity calculation. Benchmarks show RAID 5 read speed can match RAID 0, but write speed is much slower.
RAID 10 combines mirroring and striping for fast speed while providing redundancy. By far the most expensive option, RAID 10 is best for critical applications requiring high performance and fault tolerance.
In summary, RAID 0 is best for speed, RAID 1 for redundancy, RAID 5 for balance, and RAID 10 when performance and redundancy are critical. The RAID level choice depends on the specific needs of the application or workflow.
RAID Reliability
RAID improves fault tolerance by allowing continued operation in the event of a drive failure. This is achieved through data redundancy, where data is copied across multiple drives. The level of fault tolerance depends on the RAID level:
RAID 0 offers no redundancy, so the failure of one drive will result in total data loss. According to ServetheHome, RAID 0 arrays have a 10 year failure rate of 77% with 6 drives.
RAID 1 provides redundancy through mirroring, so if one drive fails the system can continue operating normally using the other mirrored drive. This RAID calculator shows RAID 1 with 2 drives having a Mean Time To Data Loss (MTTDL) of over 1 million years.
RAID 5 stripes data and parity information across drives, allowing for one drive failure without data loss. But performance degrades during rebuild and a second drive failure causes total failure. According to the RAID Reliability Anthology, RAID 5 arrays have rebuild failure rates of over 60% with 7+ drives.
RAID 10 combines mirroring and striping for fault tolerance and performance. Per the RAID calculator, RAID 10 has a MTTDL exceeding 1 million years for arrays up to 16 drives.
RAID Maintenance
Proper and regular maintenance of RAID arrays is critical to prevent disk failures and data loss. Some best practices for RAID maintenance include:
Check RAID status frequently: Monitor RAID status at least weekly to check for signs of disk problems like high drive temperatures or increasing CRC/ECC error counts. Many RAID controllers provide monitoring and alerting tools to automate this.
Rebuild degraded arrays immediately: If a disk fails and the RAID becomes degraded, replace the failed drive and rebuild the array as soon as possible. The longer a RAID runs in a degraded state, the greater the risk of a second disk failing which would result in data loss.
Perform preventative disk replacements: Since all disks in an array will have similar runtimes and conditions, replace disks proactively before they fail based on age, runtime hours, or error counts. This helps avoid degraded arrays.
Use hot spares: Configuring hot spare drives allows the RAID to automatically rebuild using the spare if a disk fails, avoiding a degraded state.
Monitor drive temperatures: Excessive drive temperatures can predict impending disk failure. Monitor temperatures and ensure adequate cooling.
Perform regular surface scans: Periodically scan disk surfaces for media errors which can foreshadow disk failure. Replace disks with excessive errors.
Update firmware: Keep RAID controller and hard drive firmware up-to-date to ensure optimal performance and reliability.
Test backups: Periodically restore from backups to verify backup integrity and identify any problems.
Conclusion
In summary, RAID (Redundant Array of Independent Disks) allows multiple drives to be combined together for improved performance, capacity, or reliability. Motherboard RAID support refers to having the RAID controller built directly into the motherboard, rather than requiring a separate hardware RAID card.
Enabling RAID support in your computer’s BIOS allows you to configure multiple drives connected to the motherboard into a RAID array. This brings several benefits compared to standalone disks:
- Improved read/write speeds from technologies like RAID 0 striping.
- Extra redundancy and fault tolerance with RAID 1 mirroring.
- The ability to recover from drive failures when using RAID 5 or RAID 6.
- More storage capacity than a single disk alone when using RAID 0, RAID 5, RAID 6, etc.
Motherboard RAID removes the cost of purchasing a separate RAID card. It allows building a high performance or reliable storage system without additional hardware. For many home and office use cases, the RAID capabilities built into modern motherboards are sufficient.