Quale file system distribuito come backend per il cloud computing?


11

Ho un cloud di base in esecuzione su Ubuntu Server (9.04) ed Eucalyptus. Walrus (implementazione S3 compatibile con API di Eucalyptus) archivia i file sul controller cloud. Tuttavia, ciascuno degli altri 4 server ha 1 TB di spazio di archiviazione in gran parte inutilizzato. Sto cercando un modo per raggruppare tutto lo spazio di archiviazione al fine di utilizzare tutte le risorse disponibili. Ho cercato varie opzioni tra cui PVFS, Lustre, HDFS (Hadoop).

I miei unici requisiti sono che deve essere scalabile e che funziona bene su Ubuntu. Gradirei avere notizie da chiunque abbia esperienza con tali tecnologie e non vedo l'ora di ricevere i tuoi suggerimenti.


Se non fosse necessario Ubuntu, direi ZFS.
Brad Gilbert,

3
Tranne il fatto che ZFS non è un filesystem in cluster.
Mark R,

Risposte:


5

Anche se non l'ho implementato personalmente da nessuna parte nei nostri sistemi, ho osservato Gluster in modo piuttosto esteso . Conosco alcune persone in alcuni siti di grandi dimensioni che usano questo e apparentemente funziona davvero bene. Lo usano in produzione per alcune applicazioni HPC pesanti.


2

GlusterFS mi sembrerebbe la soluzione ideale. Per il ragazzo che afferma che Gluster si impegna molto per creare, devo dire che probabilmente non ci ha mai provato. A partire da Gluster 3.2 le utility di configurazione sono davvero fantastiche e sono necessari 2 o 3 comandi per aumentare e condividere il volume del gluster sulla rete. Il montaggio dei volumi del gluster è altrettanto semplice.

Tra i lati positivi, offre anche molta più flessibilità rispetto a NFS. Fa striping, relication, georeplication, è ovviamente conforme a POSIX e così via. C'è un'estensione chiamata HekaFS, che aggiunge anche SSL e meccanismi di autenticazione più avanzati, che è probabilmente interessante per il cloud computing. Inoltre si ridimensiona! È F / OSS ed è sviluppato da RedHat che ha recentemente acquistato Gluster.


1

Hai mai visto mogileFS? http://danga.com/mogilefs/

Non è un file system in senso tradizionale, ma è utile per distribuire i dati di file in un cluster (tenendo conto della replica e della ridondanza).

Se stai offrendo file per un'applicazione web avrai bisogno di qualcosa per servire i file. Vorrei suggerire uno script PHP che utilizza la richiesta HTTP come chiave di ricerca per trovare il file desiderato nel mogile FS. È quindi possibile leggere il contenuto del file in un buffer ed echo / stamparlo.

MogileFS è già piuttosto veloce, ma puoi combinare mogileFS con memcache per accelerare l'accesso ai file più comunemente usati.


Mi sembra di ricordare che MogileFS aveva un singolo punto di errore, nel caso del nodo dei metadati. HDFS ha un problema simile.
David Pashley,

MogileFS sembra piuttosto interessante e la sua replica e ridondanza sono l'ideale, tuttavia sembrerebbe non essere adatto per un uso generale poiché le applicazioni devono essere consapevoli del fatto che sono in esecuzione su di esso. Un filesystem più tradizionale in base al quale le applicazioni possono essere agnostiche di FS sarebbe più adatto.
Jaunty,

1
MogileFS può avere diversi tracker in esecuzione e si può avere mysql di failover nel backend. In questo modo è possibile rimuovere tutti i singoli punti di errore.
davidsheldon

1

Con Lustre devi avere un kernel speciale sui server e vorrei che i server fossero solo server e nient'altro.

Stranamente la risposta più sana molto bene è NFS. Abbiamo usato NFS sul cloud di Amazon. Potrebbe non essere scalabile come alcuni file system, ma la semplicità non dovrebbe essere trascurata. Uno spazio con un solo nome probabilmente non vale lo sforzo che sarebbe necessario per implementare.


1

Stai ancora cercando in HDFS? Uno dei ragazzi di Cloudera ha tenuto un discorso a VelocityConf quest'anno su Hadoop e HDFS incentrato sulla gestione di cluster di big data, quindi ha parlato un po 'di HDFS. Le diapositive sono piuttosto istruttive. Non ho lavorato personalmente con HDFS, ma ho parlato con alcune persone casuali di Velocity che lo usano su Ubuntu per fare varie analisi dei dati.


1

Mettere una sorta di filesystem condiviso dietro un ambiente di virtualizzazione è abbastanza comune. Hai molte scelte, a seconda di ciò che stai cercando di realizzare.

La soluzione più semplice è probabilmente NFS, perché sarà supportata in modo nativo da qualsiasi distribuzione tu stia eseguendo. NFS può funzionare ragionevolmente bene come file system back-end di virtualizzazione, anche se non sarà la cosa più veloce in circolazione.

Se stai eseguendo un cluster RedHat (o derivato), avrai un buon supporto immediato per GFS2, il filesystem cluster di RedHat. Questo non si espande fino a centinaia di nodi, ma va bene per i cluster più piccoli.

Oltre a ciò, stai iniziando a entrare nella gamma di cose come Lustre, Glusterfs, GPFS e così via. Questi sono tutti filesystem paralleli ad alte prestazioni, ma richiedono molto più lavoro per la configurazione rispetto alle altre opzioni qui. Se hai un ambiente di grandi dimensioni, potrebbe valere la pena guardarli.


1

sarei d'accordo con @larsks in quanto NFS è l'opzione migliore; impostare alcuni target iSCSI, NFS, fatto. questo scalerà a circa 5-10 nodi; YMMV basato su I / O, capacità di rete, ecc. (In alternativa, impostare iSCSI con supporto I / O multipath).

Se hai bisogno di qualcosa su 20+ nodi, potresti voler esaminare Ceph . Lustre è promettente e stabile, ma è un prodotto Oracle (F / OSS) e ho antipatie personali contro Oracle. :)

Ceph è anche abbastanza attivo; la versione più recente è stata 5 giorni fa.


Lustre non è più sotto l'ombrello di Oracle. Vedi whamcloud.com
utopiabound il

1

XtreemFS potrebbe essere una soluzione per te. È abbastanza semplice da installare e configurare, ci sono anche pacchetti per Ubuntu.



0

Non sei sicuro di quello che stai facendo, ma suona come un'applicazione potenzialmente interessante per CouchDB .


0

Potresti provare PVFS2 . È molto più facile da installare rispetto a Lustre e generalmente più veloce di Glustre.


più veloce di Gluster? puoi condividere dati relativi alle prestazioni?
John-ZFS,

Non ho benchmark recenti a portata di mano. Nel 2008, Gluster era molto più lento di Lustre, mentre PVFS2 era solo leggermente più lento. Al giorno d'oggi potrebbe essere diverso, forse lo confronterò.
Wazoox,

grazie, se fai benchmark, per favore fatemelo sapere. maruti.j@gmail.com oppure puoi scrivere un post su serverfault a beneficio di tutti
John-ZFS
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.