3.2. Sincronizzazione dei filesystem

Alcuni dati (come ad esempio la gerarchia /opt descritta sopra che conterrebbe i contenuti non legati a singoli utenti) vanno sincronizzati tra le varie macchine. Dato che questi dati hanno dimensioni non piccole, e soprattutto non necessitano di modifiche specifiche per ciascuna macchina, si è scelto di non usare CFengine per gestirli, ma sistemi più semplici. Purtroppo al momento della realizzazione di questo documento, non abbiamo trovato una soluzione che ci permettesse di usare un vero filesystem condiviso - le peculiarità della nostra situazione (macchine non locali, con bassa banda di interconnessione) infatti non sono facilmente compatibili con il design normale di un filesystem distribuito.

Per copiare questi dati al momento si usa quindi un server rsync, non crittato, disponibile su ciascuna macchina all'interno della VPN, soluzione che permette una certa velocità di esecuzione e trasferimento, con basso overhead. Il punto dolente di questa soluzione è che rompe la simmetria delle varie macchine: una infatti deve assumere il ruolo di "originale" da cui poi vengono propagate automaticamente le copie.

Lo stesso meccanismo potrà essere usato per spostare da una macchina ad un'altra un singolo spazio utente o una mailbox. Per evitare di poter fare troppa confusione con un comando sbagliato, gli accessi tramite rsync sono read-only, dunque è permesso solo il pull.