Stockage · 4 min read · Jan 18, 2026
Stockage Haute Disponibilité Avec GlusterFS 3.2.x Sur Ubuntu 12.04 - Réplication Automatique de Fichiers Entre Deux Serveurs de Stockage
Stockage Haute Disponibilité Avec GlusterFS 3.2.x Sur Ubuntu 12.04 - Réplication Automatique de Fichiers (Miroir) Entre Deux Serveurs de Stockage
Version 1.0
Auteur : Falko Timme
Suivez-moi sur Twitter
Ce tutoriel montre comment configurer un stockage haute disponibilité avec deux serveurs de stockage (Ubuntu 12.04) utilisant GlusterFS. Chaque serveur de stockage sera un miroir de l’autre serveur de stockage, et les fichiers seront répliqués automatiquement entre les deux serveurs de stockage. Le système client (Ubuntu 12.04 également) pourra accéder au stockage comme s’il s’agissait d’un système de fichiers local. GlusterFS est un système de fichiers en cluster capable de s’étendre à plusieurs pétaoctets. Il agrège divers blocs de stockage via Infiniband RDMA ou TCP/IP en un grand système de fichiers réseau parallèle. Les blocs de stockage peuvent être constitués de n’importe quel matériel standard tel que des serveurs x86_64 avec RAID SATA-II et HBA Infiniband.
Je ne donne aucune garantie que cela fonctionnera pour vous !
1 Remarque Préliminaire
Dans ce tutoriel, j’utilise trois systèmes, deux serveurs et un client :
- server1.example.com : adresse IP 192.168.0.100 (serveur)
- server2.example.com : adresse IP 192.168.0.101 (serveur)
- client1.example.com : adresse IP 192.168.0.102 (client)
Comme nous allons exécuter toutes les étapes de ce tutoriel avec des privilèges root, nous pouvons soit préfixer toutes les commandes de ce tutoriel avec la chaîne sudo, soit devenir root tout de suite en tapant
sudo suTous les trois systèmes devraient être capables de résoudre les noms d’hôtes des autres systèmes. Si cela ne peut pas être fait via DNS, vous devez éditer le fichier /etc/hosts pour qu’il ressemble à ceci sur les trois systèmes :
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 # Les lignes suivantes sont souhaitables pour les hôtes compatibles 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 |
(Il est également possible d’utiliser des adresses IP au lieu de noms d’hôtes dans la configuration suivante. Si vous préférez utiliser des adresses IP, vous n’avez pas à vous soucier de savoir si les noms d’hôtes peuvent être résolus ou non.)
2 Configuration des Serveurs GlusterFS
server1.example.com/server2.example.com :
GlusterFS est disponible en tant que paquet pour Ubuntu 12.04, nous pouvons donc l’installer comme suit :
apt-get install glusterfs-serverLa commande
glusterfsd --versiondevrait maintenant afficher la version de GlusterFS que vous venez d’installer (3.2.5 dans ce cas) :
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 est fourni SANS AUCUNE GARANTIE.
Vous pouvez redistribuer des copies de GlusterFS selon les termes de la GNU General Public License.
root@server1:~# Si vous utilisez un pare-feu, assurez-vous que les ports TCP 111, 24007, 24008, 24009-(24009 + nombre de blocs à travers tous les volumes) sont ouverts sur server1.example.com et server2.example.com.
Ensuite, nous devons ajouter server2.example.com au pool de stockage de confiance (veuillez noter que j’exécute toutes les commandes de configuration GlusterFS depuis server1.example.com, mais vous pouvez également les exécuter depuis server2.example.com car la configuration est répliquée entre les nœuds GlusterFS - assurez-vous simplement d’utiliser les bons noms d’hôtes ou adresses IP) :
server1.example.com :
Sur server1.example.com, exécutez
gluster peer probe server2.example.comroot@server1:~# gluster peer probe server2.example.com
Probe successful
root@server1:~#L’état du pool de stockage de confiance devrait maintenant être similaire à ceci :
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:~#Ensuite, nous créons le partage nommé testvol avec deux répliques (veuillez noter que le nombre de répliques est égal au nombre de serveurs dans ce cas car nous voulons configurer le miroir) sur server1.example.com et server2.example.com dans le répertoire /data (ce dernier sera créé s’il n’existe pas) :
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 création du volume testvol a été réussie. Veuillez démarrer le volume pour accéder aux données.
root@server1:~#Démarrez le volume :
gluster volume start testvolIl est possible que la commande ci-dessus vous indique que l’action n’a pas été réussie :
root@server1:~# gluster volume start testvol
Le démarrage du volume testvol a échoué
root@server1:~#Dans ce cas, vous devriez vérifier la sortie de…
server1.example.com/server2.example.com :
netstat -tap | grep glusterfsdsur les deux serveurs.
Si vous obtenez une sortie comme ceci…
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:~#… tout va bien, mais si vous n’obtenez aucune sortie…
root@server2:~# netstat -tap | grep glusterfsd
root@server2:~#… redémarrez le démon GlusterFS sur le serveur correspondant (server2.example.com dans ce cas) :
server2.example.com :
/etc/init.d/glusterfs-server restartPuis vérifiez à nouveau la sortie de…
netstat -tap | grep glusterfsd… sur ce serveur - cela devrait maintenant ressembler à ceci :
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:~#Maintenant, revenons à server1.example.com :
server1.example.com :
Vous pouvez vérifier l’état du volume avec la commande
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:~#Par défaut, tous les clients peuvent se connecter au volume. Si vous souhaitez accorder l’accès uniquement à client1.example.com (= 192.168.0.102), exécutez :
gluster volume set testvol auth.allow 192.168.0.102Veuillez noter qu’il est possible d’utiliser des caractères génériques pour les adresses IP (comme 192.168.*) et que vous pouvez spécifier plusieurs adresses IP séparées par des virgules (par exemple 192.168.0.102,192.168.0.103).
Les informations sur le volume devraient maintenant afficher le statut mis à jour :
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:~#Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.