Tutte le risposte sopra sono errate per quanto riguarda le capacità di RAID 6. Gli algoritmi RAID 6 funzionano byte per byte proprio come RAID 5 e se un singolo byte su una sola unità è corrotto, anche se nessun errore indicato dall'unità, può essere rilevato E CORRETTO. L'algoritmo per farlo è completamente spiegato in
https://mirrors.edge.kernel.org/pub/linux/kernel/people/hpa/raid6.pdf
Per eseguire questo controllo, è necessario leggere anche le unità di parità P e Q insieme alle unità dati. Se la parità calcolata P 'e Q' differisce senza errori di unità, un'analisi può individuare quale delle unità non è corretta e correggere i dati.
Inoltre, se l'identificazione dell'unità è su un'unità che non è presente (come l'unità 137 se ci sono solo 15 unità), più di un'unità fornisce dati danneggiati PER QUEL BYTE, segnalando un errore di errore non correggibile. Quando ci sono meno di 256 unità nel set, questo viene rilevato con un'alta probabilità per byte e poiché ci sono molti byte in un blocco, con probabilità estremamente alta per blocco. Se l'identificazione dell'unità non è coerente per tutti i byte all'interno del blocco RAID, anche in questo caso più di un'unità fornisce dati danneggiati e generalmente si potrebbe rifiutare la condizione, ma fintanto che tutte le identificazioni dell'unità sono valide, il blocco non deve necessariamente essere respinto.
Per eseguire questa correzione è necessario più tempo del normale tempo di verifica, ma deve essere eseguito solo con il calcolo della sindrome (P e Q) che mostra un errore.
Detto questo, tuttavia, non ho esaminato il codice mdadm per determinare se viene gestita la corruzione a byte singolo. Sono consapevole che mdadm segnala errori di sindrome RAID6 durante la scansione mensile, ma dal messaggio di errore non è chiaro se vengano corretti - non arresta l'array di unità né identifica alcuna unità particolare nel messaggio.