GlusterFS Tutorial · 3 min read · Feb 04, 2026

Striping Across Four Storage Nodes With GlusterFS On Debian Lenny

Questo tutorial mostra come fare striping dei dati (segmentazione di dati logicamente sequenziali, come un singolo file, in modo che i segmenti possano essere assegnati a più dispositivi fisici in modo round-robin e quindi scritti in modo concorrente) su quattro server di archiviazione singoli (che eseguono Debian Lenny) con GlusterFS. Il sistema client (anch’esso Debian Lenny) sarà in grado di accedere all’archiviazione come se fosse un filesystem locale. GlusterFS è un file system clusterizzato in grado di scalare fino a diversi petabyte. Aggrega vari mattoni di archiviazione su Infiniband RDMA o TCP/IP in un grande file system di rete parallelo. I mattoni di archiviazione possono essere costituiti da qualsiasi hardware commerciale, come server x86-64 con RAID SATA-II e HBA Infiniband.

Si prega di notare che questo tipo di archiviazione non fornisce alcuna funzionalità di alta disponibilità/tolleranza ai guasti, come sarebbe il caso con l’archiviazione replicata.

Non rilascio alcuna garanzia che questo funzionerà per te!

1 Nota Preliminare

In questo tutorial utilizzo cinque sistemi, quattro server e un client:

  • server1.example.com: indirizzo IP 192.168.0.100 (server)
  • server2.example.com: indirizzo IP 192.168.0.101 (server)
  • server3.example.com: indirizzo IP 192.168.0.102 (server)
  • server4.example.com: indirizzo IP 192.168.0.103 (server)
  • client1.example.com: indirizzo IP 192.168.0.104 (client)

Tutti e cinque i sistemi dovrebbero essere in grado di risolvere i nomi host degli altri sistemi. Se ciò non può essere fatto tramite DNS, dovresti modificare il file /etc/hosts in modo che appaia come segue su tutti e cinque i sistemi:

vi /etc/hosts

| 127.0.0.1 localhost.localdomain localhost 192.168.0.100 server1.example.com server1 192.168.0.101 server2.example.com server2 192.168.0.102 server3.example.com server3 192.168.0.103 server4.example.com server4 192.168.0.104 client1.example.com client1 # Le seguenti righe sono desiderabili per host compatibili con IPv6 ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts |

(È anche possibile utilizzare indirizzi IP invece di nomi host nella configurazione seguente. Se preferisci utilizzare indirizzi IP, non devi preoccuparti se i nomi host possono essere risolti o meno.)

2 Configurazione Dei Server GlusterFS

server1.example.com/server2.example.com/server3.example.com/server4.example.com:

GlusterFS non è disponibile come pacchetto Debian per Debian Lenny, quindi dobbiamo compilarlo noi stessi. Prima installiamo i prerequisiti:

aptitude install sshfs build-essential flex bison byacc libdb4.6 libdb4.6-dev

Poi scarichiamo l’ultima versione di GlusterFS da http://www.gluster.org/download.php e la compiliamo come segue:

cd /tmp  
wget http://ftp.gluster.com/pub/gluster/glusterfs/2.0/LATEST/glusterfs-2.0.1.tar.gz  
tar xvfz glusterfs-2.0.1.tar.gz  
cd glusterfs-2.0.1  
./configure --prefix=/usr > /dev/null
server1:/tmp/glusterfs-2.0.1# ./configure --prefix=/usr > /dev/null  
  
GlusterFS configure summary  
===========================  
FUSE client        : no  
Infiniband verbs   : no  
epoll IO multiplex : yes  
Berkeley-DB        : yes  
libglusterfsclient : yes  
mod_glusterfs      : no ()  
argp-standalone    : no  
  
server1:/tmp/glusterfs-2.0.1#
make && make install  
ldconfig

Il comando

glusterfs --version

dovrebbe ora mostrare la versione di GlusterFS che hai appena compilato (2.0.1 in questo caso):

server1:/tmp/glusterfs-2.0.1# glusterfs --version  
glusterfs 2.0.1 built on May 29 2009 17:23:10  
Repository revision: 5c1d9108c1529a1155963cb1911f8870a674ab5b  
Copyright (c) 2006-2009 Z RESEARCH Inc.   
GlusterFS comes with ABSOLUTELY NO WARRANTY.  
You may redistribute copies of GlusterFS under the terms of the GNU General Public License.  
server1:/tmp/glusterfs-2.0.1#

Successivamente creiamo alcune directory:

mkdir /data/  
mkdir /data/export  
mkdir /data/export-ns  
mkdir /etc/glusterfs

Ora creiamo il file di configurazione del server GlusterFS /etc/glusterfs/glusterfsd.vol che definisce quale directory sarà esportata ( /data/export) e quale client è autorizzato a connettersi ( 192.168.0.104 = client1.example.com):

vi /etc/glusterfs/glusterfsd.vol

| volume posix type storage/posix option directory /data/export end-volume volume locks type features/locks subvolumes posix end-volume volume brick type performance/io-threads option thread-count 8 subvolumes locks end-volume volume server type protocol/server option transport-type tcp/server option auth.addr.brick.allow 192.168.0.104 subvolumes brick end-volume |

Si prega di notare che è possibile utilizzare caratteri jolly per gli indirizzi IP (come 192.168.*) e che è possibile specificare più indirizzi IP separati da virgola (ad esempio 192.168.0.104,192.168.0.105).

Successivamente creiamo i collegamenti di avvio del sistema per lo script init di glusterfsd…

update-rc.d glusterfsd defaults

… e avviamo glusterfsd:

/etc/init.d/glusterfsd start
Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.