MooseFS è tollerante, file system di rete distribuito colpa che diffonde i dati su più server fisici che sono visibili per l'utente come una risorsa & nbsp; Per le operazioni di file standard MooseFS agisce come altri file system Unix-simili.:
& Nbsp; * una struttura gerarchica (albero delle directory)
& Nbsp; * attributi di file Stores POSIX (permessi, tempi di ultima accesso e modifica)
& Nbsp; * Supporta file speciali (dispositivi a blocchi e caratteri, tubi e prese)
& Nbsp; * collegamenti simbolici (nomi di file che punta al file, non necessariamente su MooseFS bersaglio) e hard link (diversi nomi di file che si riferiscono agli stessi dati su MooseFS)
& Nbsp; * L'accesso al file system può essere limitato in base all'indirizzo IP e / o password
Caratteristiche distintive di MooseFS sono:
& Nbsp; * Alta affidabilità (diverse copie dei dati possono essere memorizzati tra computer diversi)
& Nbsp; * La capacità è espandibile dinamicamente fissando nuovi computer / dischi
& Nbsp; * I file eliminati vengono conservati per un periodo di tempo configurabile (a livello di file system "Elimina")
& Nbsp; * istantanee coerenti di file, anche mentre il file viene scritto / accesso
MooseFS consiste di quattro componenti:
& Nbsp; * server di gestione (server master) & ndash; una singola macchina gestire l'intero filesystem, immagazzinare metadati per ogni file (informazioni sulle dimensioni, attributi e la posizione del file (s), comprese tutte le informazioni sui file non regolari, cioè directory, prese, tubi e dispositivi).
& Nbsp; * Server di dati (server chunk) - un numero qualsiasi di server commodity memorizzazione dei dati dei file e la sincronizzazione fra di loro (se un certo file dovrebbe esistere in più di una copia).
& Nbsp; * server di backup metadati (s) (server metalogger) - qualsiasi numero di server, tutti i changelog metadati negozio e scaricare periodicamente file di metadati principale; in modo da promuovere questi server al ruolo del server di Gestione quando primario master smette di funzionare.
& Nbsp; * I computer client che accedono (montaggio) i file in MooseFS - qualsiasi numero di macchine che utilizzano processi mfsmount per comunicare con il server di gestione (per ricevere e modificare i metadati del file) e con chunkservers (per lo scambio di dati reali del file).
mfsmount si basa sul meccanismo di FUSE (Filesystem in userspace), quindi MooseFS è disponibile su ogni sistema operativo con una implementazione FUSE lavoro (Linux, FreeBSD, MacOS X, ecc)
I metadati viene memorizzato nella memoria del server di gestione e simultaneamente memorizzato su disco (come un file binario aggiornato periodicamente e immediatamente aggiornato registri incrementali). Il principale file binario nonché i registri sono sincronizzati alle metaloggers (se presente).
File di dati è diviso in frammenti (pezzi) con un massimo di 64MiB ciascuna. Ogni pezzo è di per sé un file su dischi selezionati su server dati (chunkservers).
Elevata affidabilità si ottiene configurando i server di dati diversi a seconda dei casi di realizzare il valore "obiettivo" (numero di copie da tenere) fissati per il file specificato.
COME FUNZIONA IL SISTEMA
Tutte le operazioni di file su un computer client che ha montati MooseFS sono esattamente le stesse che sarebbero con altri file system. Il kernel del sistema operativo trasferisce tutte le operazioni sui file al modulo FUSE, che comunica con il processo mfsmount. Il processo mfsmount comunica attraverso la rete in seguito con il server e dati server che gestiscono server (chunk). Questo intero processo è completamente trasparente all'utente.
mfsmount comunica con il server di gestione ogni volta che è necessario un intervento su metadati del file:
& Nbsp; * la creazione di file
& Nbsp; * l'eliminazione di file
& Nbsp; * directory di lettura
& Nbsp; * di lettura e modifica di attributi
& Nbsp; * cambiare le dimensioni dei file
& Nbsp; * all'inizio della lettura o la scrittura dei dati
& Nbsp; * su ogni accesso ai file speciali su MFSMETA
mfsmount utilizza una connessione diretta con il server dati (server chunk) che memorizza il relativo blocco di un file. Quando si scrive un file, dopo aver terminato il processo di scrittura del server di gestione riceve informazioni da mfsmount per aggiornare la lunghezza di un file e l'ultima ora di modifica.
Inoltre, data server (server chunk) di comunicare tra loro per replicare i dati al fine di raggiungere il numero necessario di copie di un file su macchine diverse.
& Nbsp;
Tolleranza di errore
& Nbsp;
Comandi amministrativi consentono all'amministratore di sistema di specificare il "goal", o il numero di copie che dovrebbero essere mantenuti, a livello di singolo-directory o al file. Impostazione obiettivo a più ed aventi più di un server dati fornirà tolleranza di errore. Quando i dati di file è memorizzato in un numero di copie (su più di un server di dati), il sistema è resistente ai guasti o interruzioni di rete temporanee di un singolo server dati.
Questo, naturalmente, non si riferisce ai file con la "obiettivo" impostato a 1, nel qual caso il file esisterà solo su un unico server di dati, indipendentemente dal numero di dati server vengono distribuiti nel sistema.
Eccezionalmente file importanti possono avere il loro obiettivo impostato su un numero superiore a due, che consentono di questi file per essere resistente ad una ripartizione di più di un server alla volta.
In generale, l'impostazione per il numero di copie disponibili dovrebbe essere uno in più del numero previsto di server inaccessibili o out-of-order.
Nel caso in cui un singolo server dati si verifica un guasto o disconnessione dalla rete, i file memorizzati in essa che aveva almeno due copie, rimarrà accessibili da un altro server di dati. I dati che è ora 'sotto il suo obiettivo' verrà replicato su un altro server dati accessibili per fornire di nuovo il numero di copie.
Va notato che se il numero di server disponibili è inferiore al "obiettivo" impostato per un dato file, il numero di copie non può essere conservato. Allo stesso modo se ci sono lo stesso numero di server come l'obiettivo attualmente impostato e se un server di dati ha raggiunto il 100% della sua capacità, sarà in grado di iniziare a tenere una copia di un file che è ora sotto della soglia obiettivo causa un'altra data server andare offline. In questi casi, un nuovo server dati deve essere collegato al sistema non appena possibile, al fine di mantenere il numero desiderato di copie del file.
Un nuovo server dati può essere collegato al sistema in qualsiasi momento. La nuova capacità sarà immediatamente reso disponibile per l'uso per memorizzare i nuovi file o di tenere le copie replicate di file da altri server di dati.
Utilities amministrativi esistono per interrogare lo stato dei file all'interno del file system per determinare se uno qualsiasi dei file sono attualmente sotto il loro obiettivo (numero set di copie). Questa utilità può anche essere utilizzato per modificare l'impostazione obiettivo come richiesto.
I frammenti di dati memorizzati nei blocchi sono di versione, quindi ri-connessione di un server di dati con la copia precedente di dati (come se fosse stato offline per un periodo di tempo), non causa i file di diventare incoerente. Il server di dati si sincronizza per tenere le versioni attuali dei blocchi, dove verranno rimossi i blocchi obsoleti e lo spazio libero sarà riassegnato per contenere i nuovi pezzi.
Fallimenti di un computer client (che esegue il processo mfsmount) avranno alcuna influenza sulla coerenza del file system o sulle operazioni di un altro client. Nel peggiore dei casi i dati che non sono ancora stati inviati dal computer client non riuscita può essere perso.
& Nbsp;
PIATTAFORME
& Nbsp; MooseFS è disponibile su ogni sistema operativo con una implementazione FUSE di lavoro:
& Nbsp; * Linux (Linux 2.6.14 e fino ha il supporto FUSE incluso nel kernel ufficiale)
& Nbsp; * FreeBSD
& Nbsp; * OpenSolaris
& Nbsp; * MacOS X
Il server master, server di metalogger e chunkservers possono anche essere eseguiti su Solaris o Windows con Cygwin. Purtroppo senza fusibile non sarà possibile montare il file system all'interno di questi sistemi operativi
Cosa c'è di nuovo in questa versione:.
- < li> Le modifiche più importanti sono segnale fisso di movimentazione in moduli multithread, gol e trashtime limiti mfsexport.cfg, e un semplice controllo per i file di metadati scaricati.
Cosa c'è di nuovo nella versione 1.6.19:
- sono state introdotte modifiche sostanziali alla macchina metalogger e metarestore strumento per una migliore integrità dei metadati.
- È stata aggiunta una barra di avanzamento della scansione in CS.
- Il nome principale è ora risolto quando una connessione non riesce.
- Una nuova sessione viene creata quando il precedente è perduto.
- sono stati fatti un sacco di altre correzioni di bug e miglioramenti.
Cosa c'è di nuovo nella versione 1.6.17:
- In questa release abbiamo introdotto un sistema di gestione automatica della cache dei dati .
- E 'sufficiente aggiornare solo il server master (nessun cambiamento in chunk server' o clienti codice sono state fatte).
- Il meccanismo di cache del kernel è sempre esistito, ma fino ad ora la cache è stata sempre cancellata all'apertura di un file. Ora controlla MooseFS se cancellare o no verificando se il file è stato o meno modificato da un altro cliente. Diamo un'occhiata ad alcuni scenari.
- Primo scenario:
- 1. Computer A legge il file X
- 2. Computer B legge il file X
- 3. Computer A vuole leggere il file X - lasciamo la cache (il file non è stato modificato)
- Secondo scenario:
- 1. Computer A legge il file X
- 2. Computer A scrive nel file X
- 3. Computer A vuole tor leggere il file X - lasciamo la cache (il file è stato modificato, ma il computer A conosce queste modifiche)
- Terzo scenario:
- 1. Computer A legge il file X
- 2. Computer B scrive nel file X
- 3. Computer A vuole leggere il file X - qui abbiamo alla forza per svuotare la cache (perché i cambiamenti sono stati fatti da Computer B e Computer A non sapere su di loro)
- In ambienti reali primo e secondo scenari capita di gran lunga il più delle volte terza scenario e è per questo che è ragionevole lasciare il contenuto della cache e di ottenere prestazioni complessive del sistema.
- Naturalmente ci sono alcuni scenari medi (ma anche esistevano prima) come questo:
- 1. Computer A apre file di X e lo legge completamente (il file rimane nella cache)
- 2. Computer B modifica il file X
- 3. Computer A nuovamente legge il file X (ma senza chiudere o riaprire è - semplicemente spostando nella posizione 0 e rileggerlo)
- In questa situazione Computer A otterrebbe gli stessi dati come al punto 1, ma lo stesso è successo anche in MooseFS prima.
- è stato introdotto anche un nodatacache attributo che vieta di memorizzare nella cache un file. Dalla versione 1.6.17 il backup di file con nodatacache attributo si comportano come i file nelle versioni precedenti di MooseFS. Questo flag può essere utilizzato con strumenti mfsseteattr, mfsdeleattr e mfsgeteattr.
- Questa bandiera è stato aggiunto preventivamente e probabilmente non sarà necessario utilizzarlo. Se dopo qualche tempo sembra che questo è davvero inutile verrà eliminato. Ma se si trova ogni caso / scenario che richiede la disattivazione del meccanismo di cache automatica ti invitiamo a condividere con noi.
I commenti non trovato