13) Quali sono le principali caratteristiche del Locus File System?
Il Locus File System estende il kernel di UNIX per realizzare un file system globale con proprietà di tolleranza ai guasti.
Ogni macchina ha una vista completa e consistente del F.S. virtuale.
La struttura dei file logici prevede trasparenza e indipendenza dall'allocazione
L’unità base componente è il filegroup logico formato da un insieme di copie di file fisici.
in astratto, una struttura unica.
in concreto, fisicamente mappato in multiple file container memorizzati e replicati in maniera trasparente
Il file designator è un indicatore a basso livello del file - {numero di filegroup, numero di i-node} - indipendente dalla allocazione.
File system a completa condivisione.
Il sistema mantiene una tabella in cui per ogni filegroup indica
il file designator della directory logica corrente
il nodo per l'accesso sincronizzato nel filegroup
L’accesso ai file in LOCUS coinvolge tre entità su macchine diverse:
using site o us, richiede l'accesso al file (client) .
storage site o ss, fornisce i dati (server).
current synchronization site o css, per gestire la sincronizzazione nell'accesso al file; il css sceglie ss per le operazioni di apertura del file e mantiene informazioni di consistenza delle repliche.
al primo accesso, css cerca negli ss la versione più aggiornata e la passa allo us.
le operazioni di lettura accedono da us ad ss.
con totale trasparenza dell'allocazione.
con utilizzo di tecniche di read-ahead e caching sia di pagine dati sia di percorso.
la connessione è di tipo stateful: sia ss e css mantengono informazioni sui file aperti.
Operazioni in scrittura
css seleziona una copia primaria, primary copy, in cui registra le modifiche con delayed write
utilizzo del meccanismo di shadow page: modifiche non apportate al file, ma registrate; in caso di aborto vengono scartate, altrimenti vanno a sostituire quelle obsolete nel file
atomicità operazioni di scrittura
consistenza dei dati
maggiore tolleranza ai guasti
In caso di modifica, css avverte gli altri css ed ss.
Locus estende la sincronizzazione UNIX nel distribuito: politica tipo exclusive-writer-multiple-readers (un solo processo scrive mentre altri lo possono leggere)
Esistono anche strumenti per l'accesso esclusivo a file con semantica di tipo transazionale
Locus necessita di supporto ad-hoc efficiente:
uso di funzioni di comunicazione integrate nel kernel
Il supporto avviene con processi leggeri interni al kernel attivati per ogni richiesta di file .