« 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 | 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 | 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. | |||
Ligne 120 : | Ligne 146 : | ||
===Service | ===Service n°3=== | ||
Nous proposons une solution un peu plus complexe. | 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 | ====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> | ||
---- | ---- | ||
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 | |||
| |||
[Service] | |||
Type=simple | |||
ExecStart=/manager/glusterfs/checkgluster.boucle.bat | |||
| |||
[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. | |||