SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Virtualizzazione e Network Management Open Source
Virtualizzazione e Network Management Open SourceVirtualizzazione e Network Management Open Source
Virtualizzazione e Network Management Open SourceMarco Vanino
 
May 2010 - Infinispan
May 2010 - InfinispanMay 2010 - Infinispan
May 2010 - InfinispanJBug Italy
 
PostgreSQL: Archtettura per la gestione dei pro
PostgreSQL: Archtettura per la gestione dei proPostgreSQL: Archtettura per la gestione dei pro
PostgreSQL: Archtettura per la gestione dei proEnrico Pirozzi
 
JBoss Data Grid Tech Lab
JBoss Data Grid Tech LabJBoss Data Grid Tech Lab
JBoss Data Grid Tech LabUgo Landini
 
Openday - PostgreSQL: primi passi con Json/Jsonb
Openday - PostgreSQL: primi passi con Json/Jsonb Openday - PostgreSQL: primi passi con Json/Jsonb
Openday - PostgreSQL: primi passi con Json/Jsonb PgTraining
 
introduzione_a_pfSense
introduzione_a_pfSenseintroduzione_a_pfSense
introduzione_a_pfSenseMassimo Giaimo
 
Claudio Cardinali - Virtualizzazione. Di tutti. Per tutti. - LINUX LTSP KVM S...
Claudio Cardinali - Virtualizzazione. Di tutti. Per tutti. - LINUX LTSP KVM S...Claudio Cardinali - Virtualizzazione. Di tutti. Per tutti. - LINUX LTSP KVM S...
Claudio Cardinali - Virtualizzazione. Di tutti. Per tutti. - LINUX LTSP KVM S...Claudio Cardinali
 
Hacking Access Point con Firmware Open Source
Hacking Access Point con Firmware Open SourceHacking Access Point con Firmware Open Source
Hacking Access Point con Firmware Open SourceClaudio Cardinali
 
Docker Fudamentals
Docker FudamentalsDocker Fudamentals
Docker Fudamentalsmvetro
 
Back to Basics 4: Introduzione al partizionamento orizzontale (sharding)
Back to Basics 4: Introduzione al partizionamento orizzontale (sharding)Back to Basics 4: Introduzione al partizionamento orizzontale (sharding)
Back to Basics 4: Introduzione al partizionamento orizzontale (sharding)MongoDB
 
Open Source Day 2015 - DBaaS con Docker: un caso di studio
Open Source Day 2015 - DBaaS con Docker: un caso di studioOpen Source Day 2015 - DBaaS con Docker: un caso di studio
Open Source Day 2015 - DBaaS con Docker: un caso di studioPar-Tec S.p.A.
 
PostgreSQL: Integrità dei dati
PostgreSQL: Integrità dei datiPostgreSQL: Integrità dei dati
PostgreSQL: Integrità dei datiEnrico Pirozzi
 
Soluzioni per la nautica @ VMUGIT Meeting 20150529
Soluzioni per la nautica @ VMUGIT Meeting 20150529Soluzioni per la nautica @ VMUGIT Meeting 20150529
Soluzioni per la nautica @ VMUGIT Meeting 20150529VMUG IT
 

Mais procurados (19)

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

Semelhante a Glusterfs: un filesystem altamente versatile

Da Zero all'open per PA e PMI
Da Zero all'open per PA e PMIDa Zero all'open per PA e PMI
Da Zero all'open per PA e PMINaLUG
 
Jc06 Antonio Terreno Fluidtime
Jc06 Antonio Terreno FluidtimeJc06 Antonio Terreno Fluidtime
Jc06 Antonio Terreno FluidtimeAntonio Terreno
 
Giochiamo ai COW-boy : zfs & btrfs
Giochiamo ai COW-boy : zfs & btrfsGiochiamo ai COW-boy : zfs & btrfs
Giochiamo ai COW-boy : zfs & btrfsalberto fiaschi
 
Richiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatoriRichiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatoriFulvio Corno
 
Nagios in alta affidabilità con strumenti open source
Nagios in alta affidabilità con strumenti open sourceNagios in alta affidabilità con strumenti open source
Nagios in alta affidabilità con strumenti open sourceBabel
 
JBoss Clouds - JBug Roma october 2009
JBoss Clouds -  JBug Roma october 2009JBoss Clouds -  JBug Roma october 2009
JBoss Clouds - JBug Roma october 2009Sanne Grinovero
 
Cloud storage in azienda: perche` Riak ci e` piaciuto
Cloud storage in azienda: perche` Riak ci e` piaciutoCloud storage in azienda: perche` Riak ci e` piaciuto
Cloud storage in azienda: perche` Riak ci e` piaciutoBioDec
 
RiminiLUG. Mini Corso su Linux p2: Networking & Terminal
RiminiLUG. Mini Corso su Linux p2: Networking & TerminalRiminiLUG. Mini Corso su Linux p2: Networking & Terminal
RiminiLUG. Mini Corso su Linux p2: Networking & TerminalAlessandro Carichini
 
Network configuration - IPTables firewall
 Network configuration - IPTables firewall Network configuration - IPTables firewall
Network configuration - IPTables firewallFulvio Corno
 
Hadoop
HadoopHadoop
HadoopReply
 
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBPolyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBSteve Maraspin
 
MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 2
MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 2MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 2
MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 2MongoDB
 
CCI2018 - Iperconvergenza con Windows Server
CCI2018 - Iperconvergenza con Windows ServerCCI2018 - Iperconvergenza con Windows Server
CCI2018 - Iperconvergenza con Windows Serverwalk2talk srl
 
Back to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizioBack to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizioMongoDB
 
VMUGIT UC 2013 - 05b Telecom Italia View
VMUGIT UC 2013 - 05b Telecom Italia ViewVMUGIT UC 2013 - 05b Telecom Italia View
VMUGIT UC 2013 - 05b Telecom Italia ViewVMUG IT
 
VMUGIT UC 2013 - 05b Telecom Italia View
VMUGIT UC 2013 - 05b Telecom Italia ViewVMUGIT UC 2013 - 05b Telecom Italia View
VMUGIT UC 2013 - 05b Telecom Italia ViewVMUG IT
 
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle OpenstackMySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle OpenstackPar-Tec S.p.A.
 
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...Codemotion
 

Semelhante a Glusterfs: un filesystem altamente versatile (20)

Da Zero all'open per PA e PMI
Da Zero all'open per PA e PMIDa Zero all'open per PA e PMI
Da Zero all'open per PA e PMI
 
Jc06 Antonio Terreno Fluidtime
Jc06 Antonio Terreno FluidtimeJc06 Antonio Terreno Fluidtime
Jc06 Antonio Terreno Fluidtime
 
Giochiamo ai COW-boy : zfs & btrfs
Giochiamo ai COW-boy : zfs & btrfsGiochiamo ai COW-boy : zfs & btrfs
Giochiamo ai COW-boy : zfs & btrfs
 
Richiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatoriRichiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatori
 
Nagios in alta affidabilità con strumenti open source
Nagios in alta affidabilità con strumenti open sourceNagios in alta affidabilità con strumenti open source
Nagios in alta affidabilità con strumenti open source
 
JBoss Clouds - JBug Roma october 2009
JBoss Clouds -  JBug Roma october 2009JBoss Clouds -  JBug Roma october 2009
JBoss Clouds - JBug Roma october 2009
 
Cloud storage in azienda: perche` Riak ci e` piaciuto
Cloud storage in azienda: perche` Riak ci e` piaciutoCloud storage in azienda: perche` Riak ci e` piaciuto
Cloud storage in azienda: perche` Riak ci e` piaciuto
 
RiminiLUG. Mini Corso su Linux p2: Networking & Terminal
RiminiLUG. Mini Corso su Linux p2: Networking & TerminalRiminiLUG. Mini Corso su Linux p2: Networking & Terminal
RiminiLUG. Mini Corso su Linux p2: Networking & Terminal
 
Network configuration - IPTables firewall
 Network configuration - IPTables firewall Network configuration - IPTables firewall
Network configuration - IPTables firewall
 
Hadoop
HadoopHadoop
Hadoop
 
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBPolyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
 
MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 2
MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 2MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 2
MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 2
 
Progetto Netkit
Progetto NetkitProgetto Netkit
Progetto Netkit
 
CCI2018 - Iperconvergenza con Windows Server
CCI2018 - Iperconvergenza con Windows ServerCCI2018 - Iperconvergenza con Windows Server
CCI2018 - Iperconvergenza con Windows Server
 
Back to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizioBack to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizio
 
Foundation server
Foundation serverFoundation server
Foundation server
 
VMUGIT UC 2013 - 05b Telecom Italia View
VMUGIT UC 2013 - 05b Telecom Italia ViewVMUGIT UC 2013 - 05b Telecom Italia View
VMUGIT UC 2013 - 05b Telecom Italia View
 
VMUGIT UC 2013 - 05b Telecom Italia View
VMUGIT UC 2013 - 05b Telecom Italia ViewVMUGIT UC 2013 - 05b Telecom Italia View
VMUGIT UC 2013 - 05b Telecom Italia View
 
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle OpenstackMySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
 
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
Succo di lampone: come ottimizzare JAVA e PHP su un'architettura Raspberry Pi...
 

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