User Tools

Site Tools


doc:appunti:linux:sa:unison

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.

doc/appunti/linux/sa/unison.txt · Last modified: 2022/02/05 07:39 by niccolo