Utilization of RAID 10 in a server provides an increase of disk capabilities while simultaneously providing redundancy and preventing system failure.
RAID is an acronym that stands for Redundant Array of Independent Disks or Redundant Array of Inexpensive Disks, depending on what specialist you ask. The term “independent” is arguably more appropriate, as RAID arrays may sometimes be made with extremely expensive disks.
In layman’s terms, RAID is a method of configuring two or more hard drives to work as a single unit with differing levels of redundancy and allowing better fault tolerance. “A fault-tolerant design enables a system to continue its intended operation, possibly at a reduced level, rather than failing completely, when some part of the system fails.”[i]
Software vs. Hardware RAID
RAID technology deployment is possible by using software or hardware.
Most of the popular operating systems come with software RAID support. This makes deployment cheap and easy. However, software RAID works on the partition level, and so it increases in complexity if the number of partitions is increased. In case of power failures, software raid fails, and the cache is lost. The software raid offers high performance levels in Raid 0 and Raid 1. But in nested raid levels, the performance decreases as it is dependent on CPU capability. Software Raid usage is typically used in single server workstations and is better for RAID 0 and RAID 1 levels. It is ideal for small businesses.
The cost of hardware RAID is higher, but factors such as complexity in management are low. In case of power failures, the battery back-up maintains the integrity of the cache. The performance of hardware RAID is superb and it can sometimes support disk hot swapping (live replacement of a disk without shutting down the server) or hot spare support (extra drives that stay inactive until an active drive fails). Hardware Raid supports higher write throughput and offers faster reconstruction of data loss. Hardware RAID is preferred for mission critical, performance oriented servers.
History of RAID
Computer scientists developed RAID technology at the University of California at Berkeley in 1987. The scientists developed a way of using two or more disks as a single device.[ii]
Although the array performed better than a large, single-disk storage system, this method was unreliable. The scientists proposed systems that would be redundant and fault tolerant.
These scientists defined RAID levels 1 through 5, and investigated the possibility of data striping.
Types of RAID
- Striped Array – Often known as RAID 0, striping provides no data protection. However, it increases disk speed for utilization in data-intensive applications such as rendering and video production. It breaks the code into blocks of data, and alternates between the two disks. This allows two disks to read or write simultaneously, spreading the workload and decreasing wait time.
- Mirrored Array, or RAID 1, copies a duplicate of the information being written to two or more disks. Typically, this is 2 disks in a “mirrored pair.” This uses no striping or parity[iii], and the disks must be the same size, otherwise the array is only as large and fast as its smallest and slowest disk.
RAID with Parity/Error Correction
Parity is designed to detect and correct errors, but it also helps with redundancy. For example, by calculating the exclusive or (XOR), which compares two numbers and then outputs true (or a 1, in the case of bits) only if the numbers differ, if the second drive fails, the third parity drive is used to recover it by doing an XOR calculation based on the parity disk and the first drive.
- Striped array with error correction – RAID 2 is almost never used. This RAID level is striping with ECC (Error Correcting Code)[iv]. It stripes data by bits, rather than larger segments. Error correction uses the Hamming Code, but is little improved over parity.
- Byte-level striping with parity – RAID 3 is very rare. It is byte-level striping with a dedicated parity disk. This RAID level is not effective for applications that make small read and write processes over the disk. RAID 3 is better for long, sequential, read/writes. An I/O operation requires disk activity on every disk and requires synchronized spindles. This RAID level provides no significant advantages and is no longer in use.
- Block-level striping with parity – RAID 4 is block striping with a single dedicated parity disk. This is good at performing random reads, but has poor performance for random writes, and is caused by writing all parity data to a single disk. RAID 4 is essentially RAID 3 but with longer read/write blocks.
- Block-level striping with distributed parity – RAID 5 – Distributed parity evens out the stress caused in RAID 4 by the single parity disk. In addition, write performance is increased since the write and parity writes are distributed among the disks.
- Block-level striping with dual distributed parity – RAID 6 is essentially RAID 5 with multiple parity blocks per disk. In larger arrays, this allows for more disks to fail (compared to RAID 5) before the array fails.[v]
All RAID levels were an improvement over single disk usage, either for speed, redundancy, or parity checks. To increase the effectiveness on multiple fronts, nested RAID was devised.
Sometimes known as “Hybrid RAID,” nested RAID combine 2 or more RAID levels to gain more performance or redundancy. Common nested RAID levels include RAID 01, RAID 10, RAID 50, etc.
- Mirrored array of striped drives – RAID 01 – RAID 10 and RAID 01 have equivalent performance capabilities. Because of the way these RAID levels are nested, RAID 10 is more resilient than RAID 01 regarding the number of disk failures before loss of data. These differences aren’t noticeable unless you utilize more than 4 disks in a single array.
- Striped array of mirrored drives – RAID 10 – The RAID level we recommend is RAID 10. RAID 10 is a stripe of mirrors. This combines the speed increase of a striping build, with the redundancy of a mirroring array. This is the best option currently available for I/O intensive applications. Note that due to the mirroring, the storage capacity of RAID 10 is 50% of the total disk space used.
At Atlantic.Net, our entire Cloud Hosting environment runs on RAID 10, combined with the reliability of Intel Xeon processors. RAID 10 is available as an option, and commonly recommended when purchasing one of our database hosting solutions. Whether it be for your HIPAA Compliant Hosting, payment transaction database, or any information that needs to be available and accurate 24/7, Atlantic.Net has solutions that fit your needs and your budget. Please contact us via email at [email protected] for more information. Our sales team is ready to guide you toward a plan that is suited to your business needs.
[i]Johnson, B. W. (1984). “Fault-Tolerant Microprocessor-Based Systems”, IEEE Micro, vol. 4, no. 6, pp. 6–21
By Kristopher Fieler