GlusterFS Setup · 4 min read · Feb 09, 2026

Creare un server di archiviazione autonomo simile a NFS con GlusterFS 3.0.x su Debian Squeeze

Questo tutorial mostra come impostare un server di archiviazione autonomo su Debian Squeeze. 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 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 appaia come segue su entrambi i sistemi:

vi /etc/hosts

| 127.0.0.1 localhost.localdomain localhost 192.168.0.100 server1.example.com server1 192.168.0.101 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 |

(È 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:

GlusterFS è disponibile come pacchetto per Debian Squeeze, quindi possiamo installarlo come segue:

apt-get install glusterfs-server

Il comando

glusterfs --version

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

root@server1:~# glusterfs --version  
glusterfs 3.0.5 built on Jul 13 2010 16:44:21  
Repository revision: v3.0.5  
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 qui l'elenco degli indirizzi IP (nomi) dei client autorizzati separati da virgola 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 es. 192.168.0.101,192.168.0.102).

Successivamente avviamo il server GlusterFS:

/etc/init.d/glusterfs-server start

3 Impostazione del client GlusterFS

client1.example.com:

Sul client, possiamo installare il client GlusterFS come segue:

apt-get install glusterfs-client

Quindi creiamo la seguente directory:

mkdir /mnt/glusterfs

Successivamente creiamo il file /etc/glusterfs/glusterfs.vol (facciamo prima un backup del file originale /etc/glusterfs/glusterfs.vol):

cp /etc/glusterfs/glusterfs.vol /etc/glusterfs/glusterfs.vol_orig  
cat /dev/null > /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 nome host o l’indirizzo IP del server corretto nella riga dell’opzione remote-host!

Ecco fatto! 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:~# mount  
/dev/sda1 on / type ext3 (rw,errors=remount-ro)  
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)  
proc on /proc type proc (rw,noexec,nosuid,nodev)  
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)  
udev on /dev type tmpfs (rw,mode=0755)  
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)  
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)  
fusectl on /sys/fs/fuse/connections type fusectl (rw)  
/etc/glusterfs/glusterfs.vol on /mnt/glusterfs type fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)  
root@client1:~#

… e…

df -h
root@client1:~# df -h  
Filesystem            Size  Used Avail Use% Mounted on  
/dev/sda1              29G  778M   27G   3% /  
tmpfs                 249M     0  249M   0% /lib/init/rw  
udev                  244M  100K  244M   1% /dev  
tmpfs                 249M     0  249M   0% /dev/shm  
/etc/glusterfs/glusterfs.vol  
                     29G  1.2G   27G   5% /mnt/glusterfs  
root@client1:~#

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,_netdev 0 0 |

Per testare se la tua modifica a /etc/fstab funziona, riavvia il client:

reboot

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

df -h

… e…

mount

Se modificare /etc/fstab non aiuta, annulla la tua modifica a /etc/fstab e aggiungi questa riga a /etc/rc.local invece (prima della riga exit 0):

vi /etc/rc.local

| [...] /bin/mount -t glusterfs /etc/glusterfs/glusterfs.vol /mnt/glusterfs [...] |

Questo assicura che la condivisione venga montata dopo che la rete è attiva.

4 Link

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.