Archiviazione · 4 min read · Jan 18, 2026
Archiviazione ad Alta Disponibilità Con GlusterFS 3.2.x Su Ubuntu 12.04 - Replicazione Automatica dei File Tra Due Server di Archiviazione
Archiviazione ad Alta Disponibilità Con GlusterFS 3.2.x Su Ubuntu 12.04 - Replicazione Automatica dei File (Mirror) Tra Due Server di Archiviazione
Versione 1.0
Autore: Falko Timme
Seguimi su Twitter
Questo tutorial mostra come impostare un’archiviazione ad alta disponibilità con due server di archiviazione (Ubuntu 12.04) che utilizzano GlusterFS. Ogni server di archiviazione sarà un mirror dell’altro server di archiviazione, e i file saranno replicati automaticamente tra entrambi i server di archiviazione. Il sistema client (anch’esso Ubuntu 12.04) 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 tramite 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.
Non rilascio alcuna garanzia che questo funzionerà per te!
1 Nota Preliminare
In questo tutorial utilizzo tre sistemi, due server e un client:
- server1.example.com: indirizzo IP 192.168.0.100 (server)
- server2.example.com: indirizzo IP 192.168.0.101 (server)
- client1.example.com: indirizzo IP 192.168.0.102 (client)
Poiché eseguiremo tutti i passaggi di questo tutorial con privilegi di root, possiamo o anteporre tutti i comandi di questo tutorial con la stringa sudo, oppure diventare root subito digitando
sudo suTutti e tre 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 tre 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 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 Impostazione Dei Server GlusterFS
server1.example.com/server2.example.com:
GlusterFS è disponibile come pacchetto per Ubuntu 12.04, quindi possiamo installarlo come segue:
apt-get install glusterfs-serverIl comando
glusterfsd --versiondovrebbe ora mostrare la versione di GlusterFS che hai appena installato (3.2.5 in questo caso):
root@server1:~# glusterfsd --version
glusterfs 3.2.5 built on Jan 31 2012 07:39:58
Repository revision: git://git.gluster.com/glusterfs.git
Copyright (c) 2006-2011 Gluster Inc.
GlusterFS viene fornito senza ALCUNA GARANZIA.
Puoi ridistribuire copie di GlusterFS secondo i termini della GNU General Public License.
root@server1:~# Se utilizzi un firewall, assicurati che le porte TCP 111, 24007, 24008, 24009-(24009 + numero di mattoni su tutti i volumi) siano aperte su server1.example.com e server2.example.com.
Successivamente dobbiamo aggiungere server2.example.com al pool di archiviazione fidato (si prega di notare che sto eseguendo tutti i comandi di configurazione di GlusterFS da server1.example.com, ma puoi anche eseguirli da server2.example.com perché la configurazione è replicata tra i nodi GlusterFS - assicurati solo di utilizzare i nomi host o gli indirizzi IP corretti):
server1.example.com:
Su server1.example.com, esegui
gluster peer probe server2.example.comroot@server1:~# gluster peer probe server2.example.com
Probe successful
root@server1:~#Lo stato del pool di archiviazione fidato dovrebbe ora essere simile a questo:
gluster peer statusroot@server1:~# gluster peer status
Number of Peers: 1Hostname: server2.example.com
Uuid: 7cd93007-fccb-4fcb-8063-133e6ba81cd9
State: Peer in Cluster (Connected)
root@server1:~#Successivamente creiamo la condivisione chiamata testvol con due repliche (si prega di notare che il numero di repliche è uguale al numero di server in questo caso perché vogliamo impostare il mirroring) su server1.example.com e server2.example.com nella directory /data (questa verrà creata se non esiste):
gluster volume create testvol replica 2 transport tcp server1.example.com:/data server2.example.com:/dataroot@server1:~# gluster volume create testvol replica 2 transport tcp server1.example.com:/data server2.example.com:/data
La creazione del volume testvol è stata completata con successo. Si prega di avviare il volume per accedere ai dati.
root@server1:~#Avvia il volume:
gluster volume start testvolÈ possibile che il comando sopra ti dica che l’azione non è stata completata con successo:
root@server1:~# gluster volume start testvol
L'avvio del volume testvol non è riuscito
root@server1:~#In questo caso dovresti controllare l’output di…
server1.example.com/server2.example.com:
netstat -tap | grep glusterfsdsu entrambi i server.
Se ottieni un output come questo…
root@server1:~# netstat -tap | grep glusterfsd
tcp 0 0 *:24009 *:* LISTEN 1548/glusterfsd
tcp 0 0 localhost.localdom:1019 localhost.localdo:24007 ESTABLISHED 1548/glusterfsd
root@server1:~#… tutto va bene, ma se non ottieni alcun output…
root@server2:~# netstat -tap | grep glusterfsd
root@server2:~#… riavvia il demone GlusterFS sul server corrispondente (server2.example.com in questo caso):
server2.example.com:
/etc/init.d/glusterfs-server restartQuindi controlla nuovamente l’output di…
netstat -tap | grep glusterfsd… su quel server - dovrebbe ora apparire così:
root@server2:~# netstat -tap | grep glusterfsd
tcp 0 0 *:24010 *:* LISTEN 1458/glusterfsd
tcp 0 0 localhost.localdom:1021 localhost.localdo:24007 ESTABLISHED 1458/glusterfsd
root@server2:~#Ora torniamo a server1.example.com:
server1.example.com:
Puoi controllare lo stato del volume con il comando
gluster volume inforoot@server1:~# gluster volume infoVolume Name: testvol
Type: Replicate
Status: Started
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: server1.example.com:/data
Brick2: server2.example.com:/data
root@server1:~#Per impostazione predefinita, tutti i client possono connettersi al volume. Se desideri concedere accesso solo a client1.example.com (= 192.168.0.102), esegui:
gluster volume set testvol auth.allow 192.168.0.102Si 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 es. 192.168.0.102,192.168.0.103).
Le informazioni sul volume dovrebbero ora mostrare lo stato aggiornato:
gluster volume inforoot@server1:~# gluster volume infoVolume Name: testvol
Type: Replicate
Status: Started
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: server1.example.com:/data
Brick2: server2.example.com:/data
Options Reconfigured:
auth.allow: 192.168.0.102
root@server1:~#Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.