SlideShare 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

Ferrara LUG, Linuxday 2013
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

Ferrara LUG, Linuxday 2013
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

Ferrara LUG, Linuxday 2013
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

Ferrara LUG, Linuxday 2013
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

Ferrara LUG, Linuxday 2013
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

Ferrara LUG, Linuxday 2013
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

Ferrara LUG, Linuxday 2013
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

Ferrara LUG, Linuxday 2013
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

Ferrara LUG, Linuxday 2013

More Related Content

PDF
MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL Cluster
PDF
Docker - virtualizzazione leggera
PDF
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
PDF
Open Source Parallel Computing ltcsp
PDF
October 2009 - JBoss Cloud
ODP
Clustering Magento
PDF
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
PDF
Pgtraining bdr
MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL Cluster
Docker - virtualizzazione leggera
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
Open Source Parallel Computing ltcsp
October 2009 - JBoss Cloud
Clustering Magento
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
Pgtraining bdr

What's hot (19)

PDF
Proxmox VE
PDF
Virtualizzazione e Network Management Open Source
PDF
May 2010 - Infinispan
PDF
PostgreSQL: Archtettura per la gestione dei pro
PDF
PostgreSQL : Tuning
PDF
JBoss Data Grid Tech Lab
PDF
Openday - PostgreSQL: primi passi con Json/Jsonb
PDF
PfSense Cluster
PDF
Da 0 all'open per PA e PMI
PDF
introduzione_a_pfSense
PDF
Claudio Cardinali - Virtualizzazione. Di tutti. Per tutti. - LINUX LTSP KVM S...
ODP
Hacking Access Point con Firmware Open Source
PPTX
Docker Fudamentals
PPTX
Introduzione a Docker
ODP
Open@BNCF
PPTX
Back to Basics 4: Introduzione al partizionamento orizzontale (sharding)
PDF
Open Source Day 2015 - DBaaS con Docker: un caso di studio
PDF
PostgreSQL: Integrità dei dati
PDF
Soluzioni per la nautica @ VMUGIT Meeting 20150529
Proxmox VE
Virtualizzazione e Network Management Open Source
May 2010 - Infinispan
PostgreSQL: Archtettura per la gestione dei pro
PostgreSQL : Tuning
JBoss Data Grid Tech Lab
Openday - PostgreSQL: primi passi con Json/Jsonb
PfSense Cluster
Da 0 all'open per PA e PMI
introduzione_a_pfSense
Claudio Cardinali - Virtualizzazione. Di tutti. Per tutti. - LINUX LTSP KVM S...
Hacking Access Point con Firmware Open Source
Docker Fudamentals
Introduzione a Docker
Open@BNCF
Back to Basics 4: Introduzione al partizionamento orizzontale (sharding)
Open Source Day 2015 - DBaaS con Docker: un caso di studio
PostgreSQL: Integrità dei dati
Soluzioni per la nautica @ VMUGIT Meeting 20150529
Ad

Similar to Glusterfs: un filesystem altamente versatile (20)

PDF
Nagios in alta affidabilità con strumenti open source
PDF
BNCF Digital long term preservation: glusterfs
PDF
Analisi ed implementazione di file system distribuiti in ambiente GNU/Linux.
ODP
BioDec LinuxDay2012 Erlug
PDF
Foundation server
PDF
Foundation server
PDF
Implementazione di un ambiente in alta affidabilità
PDF
Analisi ed implementazione di file system distribuiti in ambiente GNU/Linux
PDF
Gestione dischi - File system - LVM
PDF
Google File System - GFS
PDF
The Google File System
PDF
Condivisione di dischi - NFS - Reti miste Windows/Linux - SMB e NetBIOS - Sam...
ODP
E va bene, passo a Linux. Da dove inizio?
PDF
Homemade Linux Server
PDF
Workshop – Il server FUSS: struttura, filosofia progettuale e casi d’uso
ODP
open source in bncf
PDF
Hosting e la suddivisione delle risorse: le tecnologie #TipOfTheDay
PDF
Giochiamo ai COW-boy : zfs & btrfs
PDF
Raspberry omv
ODP
Nagios in alta affidabilità con strumenti open source
BNCF Digital long term preservation: glusterfs
Analisi ed implementazione di file system distribuiti in ambiente GNU/Linux.
BioDec LinuxDay2012 Erlug
Foundation server
Foundation server
Implementazione di un ambiente in alta affidabilità
Analisi ed implementazione di file system distribuiti in ambiente GNU/Linux
Gestione dischi - File system - LVM
Google File System - GFS
The Google File System
Condivisione di dischi - NFS - Reti miste Windows/Linux - SMB e NetBIOS - Sam...
E va bene, passo a Linux. Da dove inizio?
Homemade Linux Server
Workshop – Il server FUSS: struttura, filosofia progettuale e casi d’uso
open source in bncf
Hosting e la suddivisione delle risorse: le tecnologie #TipOfTheDay
Giochiamo ai COW-boy : zfs & btrfs
Raspberry omv
Ad

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 Ferrara LUG, Linuxday 2013
  • 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 Ferrara LUG, Linuxday 2013
  • 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 Ferrara LUG, Linuxday 2013
  • 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 Ferrara LUG, Linuxday 2013
  • 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 Ferrara LUG, Linuxday 2013
  • 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 Ferrara LUG, Linuxday 2013
  • 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 Ferrara LUG, Linuxday 2013
  • 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 Ferrara LUG, Linuxday 2013
  • 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 Ferrara LUG, Linuxday 2013