Redundancy by erasure coding
With erasure coding, Virtuozzo Hybrid Infrastructure breaks the incoming data stream into fragments of a certain size, then splits each fragment into a certain number (M) of 1-megabyte pieces and creates a certain number (N) of parity pieces for redundancy. All pieces are distributed among M+N failure domains, that is, one piece per failure domain. On failure domains, pieces are stored in regular chunks of 256 MB but such chunks are not replicated as redundancy is already achieved. The cluster can survive failure of any N failure domains without data loss.
The values of M and N are indicated in the names of erasure coding redundancy modes. For example, in the 5+2 mode, the incoming data is broken into 5 MB fragments, each fragment is split into five 1 MB pieces and two more 1 MB parity pieces are added for redundancy. In addition, if N is 2, the data is encoded by using the RAID6 scheme, and if N is greater than 2, erasure codes are used.
The diagram below illustrates the 5+2 encoding mode with the host failure domain.
For production, it is recommended to use the erasure coding mode with at least 2 parity chunks.