Table of Contents
Unison
Contenuto della directory .unison
Per tenere traccia dello stato delle due repliche (i due repository da tenere sincronizzati), Unison crea dei file nella directory $HOME/.unison/. In particolare per ogni coppia di roots (sorgente e destinazione) vengono creati due file ar<hash> e fp<hash>.
La coppia di file ar<hash> e fp<hash> viene creata su entrambi gli host, ma con diverso hash. Ogni host fa riferimento a se stesso come root, ma indica la stessa coppia sorgente ⇒ destinazione.
File ar*
I file ar sono Unison archive format 22, contengono i metadati di tutti i file presenti nelle repliche (timestamp, inode, hash, ecc.). I metadati verranno usati per determinare se un file è cambiato e deve essere sincronizzato. I file sono di tipo binario, ma le prime tre righe sono leggibili come testo e contengono informazioni del tipo:
Unison archive format 22 Archive for root //host1//data/media/music synchronizing ro //host1//data/media/music, //host2//home/media/musica Written at 2021-09-13 at 9:45:20 - case sensitive mode
Le dimensioni di questi file dipendono dalla quantità di file presenti nelle repliche, ad esempio per circa 46000 file la dimensione è 3.6 Mb.
File fp*
I file fp sono Unison fingerprint cache format 2. Anche questi file hanno un contenuto binario, ma non è chiaro cosa contengono. Sembra che la loro dimensione non sia direttamente proporzionale al numero dei file presenti nelle repliche.
Il problema del re-hashing
Alla prima esecuzione di una sincronizzazione, Unison deve fare la scansione di tutti i file in entrambe le repliche per calcolare l'hash (checksum) di tutti i file. Si tratta di una operazione molto onerosa che può richiedere diverse ore; ad esempio con dischi collegati via USB e CPU non troppo performanti la scansione di 800 Gb di file può richiedere fino a dieci ore.
In alcune circostanze Unison può essere indotto a ricalcolare tutti gli hash dei file anche se non ce ne sarebbe bisogno. Queste sono alcune delle condizioni:
- Viene cambiato il percorso di una delle due root.
- Viene cambiato il disco di una delle due root. Non è chiaro se Unison tiene traccia di qualche identificativo del device, oppure è il cambio di inode di ogni file a far scattare il re-hash dei file.
Purtroppo al momento non si conoscono metodi per aggiornare i file di configurazione ar e fp in modo da non richiedere il re-hashing dei file. Vedere in proposito questo thread: RE: [unison-users] Re: Unison Archive files.