Coda
Luca Giuzzi
l.giuzzi a dmf.bs.unicatt.it
Gio 18 Feb 1999 17:28:50 UTC
Coda \'e un network filesystem come NFS o SMB (quello di samba) usato per
condividere gerarchie di files fra pi\'u macchine ma presenta alcune
caratteristiche uniche mutuate da afs3 (filesystem usato nei sistemi kerberos).
In particolare NFS \'e `connectionless': questo significa che se un server non
\'e disponibile per svolgere una operazione (di lettura o scrittura) il
client non ritorna subito un messaggio di errore, ma riprova a svolgere la
operazione per un numero determinato di volte (usualmente indicato come
opzione di mount), contemporaneamente bloccando il programma E impedendo
l'unmounting della directory. Questo su una rete locale piccola e/o in
condizioni in cui si hanno servers di backup non \'e affatto male (in quanto
i problemi possono essere identificati e risolti rapidamente), ma su rete
geografica o su una grossa LAN \'e un vero e proprio incubo. In effetti si
possono verificare i cosiddetti `nfs storms' in cui due o tre macchine si
bloccano aspettandosi a vicenda... un bel deadlock per la gioia dei sistemisti!
Un altro problema con NFS \'e il metodo di autenticazione degli shares e il
fatto che l'autorizzazione viene fatta a livello di macchina+mappa UIDs e non
a livello utente... (per applicazioni tipo automounting sarebbe bene fare
una autenticazione a livello utente, per condivisione di gerarchie tipo
/usr/share \'e meglio autenticare la macchina). Samba -sebbene in alcune aree
presenti delle caratteristiche interessanti- globalmente non \'e migliore e ha
problemi per conto suo!
CODA \'e un approccio diverso al problema di filesystem distribuito; in
particolare aprofitta dell'idea di cache locale per i files che vengono usati.
Se il server non \'e disponibile nel momento in cui una operazione di
scrittura viene richiesta, allora il file viene salvato localmente per poi
essere aggiornato sul server non appena questi `ritorna in vita'. Nel caso
di scritture concorrenti da diversi clients (ahi... questo \'e male) viene
sfruttato un sistema `stile cvs' per vedere se e quando le patches debbono
essere scritte oppure se non sia meglio notificare l'utente dei problemi e
richiedere una sincronizzazione manuale. Riguardo il caching, infine,
esso funziona pure in lettura e pu\'o consentire, ad esempio per un laptop,
di continuare a lavorare in modo trasparente su alcuni dati anche dopo che
\'e stato sconnesso dalla rete. Dal punto di vista autenticazione il
filesystem consente una autenticazione per host con per\'o mapping degli
UIDs ridefinibile e -e questo \'e bene- pieno supporto per le ACLs.
Questo per rispondere al `ma che \'e?' :-)
Ciao,
lg
Maggiori informazioni sulla lista
Lug
|