Dans cet article, nous allons prendre en mains GlusterFS qui permet de mettre en place un cluster de fichiers distribués. Ici, nous allons répliquer un répertoire sur 2 serveurs différents (bien sur nous pouvons mettre plus de serveurs, ou encore utiliser d'autres types de volumes distribués)
Nous avons pour cela besoin :
- de 2 serveurs sous debian
- accessoirement un serveur client sous debian.
Nous installons glusterfs server :
apt-get install glusterfs-server
Nous activons le démarrage du servie au boot du système :
update-rc.d glusterfs-server defaults
Nous vérifions le status du cluster, nous constatons que pour le moment, aucun noeud ne fait parti du cluster :
gluster peer status
Nous ajoutons donc le second serveur au notre, pas nécessaire de le faire pour le serveur sur lequel nous sommes :
gluster peer probe server2 (ip ou fqdn)
Nous vérifions une nouvelle fois le status de notre cluster, nous pouvons constater cette fois que le noeud distant a été ajouté et est joignable :
gluster peer status
Nous allons maintenant ajouter un volume à notre cluster, ici, un volume répliqué, attention, il est préférable que le répertoire que vous désirez répliquer ne soit pas un point de montage, c'est pour cela, que dans cet exemple je créé dans un premier temps un répertoire sur les 2 serveurs, puis je créé mon volume uniquement sur l'un des 2 serveurs qui communiquera l'information automatiquement au second serveur :
mkdir /storage/glusterfs (sur les 2 serveurs) gluster volume create gluster-volume replica 2 transport tcp server1:/storage/glusterfs server2:/storage/glusterfs
Explications :
cluster volume create : commande permettant de créer le volume
gluster-volume : un nom pour mon volume
replica : type de 'distribution' , ici répliqué, mais ça peut également être stripe
2 : nombre de noeud faisant partis du volume
transport tcp : protocole de transport à utiliser
server1:/storage/glusterfs server2:/storage/glusterfs : liste des serveurs à ajouter au volume avec le répertoire à utiliser pour la replication
Pour que notre volume répliqué fonctionne, il faut le démarrer sur l'un des 2 serveurs :
gluster volume start gluster-volume
Nous pouvons maintenant vérifier l'état de notre volume répliqué :
gluster volume info
Nous allons maintenant monter notre volume répliqué sur un serveur distant (ou respectivement sur nos 2 serveurs actuels, dans ce cas pas besoin d'installer le paquet glusterfs-client)
- Sur notre serveur client :
Installer glusterfs-client :
apt-get install glusterfs-client
Créer un répertoire ou nous allons monter notre volume glusterfs ;
mkdir /mnt/gluster-volume
Monter notre volume glusterfs:
mount -t glusterfs server1:/gluster-volume/mnt/gluster-volume (server1 peut être n'importe lequel des serveurs du cluster, ou encore une ip failover montée sur l'un des 2 serveurs)
Sur le client, nous ajoutons un fichier dans notre volume glusterfs :
touch /mnt/gluster-volume/test
Si nous nous connectons sur les serveurs glusterfs, nous constatons que le répertoire qui fait parti du volume répliqué contient notre fichier sur tous les serveurs :
ls /storage/glusterfs/
Nous pouvons constater que le fichier a été créé sur les 2 serveurs.
vi /etc/fstab : server1:/gluster-volume /mnt/gluster-volume glusterfs defaults,_netdev 0 0