« LINUX:Glusterfs - Clients » : différence entre les versions

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 92 : Ligne 92 :


===Service n°1===
===Service n°1===
Pour pallier ce problème, on peut créer un service simple que l'on nommera "glusterfsmount.service" que l'on place dans le répertoire "/etc/systemd/system". Voici son contenu:
Pour pallier ce problème, on peut créer un service simple que l'on nommera "glusterfsmount.service" et qu'on place dans le répertoire "/etc/systemd/system". Voici son contenu:
----
----
  [Unit]
  [Unit]
Ligne 107 : Ligne 107 :
  WantedBy=multi-user.target
  WantedBy=multi-user.target
----
----
On l'active et le lance:
On l'active et on le lance:
  systemctl enable glusterfsmount.service
  systemctl enable glusterfsmount.service
  systemctl start glusterfsmount.service
  systemctl start glusterfsmount.service

Version du 15 juin 2023 à 13:30


retour au menu de Glusterfs


But

Maintenant que les serveurs sont configurés, on passe à l'utilisation de ses ressources par les clients.

Elle consiste à se connecter à une ressource disque ou volume fournie par le "pool" de serveurs GlusterFs. Il existe plusieurs possibilités.


Matériel et adressage IP

Pour nos exemples, nous nous baserons sur le matériel et son adressage IP présenté sous l'article Serveurs GlusterFs.

LINUX:Glusterfs1.pdf


Pilote natif

Le logiciel GlusterFs fournit un pilote natif nommé "Fuse" qui permet à tous client de se connecter et d'utiliser un volume GlusterFs comme on monte une partition disque locale.


Installation

Sur nos machines clients, il faut installer les paquets suivants:

dnf install glusterfs glusterfs-fuse


Configurer le mur de feu ou FireWall

Pour pouvoir se connecter aux serveurs du cluster GlusterFs, il faudra ajouter des règles dans notre FireWall si nous faisons un filtrage en sortie.

Sur base de notre exemple, voici deux règles à ajouter à Iptables:

-A OUTPUT -p tcp -m tcp --dport 24007 -m iprange --dst-range 192.168.1.71-192.168.1.76 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 49152:60999 -m iprange --dst-range 192.168.1.71-192.168.1.76 -j ACCEPT


Création du point de montage

En premier, on crée un répertoire dédié à cette connexion. Par exemple on crée le répertoire "brique1":

mkdir /brique1


Montage et démontage manuel

Les manipulations sont semblables à celles pour monter une partition d'un disque local.

On utilise la commande "mount" qui sert au montage de disque:

mount -t glusterfs <un serveur du cluster Gluster>:/<nom de volume> <répertoire de montage>

Par exemple, on désire monter le volume "diskgfs1" à partir de la machine "sv1.home.dom" sur le répertoire créé juste avant:

mount -t glusterfs sv1.home.dom:/diskgfs1 /brique1

On utilise le type de montage "glusterfs".

Pour le démontage, la commande classique est utilisée:

umount /brique1


Connexions réseaux

Au niveau des connexions réseaux, la machine client établit une connexion avec la machine serveur du cluster de connexion, ici "sv1.home.dom". C'est le port TCP 24007 à l'écoute du service "glusterd" qui assure cette connexion. Cette machine serveur peut être n'importe quelle machine du cluster même si cette machine n'intervient pas dans le volume concerné, ici "diskgfs1".


Ensuite une connexion est établie avec chaque machine serveur du cluster qui est concernée par le volume. Sur chacune de ces machines serveurs, c'est le port TCP à l'écoute du service "glusterfsd" lié au volume qui assure ces connexions. Pour notre exemple, on retrouve les machines "sv1.home.dom" et "sv2.home.dom".


Montage automatique

On utilise le fichier "/etc/fstab" bien connu. La syntaxe va différer au niveau des options:


<un serveur du cluster Gluster>:/<nom de volume> <répertoire de montage> glusterfs defaults,_netdev 0 0

Par exemple, on désire monter le volume "diskgfs1" à partir de la machine "sv1.home.dom" sur le répertoire créé juste avant:


sv1.home.dom:/diskgfs1                    /brique1              glusterfs defaults,_netdev 0 0

ou si on veut préciser le protocole TCP:


sv1.home.dom:/diskgfs1                    /brique1              glusterfs defaults,_netdev,transport=tcp 0 0

Pour le monter, manuellement, on utilise la commande classique:

mount -a

Pour le démontage, la commande classique est utilisée:

umount /brique1

Notons que dans le répertoire "/var/log/glusterfs" un fichier journal "brique1.log" est créé.

La commande:

df -h

affiche une nouvelle ligne pour le premier cas:


sv1.home.dom:/diskgfs1        149G    3,6G  146G   3% /brique1

pour le second cas:


sv1.home.dom:/diskgfs1.tcp    149G    3,6G  146G   3% /brique1


Reboot et montage automatique

Mais lors d'un redémarrage de la machine client, le montage ne se fait pas dans mon cas. Je n'est pas trouvé de solution simple; je ne semble pas être le seul. Sur les machines serveurs, il existe un service nommé "glusterfssharedstorage.service" se trouvant dans le répertoire "/usr/lib/systemd/system" qui effectue cette tâche s'il est activé.


Service n°1

Pour pallier ce problème, on peut créer un service simple que l'on nommera "glusterfsmount.service" et qu'on place dans le répertoire "/etc/systemd/system". Voici son contenu:


[Unit]
Description=GlusterFs : Montage
After=network.target network-online.target
  
[Service]
Type=simple
ExecStart=/bin/mount -a -t glusterfs
Restart=on-failure
RestartSec=10
  
[Install]
WantedBy=multi-user.target

On l'active et on le lance:

systemctl enable glusterfsmount.service
systemctl start glusterfsmount.service

Il monte les volumes GlusterFs repris dans le fichier "/etc/fstab".

Dès que ce service est arrêté:

systemctl stop glusterfsmount.service

tous ces disques distants sont démontés.


Il y a un problème. Dans le cas où pour au moins une de ces entrées dans le fichier "/etc/fstab" a un problème, aucun des volumes n'est monté. Ce problème peut être une erreur dans la ligne (nom de serveur ou de volume incorrect) ou le service Glusterd du serveur concerné n'est pas joignable.






retour au menu de Glusterfs