Cosa causa un errore CRC?

Traduzione a cura di Naonis dell’articolo apparso nel sito del produttore al seguente indirizzo

https://blog.macrium.com/what-causes-a-crc-error-4e1c96ec8012

In genere l’errore CRC è segnalato durante la creazione di un’immagine di backup o durante l’esecuzione di una scansione della superficie tramite chkdsk.

I dischi rigidi sono dispositivi fantastici, capaci di restituire rapidamente grandi quantità di dati basandosi sulla rilevazione del campo magnetico di minuscole aree di superficie del supporto. Ciò richiede una grande precisione meccanica per posizionare la testina di lettura. Tutto ciò spesso deve funzionare anche in un ambiente esposto a vibrazioni (NAS e SAN) e a temperature variabili.

La presenza di errori di lettura è un evento previsto già nella fase di progettazione di un moderno disco meccanico ed è contrastato da appositi algoritmi di correzione degli errori e con tentativi di lettura ripetuti. SI noti che il tasso di errore aumenta per i dischi guasti.

I dischi sono segmentati in blocchi di dati chiamati in genere “settori”. I dati possono essere letti o scritti solo come una sequenza di settori completi. Ogni settore è costituito dai dati stessi oltre a dati aggiuntivi per facilitare la localizzazione, il rilevamento degli errori e la correzione degli errori.

La correzione degli errori utilizza una tecnica matematica per aggiungere in una certa misura della ridondanza ai dati durante la fase di scrittura, consentendo sia il rilevamento che la correzione di un numero limitato di errori di bit durante le successive letture. Quando viene richiesta una lettura da parte del sistema operativo, il firmware del disco corregge eventualmente in modo invisibile gli errori rilevati. In caso si verifichino errori frequenti, il firmware del disco sposta (rimappa) il settore in un’area diversa del disco riservata proprio per questo utilizzo.

Questa correzione e rimappatura è normalmente invisibile al sistema operativo*. Tuttavia, quando ci sono troppi bit errati da correggere in un settore, il disco riporta un errore CRC al sistema operativo. Il nome “CRC error” è leggermente fuorviante in quanto; l’evento è in realtà un evento di errore non correggibile.

I “CRC error” per fortuna sono rari e, per impostazione predefinita, un backup di Reflect o un cloning saranno interrotti da un tale errore, in quanto questo inserirebbe tra i dati di backup un errore noto. Tuttavia, in molti casi, finché il tasso di errore è basso e non causa una corruzione critica ai metadati del filesystem, il backup può ancora essere completato selezionando l’opzione che consente di continuare anche in presenza di errori di questo tipo.

Nel funzionamento quotidiano, solo una piccola parte dei dati su un disco viene letta. Il backup tramite immagine, invece leggerà tutti i dati memorizzati sul disco e in genere sarà la prima volta che questi errori vengono rivelati. Per questo motivo, gli errori CRC sono spesso, erroneamente, attribuiti al funzionamento del backup di Reflect, mentre il processo di backup li metterà solo in evidenza.

Per rispondere finalmente alla domanda sollevata dal titolo: l’errore CRC non è una buona notizia, ma la perdita di dati ad esso dovuta potrebbe essere minima, almeno nel breve periodo. Un elevato numero di errori CRC, soprattutto se progressivo in aumento, sono un segno di un deterioramento del disco e quindi sarà sicuramente il caso di prendere in considerazione la possibilità di sostituirlo al più presto.

Nota: Sebbene i dischi magnetici siano l’obiettivo principale dell’articolo, i concetti si applicano anche agli SSD con l’avvertimento che il blocco minimo di archiviazione di un SSD è chiamato pagina e con “usura” delle pagine, essendo in grado di eseguire un numero finito di cicli di cancellazione. In questo caso il numero di pagine riservate è la chiave per la vita utile finale del dispositivo. Quando non ci sono pagine riservate rimanenti, l’SSD passa all’operazione di sola lettura.

* Il numero di eventi di errore raw (soft), tentativi di riallocazione di eventi possono essere letti tramite il meccanismo SMART.