Google File System

Da Wikipedia, l'enciclopedia libera.
Curly Brackets.svg
A questa voce o sezione va aggiunto il template sinottico {{File system}}
Per favore, aggiungi e riempi opportunamente il template e poi rimuovi questo avviso.
Per le altre pagine a cui aggiungere questo template, vedi la relativa categoria.

Il Google File System (GFS) è un file system proprietario distribuito e sviluppato da Google per proprio uso.

Caratteristiche[modifica | modifica sorgente]

Il GFS è ottimizzato per l'immagazzinamento dei dati di Google. È chiamato anche "BigFiles", ed è stato una delle prime tecnologie sviluppate dai fondatori di Google Larry Page e Sergey Brin, quando ancora studiavano a Stanford. I dati di Google sono generati dai vari servizi offerti, tra cui la ricerca nel web, e necessitano di essere trattati e conservati con tecnologie non convenzionali, essendo di dimensioni enormi. A causa della loro importanza vengono immagazzinati in modo permanente, in file di dimensioni di circa 100GB, che molto raramente vengono eliminati, sovrascritti o "ristretti". I file vengono solitamente resi disponibili alla sola lettura. Il file system è anche progettato e ottimizzato per l'avvio nei cluster computer di Google, i nodi che consistono di economici ed indispensabili computer, che richiedono precauzioni a causa dell'alto tasso di fallimento dei singoli nodi e la conseguente perdita di dati.

Tipi di nodi[modifica | modifica sorgente]

Esistono due tipi di nodi: i nodi "Master" e i "Chunkserver". I Chunkserver conservano i file di dati, con ogni singolo file spezzato in "chunk" di 64 megabyte, similmente ai cluster o ai settori dei normali file system. Ogni chunk è assegnato alla stessa partizione a 64 bit, e la mappatura dei chunk dei vari file è salvata. Ogni chunk, inoltre, è replicato periodicamente in ogni parte del network, con un'esistenza contemporanea di almeno tre copie dello stesso chunk, ma ancora di più per i file che hanno una grossa domanda o richiesta di maggiore disponibilità.

Server Master[modifica | modifica sorgente]

I server Master hanno competenze diverse: solitamente non memorizzano i chunk, ma piuttosto tutti i metadati associati ai chunk, come le tabelle con la mappatura delle partizioni a 64 bit per registrare la posizione dei file e i file che vengono sostituiti, le posizioni delle copie dei chunk, e quali processi stanno leggendo e/o scrivendo particolari chunk. Inoltre, prendono uno snapshot del chunk adatto alla replicazione, quando si rileva che il numero di copie di un chunk è minore del minimo prestabilito.

Metadati[modifica | modifica sorgente]

I metadati vengono conservati nello stato corrente dai server Master che periodicamente riceve aggiornamenti da ogni server chunk (detti "Heart-Beat Messages"). I permessi per le modifiche dei file sono controllati da un sistema e concessi per un tempo limitato, in cui nessun altro processo può accedere al chunk. Il Chunkserver proprietario del chunk modificato, invia i cambiamenti ai chunkserver aventi le copie di backup. I cambiamenti non sono salvati finché tutti i Chunkserver non garantiscano il compimento dell'operazione. I programmi accedono al chunk dopo aver ottenuto dal server Master la posizione del chunk desiderato; se il chunk non è utilizzato, il Master replica con le posizioni, e il programma riceve i dati direttamente dal chunkserver (similmente a Kazaa e i suoi supernodi).

Implementazioni[modifica | modifica sorgente]

Diversamente da molti File System, il GFS non è implementato nel kernel del sistema operativo, ma è disponibile come libreria.

Collegamenti esterni[modifica | modifica sorgente]