Progetto dell interfaccia di Replica Management in InterDataNet per il Web of Data



Documenti analoghi
Capitolo Silberschatz

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Sistemi Operativi. Organizzazione logica ed implementazione di un File System

Il File System. Il file system

Il file system. meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate. in memoria di massa

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Il Software. Il software del PC. Il BIOS

Le Infrastrutture Software ed il Sistema Operativo

Sistemi Operativi Il Sistema Operativo Windows (parte 3)

File system II. Sistemi Operativi Lez. 20

12. Implementazione di un File System Struttura a livelli Allocazione contigua

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Il Sistema Operativo: il File System

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Gestione della memoria centrale

Database. Si ringrazia Marco Bertini per le slides

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Sistemi Operativi. 5 Gestione della memoria

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Link e permessi. Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione. Corso di Sistemi Operativi A. A

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Implementazione del File System

SISTEMI OPERATIVI DISTRIBUITI

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Architettura di un calcolatore

Organizzazione degli archivi

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

1. BASI DI DATI: GENERALITÀ

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Il Sistema Operativo

Base di dati e sistemi informativi

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Coordinazione Distribuita

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Laboratorio di Informatica

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Strutturazione logica dei dati: i file

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Sistema operativo: Gestione della memoria

Dispensa di Informatica I.1

Interfaccia del file system

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Creare una Rete Locale Lezione n. 1

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Procedure di ripristino del sistema.

Sistemi Operativi (modulo di Informatica II)

Sistemi Operativi. 11 LEZIONE INTERFACCIA DEL FILE SYSTEM CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

Il Sistema Operativo (1)

Il sistema operativo: interazione con l utente

Tecnologia di un Database Server (centralizzato) Gestione del buffer

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

STRUTTURE DEI SISTEMI DI CALCOLO

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Software di base. Corso di Fondamenti di Informatica

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

La Metodologia adottata nel Corso

Laboratorio di Informatica di Base Archivi e Basi di Dati

MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA

SISTEMI OPERATIVI. Realizzazione del file system. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

Indice. settembre 2008 Il File System 2

Al termine del lavoro ad uno dei componenti del gruppo verrà affidato l incarico di relazionare a nome di tutto il gruppo.

Indice. pagina 2 di 10

Realizzazione del file system

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Access. P a r t e p r i m a

Guida Compilazione Piani di Studio on-line

ISTRUZIONI PER LA GESTIONE BUDGET

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Corso di Amministrazione di Reti A.A. 2002/2003

SISTEMA DI GESTIONE PER LA QUALITA Capitolo 4

Agenda telematica delle manifestazioni pubbliche

FPf per Windows 3.1. Guida all uso

BMSO1001. Orchestrator. Istruzioni d uso 02/10-01 PC

Controllo I/O Costituito dai driver dei dispositivi e dai gestori dei segnali d interruzione.

Titolare del trattamento dei dati innanzi descritto è tsnpalombara.it

File System Distribuiti

Introduzione. File System Distribuiti. Nominazione e Trasparenza. Struttura dei DFS. Strutture di Nominazione

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Progettaz. e sviluppo Data Base

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

MANUALE DELLA QUALITÀ Pag. 1 di 6

Introduzione al data base

MANUALE UTENTE Fiscali Free

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

Transcript:

UNIVERSITÀ DEGLI STUDI DI FIRENZE Facoltà di Ingegneria Dipartimento di Elettronica e Telecomunicazioni Corso di Laurea in Ingegneria Informatica P.O. Progetto dell interfaccia di Replica Management in InterDataNet per il Web of Data Tesi di Laurea di Maddalena Barlotti Relatori Prof. Franco Pirri Correlatori Ing. Davide Chini Prof. Dino Giuli Ing. Samuele Innocenti Ing. Maria Chiara Pettenati Anno Accademico 2006/2007

Ringraziamenti Desidero ringraziare tutti coloro che hanno contribuito allo svolgimento del presente lavoro di tesi, per il tempo dedicatomi e per il clima di serenità che mi ha permesso di vivere questa esperienza in modo piacevole. Ringrazio il Prof. Franco Pirri e il Prof. Dino Giuli per avermi reso partecipe di un progetto interessante e per avermi dato l opportunità di apportare il mio contributo ad esso. Ringrazio i miei correlatori, con i quali ho instaurato un ottimo rapporto sia di tipo collaborativo che personale: l Ing. Davide Chini, che ha seguito da vicino l evoluzione del presente lavoro, per gli innumerevoli suggerimenti e consigli senza i quali avrei spesso faticato ad andare avanti; e gli Ing. Samuele Innocenti e Maria Chiara Pettenati, per le correzioni e la cura nei dettagli. Grazie anche a tutte le persone che durante questo periodo hanno frequentato insieme a me il laboratorio integrato Tecnologie della Telematica Radar e Radiocomunicazioni, in particolare Stefano Cigheri, Lucia Ciofi, Niccolò Francini e Michela Paolucci, per l atmosfera di amicizia e la simpatia dimostratami fin dai primi momenti, e in modo speciale Cristiano Costantini, che come me in questi mesi ha visto concludersi il suo percorso di studi, per l incoraggiamento e il supporto morale. Un ultimo ringraziamento va ai miei genitori, che hanno pazientemente atteso la conclusione della mia carriera universitaria, e a tutti i familiari e gli amici che hanno espresso la loro partecipazione agli sviluppi del presente lavoro. Firenze, 2 aprile 2008 Maddalena Barlotti

Il semble que la perfection soit atteinte non quand il n y a plus rien à ajouter, mais quand il n y a plus rien à retrancher. Antoine de Saint-Exupéry

Ai miei nonni

Indice Introduzione xv I Sistemi per la replicazione di risorse condivise 1 1 Sistemi per la gestione di risorse 3 1.1 Aspetti generali del file system.................. 4 1.1.1 Concetto di file...................... 5 1.1.2 Struttura della directory................. 9 1.1.3 Condivisione e protezione................ 13 1.2 Partizioni e montaggio di un file system............. 15 1.3 Realizzazione e struttura del file system............. 17 1.4 Aspetti implementativi...................... 19 1.4.1 Allocazione dello spazio su disco............. 19 1.4.2 Efficienza e prestazioni.................. 23 1.4.3 Ripristino e verifica della coerenza............ 26 2 Sistemi distribuiti per la gestione di risorse 29 2.1 Caratteristiche dei file system distribuiti............ 30 2.1.1 Interfaccia e servizi offerti................ 30 2.1.2 Spazio dei nomi e trasparenza.............. 34 2.1.3 Confronto tra server stateful e stateless......... 39 2.2 Semantica della consistenza................... 42 2.3 Metodi di accesso remoto e caching............... 46 2.4 FAN: File Area Network..................... 52

Indice 3 Replicazione di risorse in ambito distribuito 59 3.1 Vantaggi introdotti con la replicazione............. 60 3.2 Architetture dei sistemi di replicazione............. 65 3.3 Modelli di consistenza delle repliche............... 68 3.3.1 Modelli data-centrici................... 69 3.3.2 Modelli client-centrici................... 75 3.4 Protocolli di gestione della consistenza............. 78 3.4.1 Metodo del sito primario................. 80 3.4.2 Metodo a votazione.................... 84 3.4.3 Metodo dei vettori di versione.............. 89 3.5 Strategie di replicazione..................... 92 3.5.1 Posizionamento delle repliche.............. 94 3.5.2 Propagazione degli aggiornamenti............ 96 II Progettazione del Replica Management di IDN 101 4 Il progetto InterDataNet 103 4.1 Sistemi collaborativi e interoperabilità............. 105 4.2 Il modello dell informazione................... 107 4.2.1 Caratteristiche dell informazione............. 108 4.2.2 Concetto di documento.................. 110 4.2.3 Il sistema dei nomi.................... 116 4.3 L architettura dei servizi..................... 121 4.3.1 Principi progettuali.................... 121 4.3.2 La gerarchia dei livelli.................. 124 4.3.3 Le applicazioni IDN e le API.............. 128 4.4 Overlay network.......................... 130 4.5 IDN come file system replicato.................. 133 4.5.1 Confronto con il file system............... 135 4.5.2 Replicazione........................ 139 5 Requisiti del Replica Management 143 5.1 Scenari applicativi........................ 143 5.1.1 Estensioni dell applicabilità............... 144 5.1.2 Esempi di impiego.................... 146 5.2 Definizioni............................. 151 5.3 Classificazione dei requisiti.................... 153 viii

Indice 5.4 Specifica dei requisiti....................... 154 5.4.1 Requisiti per la gestione delle risorse.......... 155 5.4.2 Requisiti per la replicazione............... 161 6 Servizi e interfacce del Replica Management 167 6.1 Il servizio di gestione delle risorse................ 167 6.1.1 Il servizio di memorizzazione persistente........ 168 6.1.2 Il servizio di risoluzione dei nomi............ 170 6.2 Il servizio di replicazione..................... 175 6.2.1 Mantenimento della consistenza............. 178 6.2.2 Posizionamento delle repliche.............. 184 6.2.3 Selezione della replica e routing delle richieste..... 186 6.3 Azioni atomiche e transazioni.................. 188 6.4 Definizione delle interfacce.................... 191 6.4.1 Interfaccia esposta da Replica Management...... 192 6.4.2 Interfaccia esposta da Localization Service....... 212 Conclusioni 216 III Appendici 221 A Implementazioni di file system 223 A.1 File system per i sistemi Windows................ 223 A.1.1 FAT: File Allocation Table................ 224 A.1.2 NTFS: New Technology File System.......... 229 A.2 File system per i sistemi Linux.................. 234 A.2.1 Extended File System.................. 235 A.2.2 L interfaccia del file system virtuale........... 240 A.2.3 FUSE: File system in userspace............. 242 A.3 File system distribuiti...................... 248 A.3.1 NFS: Network File System................ 248 A.3.2 AFS: Andrew File System................ 254 A.4 Replicazione nel file system Coda................ 259 Bibliografia 265 ix

Elenco delle figure 1.1 Suddivisione del disco in partizioni............... 16 1.2 File system stratificato...................... 18 1.3 Confronto tra allocazione a blocchi e allocazione basata su extent 21 1.4 Efficienza e prestazioni in funzione della dimensione dei blocchi 24 2.1 Modelli upload/download e ad accesso remoto per il file service 32 2.2 Lettura e scrittura in un sistema a singolo processore..... 42 2.3 Lettura e scrittura in un sistema distribuito.......... 43 2.4 Posti in cui memorizzare i file in un sistema client-server... 46 2.5 Architettura di una File Area Network............. 54 3.1 Architettura di un sistema di gestione delle repliche...... 65 3.2 Organizzazione di un archivio di dati distribuito e replicato.. 69 3.3 Accesso ad un sistema replicato da parte di un utente mobile. 76 3.4 Approccio del sito primario con letture sui siti di backup... 83 3.5 Approccio del sito primario con migrazione del sito primario. 83 3.6 Esempi di configurazione per i quorum nell approccio a votazione 88 3.7 Esempio dell approccio dei vettori di versione......... 91 3.8 Organizzazione logica dei tipi di repliche presenti in un archivio 94 4.1 Esempio di documento IDN................... 113 4.2 Storico dell informazione nell IDN-IM.............. 116 4.3 Esempi di nomi di livello applicativo nell IDN-IM....... 119 4.4 Il sistema dei nomi di IDN.................... 120 4.5 Gerarchia dei livelli nell IDN-SA................. 125 4.6 Architettura del middleware IDN................ 129

Elenco delle figure 4.7 Possibile scenario di utilizzo di IDN............... 132 6.1 Definizione dei PRI con notazione BNF............. 173 6.2 Esempio di LS con struttura ad albero............. 174 6.3 Approccio a votazione con quorum a maggioranza su due livelli 181 6.4 Casi d uso dell interfaccia esposta da RM: operazioni CRUD 193 6.5 Casi d uso dell interfaccia esposta da RM: operazioni Advanced 202 6.6 Casi d uso dell interfaccia esposta da RM: operazioni Admin 206 6.7 Casi d uso dell interfaccia esposta da RM a istanze di pari livello210 6.8 Casi d uso dell interfaccia esposta da Localization Service... 212 A.1 Struttura dell inode........................ 237 A.2 Struttura del file system virtuale di Linux........... 240 A.3 Architettura di FUSE....................... 244 A.4 Architettura del Network File System.............. 252 A.5 Architettura dell Andrew File System.............. 257 xii

Elenco delle tabelle 2.1 Confronto tra i vantaggi dei server stateful e stateless..... 41 2.2 Metodi per gestire i file condivisi in un sistema distribuito.. 45 2.3 Metodi per gestire la cache dei file nel client.......... 51 3.1 Modelli di consistenza che non usano variabili di sincronizzazione 74 3.2 Modelli di consistenza che usano variabili di sincronizzazione. 74

Introduzione Disporre di soluzioni per la gestione delle informazioni costituisce una risorsa strategica essenziale e di valore inestimabile. Infatti, per qualsiasi organizzazione, la possibilità di accedere a tale risorsa e ai diversi generi di documenti (cartacei, audiovisivi o telematici) che la contengono si pone al centro delle priorità. Di conseguenza, tra le responsabilità primarie per ogni organizzazione si trovano lo sviluppo, la gestione e l utilizzo efficace delle informazioni e dell infrastruttura tecnologica posseduta a tal fine. Nelle più semplici attività umane, le informazioni sono scambiate per mezzo di simboli, oppure mediante il linguaggio scritto o parlato. Allo scopo di conservarle in modo permanente e renderle accessibili e aggiornate perché possano riflettere rapidamente le variazioni subite, nei sistemi informatici queste informazioni vengono rappresentate per mezzo di dati. Storicamente, l approccio convenzionale alla gestione delle informazioni digitali prevede la memorizzazione dei dati sotto forma di file che risiedono sullo stesso calcolatore a cui le applicazioni e gli utenti accedono. L identificazione dei file avviene attraverso dei nomi, quasi sempre specificando il dispositivo fisico nel quale sono contenuti. La parte del sistema che si occupa dell archiviazione dei dati, consentendone la ricerca e fornendo meccanismi per la condivisione, è chiamata file system; le sue funzionalità di base comprendono operazioni quali la creazione, la lettura, la modifica e l eliminazione dei file. Per rendere più flessibile l accesso alle informazioni da parte di utenti geograficamente sparsi, le modalità di condivisione sono cambiate nel tempo, anche grazie all evolversi della tecnologia: se un tempo i dispositivi per la

Introduzione memorizzazione a lungo termine dei dati erano direttamente connessi al computer a cui accede l utente, adesso le risorse sono rese disponibili attraverso la rete. La connettività promossa da Internet ha portato alla nascita di numerose organizzazioni e comunità virtuali, rendendo più semplice la collaborazione e lo scambio delle informazioni tra gli utenti (come dimostrato da blog, forum e wiki) e allo stesso tempo rafforzando il bisogno di rendere riutilizzabili le risorse. Un file system distribuito permette la memorizzazione e l accesso ai file remoti esattamente come avviene per quelli locali, con la differenza che gli utenti sono sparsi in un sistema distribuito, e possono accedere ai file ovunque si trovino. La diffusione dell approccio distribuito, insieme alla quantità largamente predominante di dati non strutturati contenuti nei file, ha fatto emergere la necessità di trovare un nuovo paradigma che permetta di interconnettere in modo più semplice informazioni eterogenee. Recentemente è stata proposta un architettura, chiamata File Area Network (FAN), con lo scopo di semplificare i compiti elementari nella gestione dei file, grazie alla quale le organizzazioni possono implementare dei servizi in modo da fornire una grande varietà di funzionalità a livello infrastrutturale, quali la migrazione e il posizionamento dei dati, il bilanciamento del carico e il controllo di accesso. Questo tipo di approccio sta trovando particolare successo in quanto ripropone l interazione tipica del file system, ormai familiare agli utenti e di realizzazione meno complessa rispetto ad altri sistemi per la gestione documentale. L idea chiave ruota attorno all esistenza di uno spazio dei nomi globale che preservi i file system esistenti, permettendo l accesso ad essi come se fossero un unica entità condivisa e costituendo così un astrazione logica che rappresenta un singolo punto di accesso alla sottostante infrastruttura fisica di memorizzazione, abilitando la federazione degli archivi di dati. Poiché l architettura FAN è distribuita per natura, la sua costruzione migliora l instradamento delle richieste, dirigendole verso le appropriate risorse, e fornendo così agli utenti e alle applicazioni dei percorsi persistenti attraverso i quali accedere ai dati. La virtualizzazione dei file che ne consegue permette di mascherare non solo le contromisure di sicurezza e di affidabilità, ma anche le complessixvi

Introduzione tà relative alla locazione fisica dei dati nella rete, riuscendo così a fornire agli utenti l accesso ininterrotto alle informazioni, a prescindere dalla loro posizione e dal fatto che essa possa variare nel tempo. Una funzionalità che tende al miglioramento del servizio di condivisione in un ambiente come quello appena descritto è la replicazione, la quale consiste nel memorizzare i dati in modo ridondante, mantenendone più copie e distribuendole su un certo numero di siti. In questo modo, si riescono a ottenere migliori prestazioni, maggiore disponibilità e affidabilità nell accesso ai dati, nonché scalabilità e tolleranza ai guasti del sistema nel suo complesso. In un sistema replicato, le informazioni sono viste come oggetti logici, ciascuno dei quali è fisicamente implementato da un insieme di elementi, ovvero le sue repliche. Se il sistema è in grado di realizzare la trasparenza alla replicazione, l utente non dovrà essere a conoscenza del fatto che esistono più copie fisiche dei dati: ogni volta che avrà bisogno di effettuare un operazione su un informazione, potrà richiederla identificando l oggetto logico (anche se poi l operazione potrà essere eseguita, internamente, su una qualsiasi delle sue repliche). Oltre a fornire l accesso ai dati, la parte del sistema preposta alla gestione delle repliche assicura la consistenza tra di esse e permette di crearle e trattarle secondo strategie che possono tenere conto di fattori come la domanda dei dati, la provenienza delle richieste e la capacità dei dispositivi di memorizzazione. Il progetto InterDataNet (IDN) ha come obiettivi la gestione e la condivisione delle informazioni in un contesto distribuito su larga scala, al fine di aumentare l interoperabilità e la collaborazione tra le organizzazioni connesse in rete. In questo progetto si inserisce il presente lavoro di tesi, che vede in quanto precedentemente esposto le sue finalità. L architettura IDN propone un modello per la rappresentazione di informazioni strutturate, composta da servizi stratificati che si occupano dei diversi aspetti del trattamento delle risorse. Tra le funzionalità principali si trovano la gestione della concorrenza e del ciclo di vita dell informazione, la navigazione nella struttura del documento e il controllo di versione. Poiché presenta un modello secondo il quale i dati possono essere integrati e riusati in modo intelligente, IDN può essere visto come una soluzione in grado di dare una spinta alla visione del Web semantico. Lo scopo è xvii

Introduzione quello di spostare i problemi relativi alla collaborazione nella gestione dell informazione dal livello applicativo al livello infrastrutturale, in analogia a quanto avvenuto nella gestione dei documenti ipertestuali con l adozione del protocollo HTTP e del linguaggio HTML. Nel presente lavoro di tesi sarà quindi affrontata la progettazione del livello Replica Management di IDN, il quale, sfruttando il servizio di memorizzazione persistente offerto dal livello inferiore, sarà incaricato di fornire la replicazione delle informazioni in modo trasparente ai livelli superiori. In analogia all approccio FAN, sarà perseguito lo scopo di rendere l identificazione delle risorse indipendente dalla loro posizione fisica all interno del sistema. A tal fine, nella prima parte del lavoro saranno illustrati i sistemi per la gestione e la replicazione delle risorse condivise, affinché l analisi dei modelli esistenti permetta successivamente di effettuare le scelte necessarie alla progettazione. Nel seguito saranno definiti prima i requisiti del sistema e poi le modalità con cui il Replica Management dovrà permettere l accesso alle risorse e realizzarne la replicazione. Il presente lavoro è strutturato nei seguenti capitoli: Capitolo 1 Stato dell arte di sistemi multiutente per la gestione di risorse condivise in ambiente centralizzato; descrizione degli aspetti generali e implementativi del file system. Capitolo 2 Stato dell arte di sistemi multiutente per la gestione di risorse condivise in ambiente distribuito; caratteristiche dei file system distribuiti, semantica della consistenza, metodi di accesso remoto e approccio FAN. Capitolo 3 Stato dell arte di sistemi per la replicazione distribuita delle informazioni; modelli e protocolli per la consistenza, strategie per il posizionamento delle repliche e la propagazione degli aggiornamenti. xviii

Introduzione Capitolo 4 Descrizione del progetto InterDataNet; modello dell informazione, architettura stratificata dei servizi, overlay network, confronto con file system e replicazione. Capitolo 5 Requisiti del Replica Management; scenari di applicabilità ed esempi di impiego del sistema, specifica dei requisiti. Capitolo 6 Definizione dei servizi e delle interfacce del Replica Management; memorizzazione persistente, risoluzione dei nomi e replicazione delle risorse, interfacce per la comunicazione. Appendice A Stato dell arte delle principali implementazioni di file system; FAT, NTFS, Extended File System, file system virtuale di Linux, FUSE per la realizzazione di file system nello spazio utente, NFS, AFS e replicazione in Coda. xix

Parte I Sistemi per la replicazione di risorse condivise

Capitolo 1 Sistemi per la gestione di risorse I computer hanno bisogno che le applicazioni siano in grado di memorizzare i dati, e in seguito di recuperarli e accedere ad essi. Questa necessità è dettata da motivi storici, non solo puramente tecnici ma soprattutto di ordine economico, come ad esempio i costi delle memorie volatili e i consumi energetici, i quali rimangono tuttora validi. Esistono dei requisiti essenziali per la memorizzazione a lungo termine dell informazione. Per prima cosa, deve essere possibile memorizzare una grande quantità di informazioni. I sistemi che utilizzano il meccanismo della memoria virtuale assegnano ad ogni processo uno spazio di indirizzi in memoria centrale; mentre un processo è in esecuzione, esso è in grado memorizzare una quantità di informazioni che è limitata dalla dimensione del suo spazio di indirizzi. Per alcune applicazioni questa dimensione può essere sufficiente, ma per altre risulta troppo piccola [Tan01]. In secondo luogo, l informazione deve sopravvivere al termine del processo che la usa. Tenendo le informazioni all interno dello spazio di indirizzi di un processo, quando questo termina l informazione è perduta. Molte applicazioni hanno bisogno di conservare le informazioni per settimane, mesi, o

Aspetti generali del file system Sistemi per la gestione di risorse anche per sempre, e non è accettabile che esse scompaiano quando termina il processo che le sta usando o quando un crollo del computer lo interrompe. Infine, più processi devono essere in grado di accedere contemporaneamente all informazione. Se questa è memorizzata nello spazio di indirizzi di un singolo processo, solo quel processo può accedervi. Perciò, è necessario rendere l informazione autonoma rispetto a qualsiasi processo. La soluzione più comune a questi problemi è memorizzare l informazione su dischi o altri mezzi esterni, in unità chiamate file. L informazione contenuta nei file non deve essere influenzata dalla creazione e terminazione di un processo, ossia deve essere persistente. Un file deve infatti scomparire soltanto quando il proprietario ne richiede esplicitamente la rimozione. Nel complesso, quella parte del sistema operativo che controlla i file è conosciuta come sistema per la gestione dei file (file management system, o più comunemente file system); essa è responsabile della loro creazione, cancellazione e modifica, del controllo dell accesso, e anche della gestione delle risorse usate dai file [FM91]. Molti dei più recenti sistemi operativi forniscono il supporto per svariati tipi di file system, tra cui è possibile scegliere a seconda delle specifiche esigenze. 1.1 Aspetti generali del file system Il file system serve ad archiviare i dati contenuti nel sistema, rendendo meno complessa la ricerca e l accesso ad essi da parte degli utenti. Dal punto di vista fisico, dispositivi non volatili come i dischi e i nastri magnetici o i dischi ottici forniscono la tecnologia di base per la memorizzazione dei dati. Dal punto di vista logico, il file system fornisce il modello di organizzazione che permette al sistema di localizzare i dati in qualunque punto su un dato dispositivo, grazie alla struttura della directory in cui sono memorizzati i singoli file [Mue03]. Una qualunque implementazione di file system deve essere in grado di eseguire alcuni compiti base, come creare, leggere, modificare e cancellare i file, e identificarli attraverso i loro nomi logici, senza dover specificare il nome 4

Sistemi per la gestione di risorse Aspetti generali del file system del dispositivo fisico [Nag97]. Inoltre, è necessario tenere traccia di dove sono memorizzati i file nel sistema tramite le directory, che ne contengono il nome, la locazione fisica in memoria secondaria, e altre informazioni importanti [FM91]. Altre funzionalità del file system comprendono l accesso ai file condivisi e la protezione dei file dai malfunzionamenti del sistema. 1.1.1 Concetto di file Un file è un tipo di dati astratto, definito e realizzato dal sistema operativo ; è la più piccola unità di memoria logica di cui può disporre l utente, e può essere visto come un insieme di informazioni, correlate e registrate nella memoria secondaria, cui è stato assegnato un nome [SGG02]. Il contenuto di un file può rappresentare programmi o dati, e possedere o meno una struttura. Alcuni sistemi operativi distinguono i file a seconda del tipo, che può essere incluso come parte del nome, e li gestiscono in relazione alla loro struttura attraverso un insieme di operazioni specifiche. Questo approccio può essere utile in quanto risparmia del lavoro ai programmatori, ma un numero troppo grande di tipi gestiti porta ad un aumento eccessivo della dimensione del sistema; in generale tutti i sistemi operativi prevedono almeno un tipo, quello dei file eseguibili [Tan01]. In genere, un file è formato da una sequenza di record 1 il cui significato è definito dal creatore e dall utente del file stesso. Tutte le funzioni di I/O di base operano in termini di blocchi di dimensione fissa, i quali dipendono alla struttura del disco e solitamente non corrispondono ai record logici. Per poter considerare il file come una sequenza di blocchi, si procede al cosiddetto impaccamento, che può essere effettuato dal sistema operativo come dal programma di applicazione, e che consiste nel riunire un certo numero di record logici fino ad ottenere una dimensione pari a quella del blocco fisico. Questo però porta al fenomeno della frammentazione interna: poiché ad ogni file viene assegnato un numero di record logici che deve essere multiplo 1 Un record è un elemento logico, di lunghezza fissa o variabile; può essere un bit, un byte o una riga, ossia una sequenza di byte che termina con un simbolo speciale. 5

Aspetti generali del file system Sistemi per la gestione di risorse della dimensione del blocco fisico, spesso parte dell ultimo blocco finisce per essere sprecato. Tutti i file system soffrono di questo problema, in maniera tanto più grave quanto maggiore è la dimensione dei blocchi. A seconda del sistema operativo in uso, un file può avere diversi attributi o metadati, cioè dati che riguardano i dati. Si tratta di informazioni che riguardano il file ma che non fanno parte dei byte che lo compongono [Gia98], e generalmente comprendono: Nome del file. È l unica informazione in formato leggibile dall uomo. Viene usato come riferimento per accedere al file, rendendolo indipendente dal processo, dall utente e dal sistema. Identificatore. Viene impiegato dal sistema per identificare il file all interno del file system; di solito è un numero. Tipo. Questo attributo è presente nei sistemi che gestiscono i tipi. Puntatore alla locazione fisica. Serve per individuare il file all interno del dispositivo, e il dispositivo stesso. Dimensione attuale del file. Può essere presente anche la dimensione massima consentita. Informazioni per la protezione. Controllano chi può leggere, scrivere o eseguire il file. Informazioni sull ora, data e identificazione dell utente. Sono informazioni, dette anche timestamp, relative al momento della creazione e dell ultima modifica, utili per la protezione e il monitoraggio dell utilizzo del file. Queste informazioni sono contenute nella struttura della directory, che deve essere non volatile e perciò sta in memoria secondaria [FM91]. Il sistema operativo mette a disposizione alcune chiamate di sistema che possono essere richieste per un file, tra le quali si trovano alcune operazioni di base: 6 Creazione di un file. Viene allocato lo spazio e in seguito viene creato, nella directory opportuna, un elemento che rappresenta il file.

Sistemi per la gestione di risorse Aspetti generali del file system Scrittura di un file. Si accede al file specificandone il nome, per trovare l elemento nella directory, e la posizione in cui scrivere all interno del file. Quest ultima è individuata da un apposito puntatore di scrittura, aggiornato ad ogni operazione. Lettura di un file. Si accede al file specificandone il nome, per trovare l elemento nella directory, e la posizione nella memoria dove collocare il blocco successivo, usando un apposito puntatore di lettura. Questo viene aggiornato ad ogni operazione e serve per individuare la locazione, all interno del file, in cui avverrà la successiva lettura 2. Riposizionamento o seek in un file. Non viene eseguita nessuna operazione di I/O. Viene cercato nella directory l elemento desiderato, di cui viene aggiornato il puntatore alla posizione corrente. Cancellazione di un file. Viene trovato nella directory l elemento relativo al file. In seguito viene rilasciato lo spazio occupato, rendendolo così nuovamente disponibile. Infine viene eliminato l elemento della directory. Troncamento di un file. Questa operazione è usata per cancellare il contenuto di un file, rilasciando lo spazio occupato, mantenendone però gli attributi, tranne la lunghezza che viene azzerata. Queste operazioni primitive possono essere combinate per creare nuove funzioni, ad esempio per copiare un file. Altre operazioni possono essere l aggiunta di informazioni alla fine di un file, la ridenominazione di un file, la lettura e la definizione degli attributi di un file. Come si è visto, molte operazioni richiedono l individuazione, all interno della directory, dell elemento relativo al file. Alcuni sistemi evitano questa continua ricerca adoperando una chiamata di sistema open ed una tabella dei file aperti. La chiamata di sistema open è invocata quando si comincia ad usare un file, e prende in input il nome del file, di cui cerca l elemento nella directory, ed eventuali informazioni sul modo di accesso (creazione, sola lettura, lettura e scrittura), chiamate diritti di accesso, che servono per decidere se consentire 2 Poiché di solito in un dato istante un processo o scrive o legge, entrambe le operazioni di scrittura e lettura possono usare un unico puntatore alla posizione corrente del file. 7

Aspetti generali del file system Sistemi per la gestione di risorse o meno le successive operazioni di I/O; dopo aver controllato i permessi relativi al file, inserisce nella tabella dei file aperti un puntatore all elemento, che rappresenta la posizione del file nel disco. Per le successive operazioni di I/O, il file sarà individuato da un indice nella tabella, senza dover eseguire nuovamente la ricerca. Quando il file non è più usato, viene invocata la chiamata di sistema close, che si occupa di rimuovere il relativo elemento dalla tabella. Possono esistere due livelli di tabelle di file aperti: una per ciascun processo e una per il sistema. La tabella di un processo contiene informazioni sui file aperti da quel processo, come il puntatore alla posizione corrente del file o i diritti di accesso. Ciascun elemento di questa tabella punta alla tabella di sistema, che contiene le informazioni indipendenti dai processi, come la posizione del file nel disco, i timestamp e le dimensioni dei file. Un contatore dei file aperti tiene il conto delle chiamate open e close effettuate, in modo da potersi accorgere quando, una volta che tutti i processi hanno chiuso il file, è possibile rimuovere la relativa voce dalla tabella, e riutilizzarne quindi gli elementi. Alcuni sistemi operativi forniscono gli strumenti per eseguire il locking di un file aperto, o di alcune sue parti, da parte di un processo, con lo scopo di impedire ad altri processi di accedervi. Solitamente il lock è esclusivo; ciò significa che soltanto un processo per volta può acquisirlo, ad esempio per eseguire un operazione di scrittura. In certi casi si può ottenere invece un lock condiviso, tale cioè che più processi possono acquisirlo allo stesso tempo, ad esempio per un operazione di lettura. Se il meccanismo di locking è mandatory, è il sistema operativo che deve garantirne l integrità; se è advisory, sarà invece compito degli sviluppatori di software assicurarsi che il processo acquisisca il lock del file prima di accedervi. Il primo schema è adottato dai sistemi Windows, il secondo da quelli Unix [SGG05]. Nel momento in cui si vuole usare un file, è necessario trasferire in memoria le informazioni che contiene. Il metodo più semplice e comune per accedere all informazione è l accesso sequenziale, che si ispira al modello di file tipico del nastro magnetico. Le informazioni vengono elaborate in ordine, un record dopo l altro a partire dall inizio del file. L operazione di lettura (read next) legge la prossima 8