Archivio di parità
Da MontelLUG WIKI.
Stesura in corso
La definizione formale potete trovarla in rete (anche su Wikipedia), ma proviamo ad avvicinarci in modo meno formale, più pratico, più intuitivo a questo concetto "magico".
Un archivio di parità (o parity archive in inglese, o parchive) possiamo immaginarlo come una riserva di blocchi che ci consente di verificare l'integrità di un file e di ripristinare, se necessario, lo stato di un file (o un gruppo di file) nel caso in cui questi vengano per qualche motivo corrotti.
Infatti, oltre ad offire funzionalità di controllo dell'integrità dei dati, ne consente anche il recupero (vedremo i limiti).
Se conoscete già le funzioni hash (sha1, sha256, sha512, md5, ...), immaginate di avere un file e calcolare il suo checksum sha1: il risultato vi consentirà di verificare l'integrità del file nel tempo.
E quando il checksum non corrisponde? Niente, con sha1 (e le altre funzioni di hash) potete solo prendere atto del fatto che il file è stato modificato.
Con gli archivi di parità, invece, oltre a verificarne l'integrità, è anche possibile ripristinare il file al momento in cui è stato generato l'archivio di parità.
Un po' di storia
Gli archivi di parità - parchive - sono un'implementazione degli algoritmi di Irving S. Reed e Gustave Solomon, due matematici ed ingegneri del MIT, che nel 1960 svilupparono una serie di algoritmi per la correzione degli errori.
Il risultato del loro lavoro fu eccezionale: basti pensare che i loro algoritmi furono applicati per le comunicazioni tra le sonde Voyager e la Terra, nel DAT e sono tutt'ora utilizzati nel CD, nel DVD, nei codici a barre a due e tre dimensioni (sì, anche nei QR Code), nel RAID 6 e perfino nel Digitale Terrestre (DVB).
Ma in pratica, cosa fa?
Supponiamo di dover inviare un messaggio dalla Voyager (ormai fuori dal sistema solare, distante oltre 23 miliardi di chilometri dalla Terra) verso la Terra: può essere un testo, un video, un audio, ... qualsiasi messaggio; di qualunque tipo di messaggio si tratti verrà prima convertito in un messaggio digitale (una fila di zero e uno: in pratica un file).
Questo messaggio verrà diviso in blocchi, ipotizziamo 10 blocchi.
Verrà calcolato l'archivio di parità per un 30% (ad esempio), per cui altri 3 blocchi.
A questo punto la Voyager invierà un "plico" di dati costituito da 13 blocchi.
"Ah, e dov'è il vantaggio? Dovremmo provare a rendere il pacchetto più piccolo, non più pesante!"
È questa la magia degli algoritmi di Reed-Solom: sulla Terra sarà sufficiente ricevere 10 blocchi qualsiasi dei 13 inviati dalla Voyager per essere in grado di ricostruire il messaggio originario.
ToDo:
- applicazioni casalinghe degli archivi di parità
- protezione dei dati (es.: backup)
- conservazione degli archivi di parità
- esempi da riga di comando
- aggiungere immagini esplicative