RAID arrays in Yandex BareMetal servers
You can use RAID arrays to increase performance and fault tolerance of your disk subsystem in BareMetal servers.
RAID (Redundant Array of Independent Disks)
RAID levels
The logic of how multiple disks can operate together in a RAID array may vary. Depending on the logic, there are different RAID levels, the most common of which are:
|
Level |
Logic |
Fault tolerance |
Performance |
Use cases |
|
Striping: data is distributed across disks |
No Each additional disk reduces fault tolerance |
Maximum |
|
|
|
Mirroring: one disk fully duplicates the other |
Yes (1 disk) |
Read is faster than write |
|
|
|
Striping with distributed parity: data is distributed across three or more disks |
Yes (1 disk) |
Good balance |
|
|
|
Combination of |
Yes (one disk per pair) |
High |
|
The RAID levels described above (RAID 0, RAID 1, RAID 5, and RAID 10) are enough for most scenarios. But there are more RAID levels out there, e.g., RAID 2, RAID 3, RAID 4, RAID 6, RAID 50, RAID 60, etc. These, however, are rarely used in servers.
RAID implementations in BareMetal servers
You can manage RAID arrays in BareMetal servers using several different technologies: software RAID, hardware RAID, motherboard-integrated RAID controller, and Intel vROC.
Software RAID
Software RAID is implemented directly by the operating system without a specialized hardware controller.
Linux
LinuxRAID 1 is supported by most distributions: you configure the relevant parameter during installation in the disk partitioning section.
Windows Server
In Windows ServerStorage Spaces technology (starting with Windows Server 2012). This technology allows you to create mirrored (RAID 1) and striped (RAID 0) volumes, as well as parity (RAID 5) volumes.
You can install the operating system on a mirrored volume, but this requires some additional steps: the mirror has to be configured through dynamic disk management after the system is installed on one of the disks. UEFI booting from a Storage Spaces volume is supported by current Windows Server versions if properly configured.
Pros:
- Hardware independence: the array can be moved to another server with any controller.
- No additional hardware costs.
- Flexible configuration and monitoring with native OS tools.
Cons:
- RAID array management consumes CPU resources.
- No hardware cache.
- Lack of software RAID support in some operating systems or products.
Hardware RAID
Hardware RAID is implemented using a separate physical controller installed in the server. The controller takes over all array management computing: parity calculation, data recovery, and operation caching. The server's CPU has no part in managing the RAID array.
Different controllers support different types of disk interfaces. Most controller models work with SATA
Pros:
- Takes the load off the CPU.
- Hardware cache speeds up random read/write operations in most cases.
- Transparency for the OS: the RAID array is accessed as a regular disk.
Cons:
- Involves additional hardware costs.
Motherboard-integrated RAID controller (Fake RAID)
Occupying a place between the hardware and software RAID, the Fake RAID technology is implemented by motherboard vendors in integrated RAID controllers Intel RSTAMD RAIDXpert.
Integrated RAID controllers operate at motherboard firmware level, the latter emulating a block device with basic bootloader functionality. For the OS to make full use of such RAID arrays, you need to install a driver for the integrated RAID controller. Some motherboards have no integrated RAID controllers.
Some operating systems and software products do not support RAIDs created on Fake RAID controllers (e.g., VMware ESXi
Pros:
- Partially offloads the CPU.
- No additional hardware costs.
- Transparency for the OS: the RAID array is accessed as a regular disk.
Cons:
- Some motherboards may not have an integrated RAID controller.
- No hardware cache.
- Cannot be used with some operating systems or products.
For more information on creating a RAID array on a motherboard-integrated controller, see the Additional server settings section.
Intel vROC (Virtual RAID on CPU)
Intel vROC
The main advantage of Intel vROC over hardware RAID controllers is that there is no intermediary between the CPU and NVMe drives. Data is transferred directly over the PCIe bus, minimizing latency.
Pros:
- Maximum performance for RAID arrays based on of NVMe drives.
- Full support for all RAID levels.
Cons:
- Works only with NVMe drives.
- Available only on servers with Intel processors.
- Requires a special activation key for vROC.
RAID implementation methods compared
| Parameter | Software RAID | Hardware RAID | Integrated controller | Intel vROC |
|---|---|---|---|---|
| Disk type | HDD, SSD, NVMe | HDD, SSD, NVMe | HDD, SSD, NVMe | NVMe only |
| CPU load | Available | No | Minimum | Minimum |
| Hardware cache | No | Yes | No | No |
| Hardware independence | Yes | No | No | No |
| Performance | Medium | High | Medium | High |
| Support for RAID levels 0, 1, 5, 10 | Yes | Yes | Yes | Yes |