際際滷

際際滷Share a Scribd company logo
GlusterFS: un file system parallelo
altamente versatile
Ivan Rossi
ivan@biodec.com

2013
Mi presento
BioDec S.r.l. 竪 una societ di informatica che, fin dalla
fondazione (2003), ha scelto di usare esclusivamente
software libero o open-source.
Tutte le attivit aziendali sono gestite senza usare
prodotti proprietari





Desktop e portatili



Private cloud



Networking & intranet



Filesystem distribuito.

Dettagli: http://www.biodec.com



2013

FerraraLUG,Linuxday2013
La richiesta

Ivan, ci serve una cartella condivisa 
(Tutto qua? Perch竪 mi chiami? Usa ... )

...da 40 Terabytes
(Vabb辿, allora 竪 meglio se ci penso un attimo)

2013
La soluzione canonica
Un SAN PVnRT
I dischi costano molto





una cifra ridicola

Cinque anni di vita





la migrazione dati ...



Quante licenze???



Un monolite



Si 竪 (gi) rotto pure lui

Molte valgono anche per un NAS
Sibilla basato su ZeFinalFS

2013
La soluzione eretica
Uno storage cluster
(software-defined storage*)

Aggregando diversi
server con un filesystem
distribuito posso creare
un NAS virtuale





Componenti standard
e/o non proprietari
(ndt. costa meno)



Scalabile



Maggiore resistenza
all'obsolescenza

*buzzword compliance
2013
La reazione
L'hanno presa bene
a) Ma cos'竪 questa strana roba?
b) Te sei matto!! Sta roba qui non la usa nessuno!!!
Aziende





Google, Yahoo, Amazon  (le solite)

Ricerca





CERN, NCAR, EMBL, EBI  (li hanno inventati)

Altri pericolosi sovversivi





Biblioteca Nazionale, Banca d'Italia

2013
Il candidato
GlusterFS
un file system distribuito





TCP/IP (10 GbE rocks!) o Infiniband



Alternative:


Ceph, Lustre, XtreemFS, MooseFS

scalabile ed elastico



http://gluster.org
http://gluster.org



esistono installazioni multi-petabytes



竪 possibile sia espandere che ridurre un
filesystem GlusterFS,


(竪 molto pi湛 semplice espandere)

Software libero





Supporto commerciale: RedHat (RHAS)

2013

FerraraLUG,Linuxday2013
GlusterFS features


File system Posix



Supporto ACL e quota



Esportabile nativamente, NFSv3, CIFS (con samba)



Peer-to-peer



Fault-tolerance (opportunamente configurato)



High availability (export nativo, CTDB)



Self-healing



Installazione molto semplice e veloce


Poi quando vuoi ottimizzare il tutto, un p嘆 meno

2013

FerraraLUG,Linuxday2013
Alcuni dettagli


Architettura a plugins



Componenti


Peers: componenti del cluster (glusterfs-server)



Brick: filesystem locale su cui opera GlusterFS



Translator: componente sw che opera su brick o
subvolume, e genera un subvolume con particolari
propriet.



Distribute, replicate, stripe: speciali translator che
generano configurazioni simil-RAID



Volume: il risultato finale, uno share glusterfs

2013

FerraraLUG,Linuxday2013
Semplice da installare


Procurarsi un paio di server


installarci glusterfs-server e far partire glusterfsd





Preparare filesystems per i brick (XFS)

Creare un trusted pool dei server




Usate i pacchetti di gluster.org (no distribuzioni)

gluster peer probe (numero.ip.del.server)

Creare un volume gluster





gluster volume create gv1 srv1.my.net:/export/brick1
srv2.my.net:/export/brick1
gluster volume start gv1; gluster volume info

Montare il filesystem distribuito


Usando NFS o il client nativo

2013

FerraraLUG,Linuxday2013
RAID-like




gluster volume create (vol) replica (n) stripe (m)
transport (tcp,rdma) server1:brick1 server2:brick2

Distribute



I files creati vengono scritti interamente su uno dei brick




Il default (replica 0 stripe 0)
Nessuna forma di ridondanza (JBOD ma bilanciato)

Replicate


I files vengono replicati interamente su diversi bricks




simile a un RAID1 (un insieme di RAID1 bilanciati)

Stripe


I files venfono spezzati in m stripes su m bricks

2013

FerraraLUG,Linuxday2013
Elasticit
Espandere un volume





gluster peer probe (server)



gluster volume add-brick (vol) (server:nuovobrick)



gluster volume rebalance (vol) fix-layout start

Ridurre un volume



1. gluster volume remove-brick (vol) (srv:brick) start
2. gluster volume remove-brick (vol) (srv:brick) status;
3. ...aspettare... ; repeat 2 until ready
4. gluster volume remove-brick (vol) (srv:brick) commit
5. gluster volume rebalance (vol) fix-layout start

2013
Peer-to-Peer
Nessun metadata server





I metadati sono immagazzinati negli extended
attributes del file system (xfs -i 512 raccomandato)



Localizzazione files deterministica (hashing)



Uso intensivo di caching lato client

Tutti i peer sono server Gluster & NFSv3





Non solo i peer che forniscono i bricks



Previsto anche CIFS nativo (v3.5?)

Accesso client





Il client nativo fornisce fault-tolerance e load-balancing



Il client NFS no, se non si usano sistemi esterni.

2013

FerraraLUG,Linuxday2013
NFS server disponibile e bilanciato: CTDB
CTDB (Cluster temporary DB) 竪 un progetto Samba





Andrew Tridgell (samba, rsync)

CTDB assicua la consistenza di dati e locks TDB





Molto veloce e leggero

CTDB dispone di High-Aavilability features





node monitoring,



node failover,



IP takeover

http://ctdb.samba.org
http://ctdb.samba.org

Accoppiato con un rrDNS ci permette di bilanciare e
rendere fault-tolerant le connessioni NFS ai peers
2013

FerraraLUG,Linuxday2013
Una nota di realismo
Con hardware scadente non si va fortissimo





La velocit sar funzione del componente pi湛 scadente
(come sempre!) che 竪 il networking nel 90% dei casi.

Le performance degradano molto con grandi numeri
di files piccoli





Anche una directory con 10.00 files flat 竪 un problema



traffico metadati

Peak performance richiede ottimizzazioni al kernel





Soprattutto con client nativo e replica




Deadline scheduler, TCP stacks

Nondimeno su 10 GbE, c'竪 chi ha fatto 800 MB/sec

2013
L'area scratch
Elaborazione dati (grossi data set bioinformatici)





In produzione da 4 anni



Evoluta nel tempo



Mai perso dei dati, nonostante il progetto

Il sistema





2x server Xeon (4 core) di 4 anni fa





2x GbE bonding
6x 2 TB HD (Raid-6)

GlusterFS 3.2



Semplice distribute (16 TB)
Accesso via client nativo

2013
La cartella condivisa
Due server





12 core Xeon E5



16x HD 3 TB (RAID)



2x GbE NIC bonding (user's clients)



1x 10 GbE NIC (data + KVM clients)

GlusterFS





Versione 3.4.x



Distribute + replica 2



Bricks su LVM

Acceduto via NFS (TCDB + round-robin DNS)



2013
Qualche numero
Accesso da macchina virtuale KVM





NFS su connessione 10 GbE



Test: Bonnie++

Version

1.96

Concurrency
Machine
KVM gl-nfs
Latency

------Sequential Output------ --Sequential Input- --Random1

-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--

Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP
8G

1495

98 247834 38

10098us

4661

178ms

600s

2013



2

3473

99 447219 35

60477us

11641us

/sec %CP
1476 186
4547ms
GRAZIE PER L'ATTENZIONE
Gluster community
http://gluster.org

Domande?

2013

FerraraLUG,Linuxday2013

More Related Content

Glusterfs: un filesystem altamente versatile

  • 1. GlusterFS: un file system parallelo altamente versatile Ivan Rossi ivan@biodec.com 2013
  • 2. Mi presento BioDec S.r.l. 竪 una societ di informatica che, fin dalla fondazione (2003), ha scelto di usare esclusivamente software libero o open-source. Tutte le attivit aziendali sono gestite senza usare prodotti proprietari Desktop e portatili Private cloud Networking & intranet Filesystem distribuito. Dettagli: http://www.biodec.com 2013 FerraraLUG,Linuxday2013
  • 3. La richiesta Ivan, ci serve una cartella condivisa (Tutto qua? Perch竪 mi chiami? Usa ... ) ...da 40 Terabytes (Vabb辿, allora 竪 meglio se ci penso un attimo) 2013
  • 4. La soluzione canonica Un SAN PVnRT I dischi costano molto una cifra ridicola Cinque anni di vita la migrazione dati ... Quante licenze??? Un monolite Si 竪 (gi) rotto pure lui Molte valgono anche per un NAS Sibilla basato su ZeFinalFS 2013
  • 5. La soluzione eretica Uno storage cluster (software-defined storage*) Aggregando diversi server con un filesystem distribuito posso creare un NAS virtuale Componenti standard e/o non proprietari (ndt. costa meno) Scalabile Maggiore resistenza all'obsolescenza *buzzword compliance 2013
  • 6. La reazione L'hanno presa bene a) Ma cos'竪 questa strana roba? b) Te sei matto!! Sta roba qui non la usa nessuno!!! Aziende Google, Yahoo, Amazon (le solite) Ricerca CERN, NCAR, EMBL, EBI (li hanno inventati) Altri pericolosi sovversivi Biblioteca Nazionale, Banca d'Italia 2013
  • 7. Il candidato GlusterFS un file system distribuito TCP/IP (10 GbE rocks!) o Infiniband Alternative: Ceph, Lustre, XtreemFS, MooseFS scalabile ed elastico http://gluster.org http://gluster.org esistono installazioni multi-petabytes 竪 possibile sia espandere che ridurre un filesystem GlusterFS, (竪 molto pi湛 semplice espandere) Software libero Supporto commerciale: RedHat (RHAS) 2013 FerraraLUG,Linuxday2013
  • 8. GlusterFS features File system Posix Supporto ACL e quota Esportabile nativamente, NFSv3, CIFS (con samba) Peer-to-peer Fault-tolerance (opportunamente configurato) High availability (export nativo, CTDB) Self-healing Installazione molto semplice e veloce Poi quando vuoi ottimizzare il tutto, un p嘆 meno 2013 FerraraLUG,Linuxday2013
  • 9. Alcuni dettagli Architettura a plugins Componenti Peers: componenti del cluster (glusterfs-server) Brick: filesystem locale su cui opera GlusterFS Translator: componente sw che opera su brick o subvolume, e genera un subvolume con particolari propriet. Distribute, replicate, stripe: speciali translator che generano configurazioni simil-RAID Volume: il risultato finale, uno share glusterfs 2013 FerraraLUG,Linuxday2013
  • 10. Semplice da installare Procurarsi un paio di server installarci glusterfs-server e far partire glusterfsd Preparare filesystems per i brick (XFS) Creare un trusted pool dei server Usate i pacchetti di gluster.org (no distribuzioni) gluster peer probe (numero.ip.del.server) Creare un volume gluster gluster volume create gv1 srv1.my.net:/export/brick1 srv2.my.net:/export/brick1 gluster volume start gv1; gluster volume info Montare il filesystem distribuito Usando NFS o il client nativo 2013 FerraraLUG,Linuxday2013
  • 11. RAID-like gluster volume create (vol) replica (n) stripe (m) transport (tcp,rdma) server1:brick1 server2:brick2 Distribute I files creati vengono scritti interamente su uno dei brick Il default (replica 0 stripe 0) Nessuna forma di ridondanza (JBOD ma bilanciato) Replicate I files vengono replicati interamente su diversi bricks simile a un RAID1 (un insieme di RAID1 bilanciati) Stripe I files venfono spezzati in m stripes su m bricks 2013 FerraraLUG,Linuxday2013
  • 12. Elasticit Espandere un volume gluster peer probe (server) gluster volume add-brick (vol) (server:nuovobrick) gluster volume rebalance (vol) fix-layout start Ridurre un volume 1. gluster volume remove-brick (vol) (srv:brick) start 2. gluster volume remove-brick (vol) (srv:brick) status; 3. ...aspettare... ; repeat 2 until ready 4. gluster volume remove-brick (vol) (srv:brick) commit 5. gluster volume rebalance (vol) fix-layout start 2013
  • 13. Peer-to-Peer Nessun metadata server I metadati sono immagazzinati negli extended attributes del file system (xfs -i 512 raccomandato) Localizzazione files deterministica (hashing) Uso intensivo di caching lato client Tutti i peer sono server Gluster & NFSv3 Non solo i peer che forniscono i bricks Previsto anche CIFS nativo (v3.5?) Accesso client Il client nativo fornisce fault-tolerance e load-balancing Il client NFS no, se non si usano sistemi esterni. 2013 FerraraLUG,Linuxday2013
  • 14. NFS server disponibile e bilanciato: CTDB CTDB (Cluster temporary DB) 竪 un progetto Samba Andrew Tridgell (samba, rsync) CTDB assicua la consistenza di dati e locks TDB Molto veloce e leggero CTDB dispone di High-Aavilability features node monitoring, node failover, IP takeover http://ctdb.samba.org http://ctdb.samba.org Accoppiato con un rrDNS ci permette di bilanciare e rendere fault-tolerant le connessioni NFS ai peers 2013 FerraraLUG,Linuxday2013
  • 15. Una nota di realismo Con hardware scadente non si va fortissimo La velocit sar funzione del componente pi湛 scadente (come sempre!) che 竪 il networking nel 90% dei casi. Le performance degradano molto con grandi numeri di files piccoli Anche una directory con 10.00 files flat 竪 un problema traffico metadati Peak performance richiede ottimizzazioni al kernel Soprattutto con client nativo e replica Deadline scheduler, TCP stacks Nondimeno su 10 GbE, c'竪 chi ha fatto 800 MB/sec 2013
  • 16. L'area scratch Elaborazione dati (grossi data set bioinformatici) In produzione da 4 anni Evoluta nel tempo Mai perso dei dati, nonostante il progetto Il sistema 2x server Xeon (4 core) di 4 anni fa 2x GbE bonding 6x 2 TB HD (Raid-6) GlusterFS 3.2 Semplice distribute (16 TB) Accesso via client nativo 2013
  • 17. La cartella condivisa Due server 12 core Xeon E5 16x HD 3 TB (RAID) 2x GbE NIC bonding (user's clients) 1x 10 GbE NIC (data + KVM clients) GlusterFS Versione 3.4.x Distribute + replica 2 Bricks su LVM Acceduto via NFS (TCDB + round-robin DNS) 2013
  • 18. Qualche numero Accesso da macchina virtuale KVM NFS su connessione 10 GbE Test: Bonnie++ Version 1.96 Concurrency Machine KVM gl-nfs Latency ------Sequential Output------ --Sequential Input- --Random1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP 8G 1495 98 247834 38 10098us 4661 178ms 600s 2013 2 3473 99 447219 35 60477us 11641us /sec %CP 1476 186 4547ms
  • 19. GRAZIE PER L'ATTENZIONE Gluster community http://gluster.org Domande? 2013 FerraraLUG,Linuxday2013