Friday, July 25, 2025

vSAN ESA RAIDs

vSAN ESA is VMware’s software-defined storage solution. Each virtual hard disk (vDisk) is represented as an object within the vSAN datastore. The properties of these vSAN objects are governed by vSAN VM Storage Policies, which define data placement and protection rules. While these policies may emulate traditional RAID (Redundant Array of Independent Disks), vSAN actually implements RAIN (Redundant Array of Independent Nodes). This is because data components, such as stripes and replicas, are distributed across failure domains, which by default correspond to vSphere/vSAN cluster nodes (ESXi hosts). The specific striping and distribution are determined by the configured failures-to-tolerate policy and vSAN cluster size.

vSAN ESA supports multiple levels of RAID/RAIN (Redundant Array of Independent Nodes) for data protection:

  • RAIN-0: No redundancy (data is not protected)

  • RAIN-1: Mirroring (1+1) across two nodes

  • RAIN-5: Erasure coding with a 2+1 or 4+1 configuration (minimum 4 or 6 hosts)

  • RAIN-6: Erasure coding with higher fault tolerance, typically 4+2, but can also be 6+2 or 8+2 depending on cluster size

These options allow you to balance storage efficiency, performance, and fault tolerance based on your specific workload and cluster topology.

Dynamic RAID/RAIN-5 Erasure Coding

vSAN ESA intelligently adapts its erasure coding layout based on the cluster size, balancing fault tolerance with storage efficiency. 

  • For clusters with 3 to 5 hosts (inclusive), vSAN ESA defaults to the 2+1 RAID-5 scheme
    • 133% raw capacity is required to satisfy redundancy
  • For clusters with 6 or more hosts, vSAN ESA will use a 4+1 RAID-5 scheme
    • 116% raw capacity is required to satisfy redundancy 

Erasure Coding in RAID/RAIN-6

Erasure coding in a RAID/RAIN-6 configuration provides a higher level of fault tolerance compared to RAID/RAIN-5, as it can withstand the failure of any two components (such as disks or hosts) without data loss. This is achieved by adding two independent parity blocks to each stripe of data, enabling reconstruction even when two blocks are missing. In vSAN ESA, the most common erasure coding scheme for RAID-6 is 4+2 (four data blocks and two parity blocks) requiring a minimum of six nodes. Larger configurations, such as 6+2 or 8+2, are also supported and provide greater efficiency, depending on the number of available nodes and the desired trade-off between capacity and redundancy.

Performance and Capacity Legs

Performance leg components are small components typically mirrored across two or more hosts and intended to temporarily store data and metadata in preparation to be written in a space efficient manner to the capacity leg. In case of RAID-0, the performance leg is not mirrored, thus it is a single component. In case of any other RAIN, the performance leg is mirror (RAID-1) of two components, each on different failure domain (node).

Let's see some real erasure coding schemas 

I have VM with a single vDisk with various sizes on top of 5-Node vSAN ESA and below are documented underlay components for various VM Storage Policies.

VM Storage Policy with No Data Redundancy (RAIN-0)

1 GB, 10 GB, and 100 GB vDisk in RAIN-0 has 1 standalone component (PERFORMACE LEG) and one unprotected RAID-0 with 3 components (CAPACITY LEG) ...

1, 10, and 100 GB vDisk - RAIN-0

1,000 GB vDisk in RAIN-0 has 1 standalone component (PERFORMACE LEG) and four (4) unprotected RAID-0 with 3 components (CAPACITY LEG) ...

1,000 GB vDisk - RAIN-0

10,000 GB vDisk in RAIN-0 has 1 standalone component (PERFORMACE LEG) and forty (40) unprotected RAID-0 with 3 components (CAPACITY LEG) ...

10,000 GB vDisk - RAIN-0

It seems, that the even for RAIN-0 storage policy, the vSAN uses performance leg, which is the first standalone component. 

VM Storage Policy with Mirroring Data Redundancy (RAIN-1)

1 GB, 10 GB, and 100 GB vDisk in RAIN-1 has 1 RAID-1 with two (2) components (PERFORMACE LEG) and one (1) RAID-1 object having two (2) mirrored RAID-0 objects with 3 components (CAPACITY LEG). This is required 1+1 (mirror) data redundancy in CAPACITY LEG. 

two (2) RAID-0 with 3 components protected by RAID-1 (CAPACITY LEG) ...

1, 10, and 100 GB vDisk - RAIN-1

1,000 GB vDisk in RAIN-1 has 1 RAID-1 with two (2) components (PERFORMACE LEG) and four (4) concatenated RAID-1 objects each having two (2) mirrored RAID-0 objects with 3 components (CAPACITY LEG). This is required 1+1 (mirror) data redundancy in CAPACITY LEG. 

1,000 GB vDisk - RAIN-1

10,000 GB vDisk in RAIN-1 has 1 RAID-1 with two (2) components (PERFORMACE LEG) and fourty (40) concatenated RAID-1 objects  each having two (2) mirrored RAID-0 objects with 3 components (CAPACITY LEG). This is required 1+1 (mirror) data redundancy in CAPACITY LEG. 

10,000 GB vDisk - RAIN-1
 

VM Storage Policy with Mirroring Data Redundancy (RAIN-5) on 5-node vSAN cluster

1 GB, 10 GB, and 100 GB vDisk in RAIN-1 has 1 RAID-1 with two (2) components (PERFORMACE LEG) and one (1) RAID-5 object having three (3) striped RAID-0 objects with 2 components (CAPACITY LEG). This is RAIN-5 data redundancy in CAPACITY LEG, implemented as 2+1, because it is on 5-node vSAN Cluster. 

1, 10, and 100 GB vDisk - RAIN-5 on 5-node vSAN Cluster

1,000 GB vDisk in RAIN-1 has 1 RAID-1 with two (2) components (PERFORMACE LEG) and four (4) RAID-5 objects each having three (3) striped RAID-0 objects with 2 components (CAPACITY LEG). This is RAIN-5 data redundancy in CAPACITY LEG, implemented as 2+1, because it is on 5-node vSAN Cluster. 

1,000 GB vDisk - RAIN-5 on 5-node vSAN Cluster

10,000 GB vDisk in RAIN-1 has 1 RAID-1 with two (2) components (PERFORMACE LEG) and fourty (40) RAID-5 objects each having three (3) striped RAID-0 objects with 2 components (CAPACITY LEG). This is RAIN-5 data redundancy in CAPACITY LEG, implemented as 2+1, because it is on 5-node vSAN Cluster. 

10,000 GB vDisk - RAIN-5 on 5-node vSAN Cluster

As we have only 5 nodes vSAN Cluster, that's the reason why we can see RAID-5 objects with three striped RAID-0 objects implementing 2+1 erasure coding and using 133% raw storage to store payload data. 

VM Storage Policy with Data Redundancy (RAIN-5) on 6-node vSAN cluster

In the near future, I will document RAIN-5 on 6-node vSAN Cluster.

VM Storage Policy with Data Redundancy (RAIN-6) on 7-node vSAN cluster

In a little further future, I will document RAIN-6 on 7-node vSAN Cluster.

References

[1] vSAN Availability Technologies Resilience Capabilities for vSAN in VMware Cloud Foundation 9.0 - https://www.vmware.com/docs/vmw-vSAN-Availability-Technologies


No comments: