User Tools

Site Tools


doc:appunti:linux:sa:unison

This is an old revision of the document!


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.

doc/appunti/linux/sa/unison.1644046642.txt.gz · Last modified: 2022/02/05 08:37 by niccolo