LINUX:Glusterfs - Serveurs
But
Tout d'abord nous allons configurer les serveurs qui vont travailler ensemble.
A tout moment, il est possible d'adapter cette structure sans perturber son fonctionnement. On peut ajouter ou supprimer un serveur du "pool". On peut ajouter, supprimer, étendre, migrer, restreindre chaque ressource disque.
Nous nous cantonnerons à la création du "pool" et des ressources.
Matériel et adressage IP
Pour ces exercices, nous avons besoin de six machines. Le schéma ci-dessous reprend la connectique, le nom des machines Linux et leur adressage IP.
Sur chaque machine du cluster, on ajoute un nom aux différentes adresses réseaux afin quelles se reconnaissent entre elles. On le fait en local dans le fichier "/etc/hosts" suivant le schéma ci-dessus. Son contenu devient:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.1.71 sv1.home.dom 192.168.1.72 sv2.home.dom 192.168.1.73 sv3.home.dom 192.168.1.74 sv4.home.dom 192.168.1.75 sv5.home.dom 192.168.1.76 sv6.home.dom
Notons qu'on peut faire cette opération au travers de notre DNS si nous en disposons.
Installation
La première étape consiste à installer sur tous nos serveurs ("sv1.home.dom" à "sv6.home.dom") le paquet suivant:
dnf install glusterfs-server
Fichiers de configuration
Les fichiers de configuration se retrouvent dans le répertoire "/etc/glusterfs". Nous n'y avons effectué aucune modification.
Après le premier lancement du service Glusterd, le répertoire "/var/lib/glusterd" contient nombre de paramètres qui s'amendent en fonction des machines du cluster et des ressources disques. Ces paramètres sont modifiables via des lignes de commandes.
Activation et lancement du service
Il faut activer et lancer le service "glusterd.service" sur chaque serveur:
systemctl enable glusterd.service systemctl start glusterd.service
Configurer le mur de feu ou FireWall
Chaque serveur écoute sur le port TCP 24007. Quand le "pool" sera constitué, chaque serveur du cluster va entrer en communication entre eux et par la suite, les machines clients feront de même.
Si vous activez le Firewall, ce qui est recommandé, il faut y ajouter les règles suivantes sur chaque serveur:
-A INPUT -p tcp -m tcp --sport 24007 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 24007 -d 192.168.1.0/24 -j ACCEPT
Création du Pool
Pour que les différents serveurs puissent travailler ensemble, il faut constituer un "Pool".
On se place sur un des serveurs et grâce à la commande suivante, on va ajouter un des autres serveurs à le rejoindre.
Dans notre exemple, on s'est placé sur la machine "sv1.home.dom" et on lui ajoute la machine "sv2.home.dom":
gluster peer probe sv2.home.dom
On fait de même pour les autres serveurs:
gluster peer probe sv3.home.dom gluster peer probe sv4.home.dom gluster peer probe sv5.home.dom gluster peer probe sv6.home.dom
Cette opération n'est pas à effectuer sur les autres serveurs.
Lister la liste des serveurs du pool
Pour vérifier que tout s'est bien passé, la commande suivante exécutée sur n'importe quel serveur, permet de récupérer la liste des serveurs du "Pool":
gluster peer status
qui donne à partir de la machine "sv1.home.dom":
Number of Peers: 5 Hostname: sv2.home.dom Uuid: d2d834b7-96e7-49a1-a178-9aa54bc74426 State: Peer in Cluster (Connected) Hostname: sv3.home.dom Uuid: 27bd8184-14c8-4176-987d-db0a03fc6993 State: Peer in Cluster (Connected) Hostname: sv4.home.dom Uuid: 3dc268fd-cc74-4072-b454-c6a26240fdf7 State: Peer in Cluster (Connected) Hostname: sv5.home.dom Uuid: ba63e02a-8dd2-4324-a8e6-16a59855378f State: Peer in Cluster (Connected) Hostname: sv6.home.dom Uuid: 15f5b1c0-f4c6-4f98-93c4-d539a4cf3873 State: Peer in Cluster (Connected)
Détacher un serveur du Pool
On peut faire l'opération inverse: enlever un serveur du "Pool" avec la commande suivante, ici le serveur "sv6.home.dom":
gluster peer detach sv6.home.dom
On le fait à partir d'une machine du pool.
Attention: Il est impératif que ce serveur qu'on élimine, ne participe à aucune ressource disque du pool.