RAID 1 e RAID 5 (e i loro fratelli 10 e 50) ottengono ridondanza dei dati rispettivamente attraverso il mirroring e il controllo di parità. Ciò consente a un array RAID di accedere ancora ai dati quando un settore su un disco (o un intero disco) diventa illeggibile. RAID 6 (o 60) utilizza un controllo aggiuntivo per consentire doppi guasti.
Ma come può un array RAID gestire dati non del tutto illeggibili, ma semplicemente incoerenti?
Se si verifica un errore tale che i dati fe su una striscia vengono modificati su un disco ma la modifica non viene propagata alle altre, l'intera striscia diventerebbe incoerente. Se in un set con mirroring un disco dice "questo bit è 0" mentre l'altro disco dice "questo bit è 1", come può un controller RAID sapere quale è giusto? Lo stesso ragionamento potrebbe essere applicato a una striscia RAID-5, con la complessità aggiunta che non si può facilmente sapere quale settore è effettivamente sbagliato nella striscia. Inoltre, RAID 6 mitiga questo problema con i suoi doppi controlli, o può ancora avere problemi a recuperare dalla corruzione dei dati quando i dati sono effettivamente leggibili ma è sbagliato da qualche parte, specialmente perché gli array RAID 6 tendono ad avere molti dischi?
Ciò potrebbe teoricamente essere risolto dai checksum, per garantire quale copia dei dati (o parità) sia quella corretta; ma un controller RAID implementa effettivamente questo tipo di checksum (che ovviamente occuperebbe spazio aggiuntivo)? O deve essere gestito a livello di sistema operativo, dove la maggior parte dei filesystem può e farà il checksum del loro contenuto? E se questo è il caso, come possono dire al controller RAID "i dati sul settore X sul disco Y sulla striscia Z sono sbagliati", quando l'approccio generale di un controller RAID è quello di astrarre il sistema operativo dal livello di archiviazione sottostante tanto quanto possibile?