GlusterFS Setup · 4 min read · Feb 04, 2026

Creare un server di archiviazione autonomo simile a NFS con GlusterFS su Fedora 13

Questo tutorial mostra come impostare un server di archiviazione autonomo su Fedora 13. Invece di NFS, utilizzerò GlusterFS qui. Il sistema client sarà in grado di accedere all’archiviazione come se fosse un filesystem locale. GlusterFS è un filesystem clusterizzato in grado di scalare fino a diversi petabyte. Aggrega vari mattoni di archiviazione su Infiniband RDMA o TCP/IP interconnessi in un grande filesystem di rete parallelo. I mattoni di archiviazione possono essere realizzati con qualsiasi hardware commerciale come server x86_64 con RAID SATA-II e HBA Infiniband.

Non rilascio alcuna garanzia che questo funzionerà per te!

1 Nota preliminare

In questo tutorial utilizzo due sistemi, un server e un client:

  • server1.example.com: indirizzo IP 192.168.0.100 (server)
  • client1.example.com: indirizzo IP 192.168.0.101 (client)

Entrambi i sistemi dovrebbero essere in grado di risolvere il nome host dell’altro sistema. Se ciò non può essere fatto tramite DNS, dovresti modificare il file /etc/hosts in modo che contenga le seguenti due righe su entrambi i sistemi:

vi /etc/hosts

| [...] 192.168.0.100 server1.example.com server1 192.168.0.101 client1.example.com client1 [...] |

(È 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 Impostazione del server GlusterFS

server1.example.com:

Il server GlusterFS è disponibile come pacchetto per Fedora 13, quindi possiamo installarlo come segue:

yum install glusterfs-server

Il comando

glusterfs --version

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

[root@server1 ~]# glusterfs --version  
glusterfs 2.0.9 built on Apr 11 2010 20:39:55  
Repository revision: v2.0.9  
Copyright (c) 2006-2009 Gluster Inc.   
GlusterFS viene fornito senza ALCUN GARANZIA.  
Puoi ridistribuire copie di GlusterFS secondo i termini della GNU General Public License.  
[root@server1 ~]#

Successivamente creiamo alcune directory:

mkdir /data/  
mkdir /data/export  
mkdir /data/export-ns

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

cp /etc/glusterfs/glusterfsd.vol /etc/glusterfs/glusterfsd.vol_orig  
cat /dev/null > /etc/glusterfs/glusterfsd.vol  
vi /etc/glusterfs/glusterfsd.vol

| volume posix type storage/posix option directory /data/export end-volume volume locks type features/locks option mandatory-locks on 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 option auth.addr.brick.allow 192.168.0.101 # Modifica e aggiungi l'elenco dei client autorizzati separati da virgola qui subvolumes brick end-volume |

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

Successivamente creiamo i collegamenti di avvio del sistema per il server GlusterFS e lo avviamo:

chkconfig --levels 35 glusterfsd on  
/etc/init.d/glusterfsd start

3 Impostazione del client GlusterFS

client1.example.com:

C’è un pacchetto rpm client GlusterFS per Fedora 13, ma il problema con esso è che riceverai errori come df: /mnt/glusterfs': Software caused connection abort o df:/mnt/glusterfs’: Transport endpoint is not connected quando provi ad accedere alla condivisione GlusterFS. Ecco perché costruiamo il client GlusterFS dalle sorgenti per evitare questi problemi.

Prima di costruire il client GlusterFS, installiamo le sue dipendenze:

yum groupinstall 'Development Tools'
yum groupinstall 'Development Libraries'
yum install libibverbs-devel fuse-devel

Poi scarichiamo le sorgenti di GlusterFS 2.0.9 (si prega di notare che questa è la stessa versione installata sul server!) e costruiamo GlusterFS come segue:

cd /tmp  
wget http://ftp.gluster.com/pub/gluster/glusterfs/2.0/LATEST/glusterfs-2.0.9.tar.gz  
tar xvfz glusterfs-2.0.9.tar.gz  
cd glusterfs-2.0.9  
./configure

Alla fine del comando ./configure, dovresti vedere qualcosa del genere:

[...]  
GlusterFS configure summary  
===========================  
FUSE client        : yes  
Infiniband verbs   : yes  
epoll IO multiplex : yes  
Berkeley-DB        : yes  
libglusterfsclient : yes  
argp-standalone    : no  
  
[root@client1 glusterfs-2.0.9]#
make && make install  
ldconfig

Controlla la versione di GlusterFS successivamente (dovrebbe essere 2.0.9):

glusterfs --version
[root@client1 glusterfs-2.0.9]# glusterfs --version  
glusterfs 2.0.9 built on Sep 27 2010 19:20:46  
Repository revision: v2.0.9  
Copyright (c) 2006-2009 Gluster Inc.   
GlusterFS viene fornito senza ALCUN GARANZIA.  
Puoi ridistribuire copie di GlusterFS secondo i termini della GNU General Public License.  
[root@client1 glusterfs-2.0.9]#

Poi creiamo le seguenti due directory:

mkdir /mnt/glusterfs  
mkdir /etc/glusterfs

Successivamente creiamo il file /etc/glusterfs/glusterfs.vol:

vi /etc/glusterfs/glusterfs.vol

| volume remote type protocol/client option transport-type tcp option remote-host server1.example.com # può essere IP o nome host option remote-subvolume brick end-volume volume writebehind type performance/write-behind option window-size 4MB subvolumes remote end-volume volume cache type performance/io-cache option cache-size 512MB subvolumes writebehind end-volume |

Assicurati di utilizzare il corretto nome host o indirizzo IP del server nella riga option remote-host!

Questo è tutto! Ora possiamo montare il filesystem GlusterFS su /mnt/glusterfs con uno dei seguenti due comandi:

glusterfs -f /etc/glusterfs/glusterfs.vol /mnt/glusterfs

oppure

mount -t glusterfs /etc/glusterfs/glusterfs.vol /mnt/glusterfs

Dovresti ora vedere la nuova condivisione negli output di…

mount
[root@client1 glusterfs-2.0.9]# mount  
/dev/mapper/vg_client1-lv_root on / type ext4 (rw)  
proc on /proc type proc (rw)  
sysfs on /sys type sysfs (rw)  
devpts on /dev/pts type devpts (rw,gid=5,mode=620)  
tmpfs on /dev/shm type tmpfs (rw)  
/dev/sda1 on /boot type ext4 (rw)  
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)  
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)  
/etc/glusterfs/glusterfs.vol on /mnt/glusterfs type fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)  
[root@client1 glusterfs-2.0.9]#

… e…

df -h
[root@client1 glusterfs-2.0.9]# df -h  
Filesystem            Size  Used Avail Use% Mounted on  
/dev/mapper/vg_client1-lv_root  
                       29G  2.6G   25G  10% /  
tmpfs                 185M     0  185M   0% /dev/shm  
/dev/sda1             194M   23M  161M  13% /boot  
/etc/glusterfs/glusterfs.vol  
                       29G  2.7G   25G  10% /mnt/glusterfs  
[root@client1 glusterfs-2.0.9]#

Invece di montare manualmente la condivisione GlusterFS sul client, potresti modificare /etc/fstab in modo che la condivisione venga montata automaticamente all’avvio del client.

Apri /etc/fstab e aggiungi la seguente riga:

vi /etc/fstab

| [...] /etc/glusterfs/glusterfs.vol /mnt/glusterfs glusterfs defaults 0 0 |

Per testare se il tuo /etc/fstab modificato funziona, riavvia il client:

reboot

Dopo il riavvio, dovresti trovare la condivisione negli output di…

df -h

… e…

mount

4 Link

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.