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

Aucun résumé des modifications
Aucun résumé des modifications
 
(8 versions intermédiaires par le même utilisateur non affichées)
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" et qu'on place dans le répertoire "/etc/systemd/system". Voici son contenu:
Le problème semble venir du côté du réseau qui n'est pas totalement prêt.
 
Normalement l'option "_netdev" force que le montage s'effectue plus tard au niveau du "target" "remote-fs" de Systemd. Celui-ci doit être activé au niveau du "target" "multi-user" de Systemd pour être effectif. Ce "target" démarre après l'activation du réseau.
systemctl enable remote-fs.target
 
En outre le service "NetworkManager-wait-online.service" doit être activé. Il sert à attendre que les couches réseaux soient totalement effectives avant de permettre le lancement de la suite des services notamment le "target" "remote-fs".
systemctl enable NetworkManager-wait-online.service
 
Ces deux points sont normalement activés lors de l'installation.
 
 
Mais malgré ces précautions, le montage des volumes Glusterfs ne se fait pas; il essaye mais n'y parvient pas.
 
Nous avons trouvé une solution en forçant un délais avant le démarrage du service "NetworkManager-wait-online.service".
 
Pour y arriver, nous créons le répertoire "NetworkManager-wait-online.service.d" dans le répertoire "/etc/systemd/system". Dans ce nouveau répertoire, nous créons le fichier "attente.conf" dont voici le contenu:
----
[Service]
ExecStartPre=/usr/bin/sleep 30
----
Avec cet ajout, on attend 30 secondes avant de lancer le processus "nm-online". Ce délais est à adapter selon votre situation.
 
 
===Service n°2===
Voici une autre solution 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]
  Description=GlusterFs : Montage
  Description=Montage de volumes GlusterFs
  After=network.target network-online.target
  After=network.target network-online.target
     
     
Ligne 107 : Ligne 131 :
  WantedBy=multi-user.target
  WantedBy=multi-user.target
----
----
Il s'exécutera toutes les 10 secondes tant qu'il est en erreur.
On l'active et on le lance:
On l'active et on le lance:
  systemctl enable glusterfsmount.service
  systemctl enable glusterfsmount.service
Ligne 114 : Ligne 140 :
Dès que ce service est arrêté:
Dès que ce service est arrêté:
  systemctl stop glusterfsmount.service
  systemctl stop glusterfsmount.service
tous ces disques distants sont démontés.
Tous ces disques distants sont démontés.




Ligne 120 : Ligne 146 :




===Service n°2===
===Service n°3===
Nous proposons une solution un peu plus complexe. Mais elle a plusieurs améliorations:
Nous proposons une solution un peu plus complexe. Elle apporte plusieurs améliorations:
* Si une des connexions ne peut s'établir, les autres le seront.
* Si une des connexions ne peut s'établir, les autres le seront.
* Si un des serveurs du cluster est inaccessible, il passera automatiquement à un autre des serveurs.
* Si un des serveurs du cluster est inaccessible, il passera automatiquement à un autre des serveurs.
Ligne 141 : Ligne 167 :




====Fichier de paramètres====
====Fichier de la liste des serveurs====
Il nous faut un fichier texte qui reprend la liste des serveurs GlusterFs du cluster. Ce fichier se nomme "hosts.txt" et est placé dans le répertoire "/manager/glusterfs".  
Il nous faut un fichier texte qui reprend la liste des serveurs GlusterFs du cluster. Ce fichier se nomme "hosts.txt" et est placé dans le répertoire "/manager/glusterfs".  


Ligne 204 : Ligne 230 :
  end
  end
  fichier:close()
  fichier:close()
----
====Fichier "fstab"====
Il ne faut pas oublier le fichier "/manager.glusterfs/fstab":
----
sv1.home.dom:/diskgfs1                    /brique1              glusterfs defaults,_netdev,transport=tcp 0 0
sv2.home.dom:/diskgfs2                    /brique2              glusterfs defaults,_netdev,transport=tcp 0 0
----
----


Ligne 292 : Ligne 326 :
   sleep 60
   sleep 60
  done</span>
  done</span>
exit 0
----
----
Ce script s'exécute indéfiniment afin de revalider régulièrement les montages. Si on élimine les lignes affichées en rouge, le traitement est unique.
Ce script s'exécute indéfiniment afin de revalider régulièrement les montages. Si on élimine les lignes affichées en rouge, le traitement est unique.
Ligne 325 : Ligne 358 :




====Service à traitement périodique====
Une seconde utilisation va utiliser toutes les possibilités du script. La partie en rouge du script reste.


Voici le contenu de ce service que l'on nommera "glusterfsmonterboucle.service" et qu'on place dans le répertoire "/etc/systemd/system":
----
[Unit]
Description=GlusterFs : Montage de volumes GlusterFs
After=network.target network-online.target
&nbsp;
[Service]
Type=simple
ExecStart=/manager/glusterfs/checkgluster.boucle.bat
&nbsp;
[Install]
WantedBy=multi-user.target
----
Il boucle sur lui-même.


On l'active et on le lance:
systemctl enable glusterfsmonterboucle.service
systemctl start glusterfsmonterboucle.service
Il monte les volumes GlusterFs repris dans le fichier "/etc/fstab".


 
Dès que ce service est arrêté:
 
systemctl stop glusterfsmonterboucle.service
 
Tous ces disques distants sont démontés.