Documentation for Axxonsoft Platform Calculator. Documentation for other products available here.
RAID levels
No RAID calculation—the required archive size without calculating the number of disks will be shown in the results.
JBOD (Just a Bunch of Disks) is a method of attaching a set of independent disks to a RAID controller that provides the same access to each disk as the connection to a regular adapter.
Features:
- JBOD is not a RAID level because it does not improve performance and/or reliability;
- disk system performance is limited by the speed of a single disk;
- the disk system is not protected. Failure of one of the disks leads to the loss of data for the entire array;
- for JBOD disk space is 100% utilized because the entire capacity of the available disks in the array is suitable for storing data.
Possible use case: storing of a video archive. Several physical disks are not combined into one large logical disk, but work independently (if one physical disk is full, recording on the next one starts, etc.). In this case, the failure of one disk will not lead to the loss of the entire video archive, since the data on the properly functioning disks will remain available. But this only applies to small systems due to the limited performance of JBOD.
RAID-0 is a high performance striped disk array without fault tolerance.
When using RAID-0, information is split into fixed-length blocks of data, which are written in turn to each disk. This ensures maximum performance since multiple disks read/write their chunk of data at the same time.
Features:
- there is no data redundancy in RAID-0, so the failure of one of the disks leads to the loss of data for the entire array;
- disk space is 100% utilized as all available disk capacity in the array is suitable for storing data;
- the minimum number of disks to build an array is 2.
Typically, RAID-0 is used for tasks where fast access to large amounts of temporary data (which can be reloaded in case of failure) is required, such as data caching, video/audio post-processing, etc.
RAID-1 is a fault-tolerant disk array with data mirroring (duplication).
Each disk has a duplicate in RAID-1, the information is recorded synchronously to the original and the duplicate. Therefore, the increase in performance occurs only when reading, the write speed is limited by the speed of a single disk.
Features:
- a high degree of reliability. If one of the disks fails, a copy of its data remains available on the duplicate disk;
- the usable disk space is 50% of the available disks in the array (the number of redundant disks equals the number of "usable" disks);
- the number of disks is always even, the minimum number of disks for building an array is 2.
RAID-1 is often used in servers to combine two system drives in a mirror due to its simplicity and reliability. For storing of a video archive RAID-1 is advisable to use only in very small systems, since this RAID level has a low write speed and the lowest efficiency of disk space utilization with three or more disks.
RAID-10 is a fault-tolerant striped and mirrored disk array.
When using RAID-10, one essentially create a RAID-0 array from multiple RAID-1 arrays (with two disks for each RAID-1 subarray). Thus, RAID-10 combines both the speed advantages of RAID-0 and the high reliability of RAID-1 (one disk failure in each RAID-1 subarray is allowed).
Features:
- the usable disk space is 50% of the available disks in the array (the number of redundant disks equals the number of "usable" disks);
- the number of disks is always even, the minimum number of disks for building an array is 4.
Typically, RAID-10 is used for working with databases where both high performance and reliability are required. It is rarely used for storing a video archive due to the low efficiency of using disk space. However, in cases where the performance and/or reliability of other RAID levels is not enough, the use of RAID-10 for a video archive may be appropriate (in practice, 4 disks are used to build a RAID-10, and when a larger capacity is required, more economical RAID-50 or RAID-60 are preferable, they are faster than RAID-5/RAID-6 while maintaining reliability).
RAID-5 is a fault-tolerant striped disk array with one checksum.
RAID-5 uses striped data technology designed to provide fault tolerance, but without the duplication of data as in RAID-1. Data blocks and checksums (used to recover missing data blocks in case of loss) are cyclically written to all disks, which ensures uniform load across all disks and improves performance through parallel writes. The additional overhead of writing checksums explains the lower write performance of RAID-5 compared to RAID-0/RAID-10, but it is still acceptable in many cases. The read speed of RAID-5 is high. It should be noted that the use of modern RAID controllers with write cache also significantly improves the performance of RAID-5.
RAID-5 has a basic level of reliability, one disk failure is allowed. This triggers a lengthy recovery process (rebuild) of the RAID array, which dramatically increases the load on the disks. This in turn can provoke the failure of the second disk and lead to a complete loss of data. Despite the fact that RAID-5 is inferior in reliability to RAID-1/RAID-10, this is enough for many tasks.
The main advantage of RAID-5 is the most efficient use of disk space among all fault-tolerant RAID arrays. The usable storage capacity of the disk space ranges from 67% and more, depending on the number of disks in the array (only 1 redundant disk is required for any number of "usable" disks). The minimum number of disks to build an array is 3.
RAID 5 is widely used for a great variety of tasks, including storing a video archive for a not large systems.
RAID-6 is a fault-tolerant striped disk array with two checksums.
RAID-6 is an evolution of the RAID-5 level, data blocks and checksums are also written cyclically across all disks, but it uses two sets of checksums (only one set is used in RAID-5). This reduces performance compared to RAID-5, but provides better fault tolerance. The use of modern RAID controllers with write cache reduces the difference in performance between RAID-5 and RAID-6 to a minimum.
Features:
- RAID-6 has a high level of reliability; failure of any two disks is allowed;
- the usable storage capacity in RAID-6 ranges from 50% and more, depending on the number of disks in the array (only 2 redundant disks are required for any number of "usable" disks). Thus, disk space efficiency in RAID-6 is worse than in RAID-5, but better than in RAID-1/RAID-10 when the number of disks in the array is more than four. The minimum number of disks to build an array is 4.
RAID-6 is widely used in data storage systems where maximum transactional performance is not required, in particular, RAID-6 is the best option for storing a video archive in most cases (in terms of performance/reliability).
Maximum number of disks per RAID group
For RAID arrays with combining disks into a single logical space, an increase in the number of disks, on the one hand, improves performance (due to parallelization of write and read operations), and on the other hand, it can reduce fault tolerance (all array data may be lost in a bad scenario, so the more disks in an array, the more data may be lost). Such arrays include RAID-0, RAID-10, RAID-5, RAID-6.
In the case of RAID-5/RAID-6, the situation is also complicated by the fact that an increase in the capacity and number of disks in the array leads to an increase in the recovery time of the RAID array (rebuild). The recovery process after a failure of one of the disks is always accompanied by an increase in the load on the remaining healthy disks, a decrease in overall performance, etc. Therefore, a too long rebuild period (which can take, for example, more than a week) increases the risk of another or more failure disks, which will lead to a complete loss of all data.
Thus, if there are many disks in the server, partitioning into RAID groups is recommended. This is a standard feature in RAID controllers that allows all attached drives to be divided into groups and each group is converted, in fact, into a separate independent RAID array. In this case, start of the rebuild process of the RAID group and even complete destruction of it will not affect the performance of other groups. In this case, each RAID group will be defined by the operating system as a separate large disk with a volume equal to the usable capacity of the RAID group.
Based on the optimal ratio of rebuild speed/performance of the disk subsystem, there are the following recommendations for one RAID group:
- RAID-5: maximum 5 disks per RAID group
- RAID-6: maximum 15 disks per RAID group
The number of disks in a RAID group is specified taking into account the redundant disks provided for fault tolerance. That is, if 15 disks are listed for RAID-6, that means 13 disks are available for data storage and 2 disks are available for RAID-6 support.
Since each RAID group is essentially a separate RAID array, it has all the limitations and features of the corresponding RAID level (minimum number of disks, performance, degree of fault tolerance, etc.).
Number of hot spare disks per server
Modern RAID controllers are equipped with a hot spare feature that provides automatic non-stop maintenance of the RAID array in the event of a failure. For this, hot spare disk is used, which during normal operation of the array is in standby mode, and if one of the disks fails, it will automatically replace the faulty disk and the data will be restored. After that, the faulty disk can be replaced with a new one, and indicate it as hot spare.
The hot spare function is especially useful in large mission-critical systems or when quick access to the server is handicapped, since if at least one of the disks fails, the level of the array's fault tolerance drops sharply, and urgent measures should be taken to restore the array.
If more than 16 disks are used on the server, it is recommended to add at least 1 hot spare disk. If more than 34 disks are used—add at least 2 hot spare disks.
The hot spare disk is not part of a RAID group, so it can be globally assigned to all RAID groups on the server.