Can I add more drives to a RAID 10?

What is RAID 10?

RAID 10, also known as RAID 1+0, is a hybrid RAID level that combines disk mirroring and disk striping to protect data and improve performance (1). It uses a mirrored stripe set where data is written in stripes across primary disks and secondary mirror disks simultaneously (2). This provides the redundancy of RAID 1 by duplicating all data across two disks, along with the speed of RAID 0 by striping data in parallel across multiple disks.

The advantages of RAID 10 include high throughput, good read performance, and redundancy against disk failures. Up to half the array’s total capacity can be lost without data loss. The disadvantages are high cost as it requires at least 4 disks, and only 50% of the total capacity is available for storage (3).

Overall, RAID 10 provides faster performance than RAID 1 while retaining fault tolerance, making it a popular choice for high-end servers and critical applications that need both speed and redundancy (4). The tradeoff is 50% storage efficiency due to mirroring.

Sources:

(1) http://www.datarecoveryspecialists.co.uk/blog/the-advantages-and-disadvantages-of-raid-10
(2) https://www.stellarinfo.co.in/blog/advantages-and-disadvantages-popular-raid-systems/
(3) https://www.pitsdatarecovery.net/raid-10-vs-raid-50/
(4) My own expertise on the topic

Adding Drives to Existing RAID 10

Yes, it is possible to add drives to an existing RAID 10 array to expand capacity, with some requirements and limitations. RAID 10 arrays consist of mirrored pairs of disks, so any expansion requires adding disk pairs while maintaining the mirrored set structure.

For hardware RAID controllers, this requires having an available port to plug in each new disk. The controller must support online capacity expansion to add disk pairs without rebuilding the array. Consult your hardware vendor’s documentation for details on your controller model. Some may require identical disks to the existing array. The Dell PERC H740P controller supports seamlessly adding new drive pairs to RAID 10 for example (https://www.dell.com/community/PowerEdge-HDD-SCSI-RAID/Adding-drives-to-RAID-10-on-PERC-H740P/td-p/6083143).

For software RAID configurations using mdadm in Linux, the array must be created with the “layout=near” option. This allows seamlessly adding disk pairs while evenly distributing data across new and old disks. The new disks must be equal or larger capacity than existing disks. As with hardware RAID, consult documentation for adding disks on your OS and mdadm version (https://superuser.com/questions/311570/adding-drives-to-a-raid-10-array).

Maintaining identical disk pairs and following vendor requirements allows smoothly expanding RAID 10 storage. Alternatives like creating a new array or switching RAID levels may work but require data migration.

Expanding Capacity

When you’re expanding a RAID 10 array, you’ll need to add drive pairs in order to increase capacity. This is due to the RAID 10 setup requiring mirrored pairs for redundancy. Adding a single drive won’t help expand the array. Some controllers allow you to expand by adding two or more disks at a time, while others require adding disks in pairs sequentially.

After adding the new disk pairs, the RAID controller will need to rebuild the array to incorporate the new drives. This involves re-striping existing data across the larger set of disks. The rebuild process can take substantial time depending on the size of the array. Performance may be degraded during the rebuild.

There are a few options to optimize the rebuild process. First, make sure the new disks are at least the same size or larger than the existing disks. Mixing drive sizes in a RAID 10 array can lead to wasted space. Next, schedule the expansion during downtime or off-peak hours if possible. Finally, some RAID controllers offer prioritization modes that will focus processing power on the rebuild versus competing I/O requests.

Sources:
https://www.qnap.com/en/how-to/faq/article/can-i-add-disks-into-raid-10-to-expand-the-raid-size-in-storage-snapshot
https://community.netgear.com/t5/New-ReadyNAS-Users-General/RAID-10-Expansion/td-p/2064928

Expanding performance

One of the main benefits of RAID 10 is increased performance compared to a single drive or other RAID levels. Specifically, RAID 10 can deliver improved I/O operations per second (IOPS) by spreading reads and writes across multiple drives. Adding more mirrored drive pairs to a RAID 10 array can further increase total IOPS.

For both read and write operations, RAID 10 provides close to linear scaling in performance as drives are added in pairs. With the mirrored writes in RAID 10, a 4 drive array could theoretically handle twice as many IOPS as a 2 drive array. However, performance gains do start to show diminishing returns past a certain point as the RAID controller can become saturated.

According to one analysis, expanding from 4 to 8 drives increased IOPS by 75%, but going from 8 to 16 drives only increased IOPS by 50%: https://blog.serverfault.com/2010/07/11/798854017/. So while expanding a RAID 10 array with additional drives can improve performance, the benefits taper off at larger scale.

Reliability considerations

When expanding a RAID 10 array by adding more drives in matched pairs, the fault tolerance is retained. RAID 10 can withstand multiple drive failures so long as no more than one drive in each mirrored pair fails. This fault tolerance remains even as the total number of disks increases.

However, there are risks during the rebuild process after a drive failure. The rebuild puts additional stress on the remaining disks which can potentially lead to a second disk failure during this period. To mitigate this risk, it’s advisable to use enterprise-grade drives rated for 24/7 operation. Monitor SMART attributes and replace disks proactively.

Proper cooling and ventilation is critical to ensure disk drives operate within a safe temperature range. RAID 10 arrays with many disks produce significant heat. Adequate airflow over the disk enclosures, via fans or other means, helps maintain disk health and lifespan. Monitor enclosure temperature and increase cooling if approaching manufacturer specs.

By using enterprise-grade disk drives, monitoring health metrics, and providing robust cooling, RAID 10 arrays can retain fault tolerance safely even during expansion.

Hardware Requirements

To add drives to an existing RAID 10 array, you need to ensure your hardware can support the expansion. The three main hardware considerations are:

  • Compatible RAID Controller – The RAID controller must support online capacity expansion for RAID 10 arrays. Many HBAs and RAID cards support this, including LSI MegaRAID and Dell PERC controllers. However, some older controllers may not allow RAID 10 expansion. Check your controller documentation.
  • Sufficient SATA/SAS Ports – There must be open SATA or SAS ports on the RAID controller to connect the new drives. If all ports are occupied, you may need to purchase a higher port count controller or expander.
  • Space in Server Enclosure – Make sure there are open drive bays in the server chassis to install the new drives. Adding an enclosure or shelf is an option if bays are limited.

As long as the RAID controller, ports, and drive bays can accommodate the new disks, the hardware should support adding capacity to RAID 10. Some controllers like the Dell PERC H740P allow hot-swapping during expansion.

Software and configurations

There are several configuration options when expanding a RAID 10 array. The most important factor is the RAID controller and its utility software. Most major vendors like Dell, HP, and SuperMicro include software to manage RAID arrays on their controllers like PERC, Smart Array, and MegaRAID. These utilities allow you to see disk information, monitor arrays, and expand capacity by adding new drives.[1]

Another consideration is hot spare configuration. Having a hot spare allows the array to automatically rebuild if a disk fails by substituting in the hot spare. When expanding the array, you can designate new disks as hot spares for redundancy.[2]

Lastly, the new disks added to the RAID 10 array will need to be partitioned and formatted to match the existing ones. This is usually done automatically by the RAID controller utility. But in some cases, you may have to manually partition and format new disks, making sure the partition table and file system match.

Cost Analysis

Budgeting for additional drives can add significant cost when expanding a RAID 10 array. RAID 10 requires a minimum of 4 drives, so adding capacity requires purchasing drives in pairs at a minimum. For example, adding just two 6TB enterprise HDDs to a 4-drive RAID 10 would cost $600-$1000 depending on the drive specifications.

Compared to higher RAID levels like RAID 6, expanding RAID 10 has a lower cost per TB since it only requires a minimum of 2 additional drives. However, the redundancy of RAID 10 is also lower than RAID 6. When budgeting for expansion, the tradeoff between capacity, performance, redundancy, and cost should be evaluated.

For future expansion, it is advisable to consider both short-term and long-term storage needs. Leaving open drive bays for additional drives can simplify expanding the array later. But overprovisioning too much unused capacity can increase upfront costs. A balanced approach is to add capacity in phases as needed to meet growing storage demands over time.

Alternatives to expanding

Instead of expanding a RAID 10 array, there are a few alternatives that provide more storage capacity:

Switching to higher capacity drives

One option is to swap out the existing drives for higher capacity ones. For example, replacing 4 x 2TB drives with 4 x 4TB drives would double the total capacity while maintaining the RAID 10 setup. This avoids expanding the array but upgrades to larger drives.

Moving to RAID 6 for more capacity

Another alternative is to switch the RAID level from RAID 10 to RAID 6. RAID 6 provides block-level striping with double distributed parity, allowing for two disk failures. Compared to RAID 10 which provides mirroring, RAID 6 does not duplicate data so you gain more overall storage capacity. However, write speeds may be slower than RAID 10.

Leveraging external storage

Rather than expanding the internal RAID 10 array, external storage over Thunderbolt, USB or network could be used to add capacity. For example, attaching an external RAID array via Thunderbolt 3 can provide additional storage while keeping the main RAID 10 array intact. This avoids any downtime from expanding the internal array.

Summary

In summary, expanding a RAID 10 array can allow you to increase both storage capacity and performance. By adding additional drives in matched pairs, you can grow the array size while still maintaining the redundancy and speed benefits of RAID 10. There are some hardware, software and configuration requirements to properly add new drives. You also need to consider the reliability impacts and costs involved.

The key points around RAID 10 expansion include:

  • RAID 10 combines mirroring and striping for redundancy and speed.
  • Adding matched pairs of drives increases total capacity.
  • More spindles can improve overall array performance.
  • Existing data needs to be migrated to the new drives.
  • Controller, cabling and software support are required.
  • Reliability may decrease with more drives.
  • Costs include new drives, enclosures, HBA cards if needed.

With proper planning and configuration, expanding a RAID 10 array can be an effective way to improve both capacity and performance. But the requirements, risks and expenses need to be weighed against alternatives like replacing with higher capacity drives or moving to a new array.