<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://doc.ycharbi.fr/index.php?action=history&amp;feed=atom&amp;title=Glusterfs</id>
	<title>Glusterfs - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://doc.ycharbi.fr/index.php?action=history&amp;feed=atom&amp;title=Glusterfs"/>
	<link rel="alternate" type="text/html" href="https://doc.ycharbi.fr/index.php?title=Glusterfs&amp;action=history"/>
	<updated>2026-04-11T23:12:23Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://doc.ycharbi.fr/index.php?title=Glusterfs&amp;diff=1427&amp;oldid=prev</id>
		<title>Ycharbi : Page créée avec « Category:systèmes_de_fichiers  [https://fr.wikipedia.org/wiki/GlusterFS GlusterFS] (''GNU Cluster File System'') est un [https://fr.wikipedia.org/wiki/Syst%C3%A8me_de_fichiers_distribu%C3%A9 système de fichiers distribué] libre ([https://www.gnu.org/licenses/old-licenses/gpl-2.0.html GPLv2]) disponible sous ''GNU/Linux'' (via [https://fr.wikipedia.org/wiki/Filesystem_in_Userspace FUSE]) et ''BSD''. Initialement créé par une entreprise indienne rachetée par... »</title>
		<link rel="alternate" type="text/html" href="https://doc.ycharbi.fr/index.php?title=Glusterfs&amp;diff=1427&amp;oldid=prev"/>
		<updated>2023-02-23T18:49:09Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « &lt;a href=&quot;/index.php/Cat%C3%A9gorie:Syst%C3%A8mes_de_fichiers&quot; title=&quot;Catégorie:Systèmes de fichiers&quot;&gt;Category:systèmes_de_fichiers&lt;/a&gt;  [https://fr.wikipedia.org/wiki/GlusterFS GlusterFS] (&amp;#039;&amp;#039;GNU Cluster File System&amp;#039;&amp;#039;) est un [https://fr.wikipedia.org/wiki/Syst%C3%A8me_de_fichiers_distribu%C3%A9 système de fichiers distribué] libre ([https://www.gnu.org/licenses/old-licenses/gpl-2.0.html GPLv2]) disponible sous &amp;#039;&amp;#039;GNU/Linux&amp;#039;&amp;#039; (via [https://fr.wikipedia.org/wiki/Filesystem_in_Userspace FUSE]) et &amp;#039;&amp;#039;BSD&amp;#039;&amp;#039;. Initialement créé par une entreprise indienne rachetée par... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:systèmes_de_fichiers]]&lt;br /&gt;
&lt;br /&gt;
[https://fr.wikipedia.org/wiki/GlusterFS GlusterFS] (''GNU Cluster File System'') est un [https://fr.wikipedia.org/wiki/Syst%C3%A8me_de_fichiers_distribu%C3%A9 système de fichiers distribué] libre ([https://www.gnu.org/licenses/old-licenses/gpl-2.0.html GPLv2]) disponible sous ''GNU/Linux'' (via [https://fr.wikipedia.org/wiki/Filesystem_in_Userspace FUSE]) et ''BSD''. Initialement créé par une entreprise indienne rachetée par [https://fr.wikipedia.org/wiki/Red_Hat Red Hat] en 2011, le projet est aujourd'hui supporté par ce dernier.&lt;br /&gt;
&lt;br /&gt;
Il permet la gestion de volumes de données sur le réseaux en se basant sur une grappe de machines, appelée pairs, en suivant le principe pair à pair. Les machines de la grappe se partages une partie d'un volume et apparaissent alors comme un de ses composant sous le nom de biques (''bricks''). Une brique se décrit sous la forme &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;nomHôte:/chemin/partagé/au/volume&amp;lt;/syntaxhighlight&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;img src=&amp;quot;https://doc.ycharbi.fr/fichiers/systèmes_de_fichiers/glusterfs/Schéma_GlusterFS.svg&amp;quot; alt=&amp;quot;Schéma GlusterFS&amp;quot; style=&amp;quot;display: block; height:auto; margin-left:auto; margin-right:auto;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Modes de fonctionnement=&lt;br /&gt;
''GlusterFS'' permet l'utilisation de plusieurs [https://docs.gluster.org/en/latest/Quick-Start-Guide/Architecture/ modes] de gestion de données. Il est ainsi possible de les répartir selon des besoins différents sur l'ensemble des briques composants la grappe. &lt;br /&gt;
&lt;br /&gt;
==Volume distribué==&lt;br /&gt;
Ce [https://docs.gluster.org/en/latest/Administrator-Guide/Setting-Up-Volumes/#creating-distributed-volumes mode] réparti les données sur le volume en plaçant un fichier sur une seule brique à la fois. Il est conçu pour combiner l'espace de tous les disques le composant. Il n'offre alors aucune redondance mais permet une grande évolutivité de l'espace de stockage. Il s'agit du mode par défaut.&lt;br /&gt;
&lt;br /&gt;
===Exemple===&lt;br /&gt;
Si 3 serveurs ont chacun un disque de 2 To, la capacité utile totale sera de 6 To en se fiant au calcul suivant :&lt;br /&gt;
 &amp;lt;Taille utilisable&amp;gt; = &amp;lt;taille des briques&amp;gt; * &amp;lt;nombre de briques&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Volume répliqué==&lt;br /&gt;
[https://docs.gluster.org/en/latest/Administrator-Guide/Setting-Up-Volumes/#creating-replicated-volumes Ici] le principe est inverse, chaque fichier est répliqué sur chaque brique composant le volume. La redondance est maximale mais aucun gain d'espace dû à au nombres de disques n'est occasionné.&lt;br /&gt;
&lt;br /&gt;
===Exemple===&lt;br /&gt;
Si 3 serveurs ont chacun un disque de 2 To, la capacité utile totale sera de 2 To en se fiant au calcul suivant :&lt;br /&gt;
 &amp;lt;Taille utilisable&amp;gt; = &amp;lt;taille des briques&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Volume répliqué distribué==&lt;br /&gt;
Ce [https://docs.gluster.org/en/latest/Administrator-Guide/Setting-Up-Volumes/#creating-distributed-volumes mode] est une combinaison des deux premiers. Le nombre de briques le composant doit être un multiple du nombre de répliques. 4 pairs minimum sont nécessaires. Ce référer à la documentation officielle pour les détails.&lt;br /&gt;
&lt;br /&gt;
===Exemple===&lt;br /&gt;
Si 4 serveurs ont chacun un disque de 2 To, la capacité utile totale sera de 4 To en se fiant au calcul suivant :&lt;br /&gt;
 &amp;lt;Taille utilisable&amp;gt; = &amp;lt;taille des briques&amp;gt; * (&amp;lt;nombre de briques&amp;gt; / 2)&lt;br /&gt;
&lt;br /&gt;
==Volume dispersé==&lt;br /&gt;
Le but de ce [https://docs.gluster.org/en/latest/Administrator-Guide/Setting-Up-Volumes/#creating-dispersed-volumes mode] est de scinder les fichiers pour en disperser les fragments sur les briques composants le volume. Ceux-ci sont utilisés pour obtenir un niveau de fiabilité configurable avec un minimum de perte d'espace. Il est possible de définir le nombre de redondance tant qu'il est strictement inférieur au nombre de briques divisé par 2.&lt;br /&gt;
&lt;br /&gt;
===Exemple===&lt;br /&gt;
Si 3 serveurs ont chacun un disque de 2 To, la capacité utile totale sera de 4 To en se fiant au calcul suivant :&lt;br /&gt;
 &amp;lt;Taille utilisable&amp;gt; = &amp;lt;taille des briques&amp;gt; * (&amp;lt;nombre de briques&amp;gt; - &amp;lt;redondance&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
==Volume dispersé distribué==&lt;br /&gt;
Les volumes [https://docs.gluster.org/en/latest/Administrator-Guide/Setting-Up-Volumes/#creating-distributed-dispersed-volumes dispersés distribués] sont équivalents aux volumes répliqués distribués, mais ils utilisent des sous-volumes dispersés au lieu de volumes répliqués. Le nombre de briques doit être un multiple du premier sous-volume. Un minium de 6 pairs est exigé dans ce mode.&lt;br /&gt;
&lt;br /&gt;
Son objectif est de faire évoluer facilement la taille du volume et de répartir la charge sur plusieurs briques.&lt;br /&gt;
&lt;br /&gt;
===Exemple===&lt;br /&gt;
Si 6 serveurs ont chacun un disque de 2 To, la capacité utile totale sera de 5 To en se fiant au calcul suivant :&lt;br /&gt;
 &amp;lt;Taille utilisable&amp;gt; = (&amp;lt;taille des briques&amp;gt; * (&amp;lt;nombre de briques&amp;gt; - &amp;lt;redondance&amp;gt;)) / 2&lt;br /&gt;
&lt;br /&gt;
=Installation et mise en œuvre=&lt;br /&gt;
==installation==&lt;br /&gt;
L'outil est disponible dans les dépôts de ''Debian Stable''&lt;br /&gt;
 apt install --no-install-recommends glusterfs-server&lt;br /&gt;
&lt;br /&gt;
Le service est censé démarrer à l'issue&lt;br /&gt;
 systemctl status glusterd&lt;br /&gt;
&lt;br /&gt;
==Création d'une grappe==&lt;br /&gt;
La création d'une grappe s'effectue à l’association de pairs (machines) depuis l'un d'eux. 3 machines sont utilisées dans notre exemple. Elle se trouvent dans le même ''LAN'' et portent les noms ''srv1''; ''srv2''; ''srv3'' (ajoutés dans &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;/etc/hosts&amp;lt;/syntaxhighlight&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Sur l'une des machines de la future grappe (ici ''srv1'')&lt;br /&gt;
 gluster peer probe srv2&lt;br /&gt;
 gluster peer probe srv3&lt;br /&gt;
&lt;br /&gt;
{{attention|L'aspect sécurité de la solution n'est pas quelque chose de très pris au sérieux. En témoigne la section dédiée de la [https://docs.gluster.org/en/main/security/ documentation officielle]. Le service écoute sur toutes les interfaces sans authentification (il va sans dire que le trafic n'est pas non plus chiffré...). Il suffit alors à un attaquant de s'ajouter de lui même dans la grappe pour avoir accès aux données. L'utilisation d'IPSec en mode transport est à privilégier dans un réseau de production.}}&lt;br /&gt;
&lt;br /&gt;
Il est possible de lister les pairs de la grappe avec la commande&lt;br /&gt;
 gluster pool list&lt;br /&gt;
&lt;br /&gt;
==Création d'un volume==&lt;br /&gt;
Le mode de fonctionnement d'un volume est définit par les paramètres de répartition passés à la commande de sa création. Nous utiliserons un volume dispersé pour la suite de la documentation.&lt;br /&gt;
&lt;br /&gt;
le répertoire partagé doit existé sur tous les pairs&lt;br /&gt;
 mkdir -p /srv/gluster/volume1&lt;br /&gt;
&lt;br /&gt;
Exécuter sur un des pairs&lt;br /&gt;
 gluster volume create volume1 disperse 3 redundancy 1 srv1:/srv/gluster/volume1 srv2:/srv/gluster/volume1 srv3:/srv/gluster/volume1 force&lt;br /&gt;
ou (méthode simplifiée)&lt;br /&gt;
 gluster volume create volume1 disperse 3 redundancy 1 srv{1..3}:/srv/gluster/volume1 force&lt;br /&gt;
ou (méthode encore plus simplifiée)&lt;br /&gt;
 gluster volume create volume1 disperse 3 srv{1..3}:/srv/gluster/volume1 force&lt;br /&gt;
&lt;br /&gt;
L'utilisation du paramètre &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;force&amp;lt;/syntaxhighlight&amp;gt; permet d'utiliser la commande avec l'utilisateur ''root''.&lt;br /&gt;
&lt;br /&gt;
Voici un autre exemple pour un volume répliqué&lt;br /&gt;
 gluster volume create volume1 replica 3 srv1:/srv/gluster/volume1 srv2:/srv/gluster/volume1 srv3:/srv/gluster/volume1 force&lt;br /&gt;
&lt;br /&gt;
Vous noterez que le mot clé &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;disperse&amp;lt;/syntaxhighlight&amp;gt; est remplacé par &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;replica&amp;lt;/syntaxhighlight&amp;gt; dans ce mode.&lt;br /&gt;
&lt;br /&gt;
{{info|Pour rappel, dans ce mode, le nombre de réplication doit être égale au nombre de machines déclarées par la suite.}}&lt;br /&gt;
&lt;br /&gt;
==Gestion des volumes==&lt;br /&gt;
===Démarrer un volume===&lt;br /&gt;
 gluster volume start volume1&lt;br /&gt;
&lt;br /&gt;
===Montage du volume===&lt;br /&gt;
Tous les pairs peuvent monter le volume en local via le réseau. Pour les machines ne faisant pas parties de la grappe, un protocole de partage réseau, tel que [[Nfs|NFS]] ou [[Samba|SMB]], doit être utilisé.&lt;br /&gt;
&lt;br /&gt;
Montage non persistant&lt;br /&gt;
 mount.glusterfs localhost:/volume1 /mnt&lt;br /&gt;
&lt;br /&gt;
Montage persistant :&lt;br /&gt;
 echo 'localhost:/volume1 /mnt glusterfs defaults,_netdev,backupvolfile-server=localhost 0 0' &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
 mount localhost:/volume1&lt;br /&gt;
&lt;br /&gt;
===Lister les volumes===&lt;br /&gt;
 gluster volume list&lt;br /&gt;
&lt;br /&gt;
===Supervision===&lt;br /&gt;
''GlusterFS'' écrit son journal dans &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;/var/log/glusterfs/glusterd.log&amp;lt;/syntaxhighlight&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Il n'existe pas de solution de supervision intégrée à l'outil. Il est cependant assez simple d'imaginer une alerte automatisée en ordonnançant la commande de statut des pairs&lt;br /&gt;
 gluster --mode=script peer status | grep -B2 Disconnected&lt;br /&gt;
&lt;br /&gt;
{{info|L'ajout de l'option &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;--mode=script&amp;lt;/syntaxhighlight&amp;gt; à une commande ''CLI'' garanti l'exécution de la commande sans demande de confirmation.}}&lt;br /&gt;
&lt;br /&gt;
==Remplacement d'une machine==&lt;br /&gt;
Dans le cas de la défaillance d'un des pairs, son remplacement s'effectue par l'ajout d'une nouvelle machine suivit du retrait de l'ancienne.&lt;br /&gt;
&lt;br /&gt;
Ajout d'une nouvelle machine&lt;br /&gt;
 gluster peer probe srv4&lt;br /&gt;
&lt;br /&gt;
Récupération du nom de la brique à remplacer&lt;br /&gt;
 gluster volume info all&lt;br /&gt;
&lt;br /&gt;
Remplacement de la brique (penser à le faire pour tous les volumes la comprenant)&lt;br /&gt;
 gluster volume replace-brick volume1 srv3:/srv/gluster/volume1 srv4:/srv/gluster/volume1 commit force&lt;br /&gt;
&lt;br /&gt;
Suppression du pair de la grappe&lt;br /&gt;
 gluster peer detach srv3&lt;br /&gt;
&lt;br /&gt;
=Sources=&lt;br /&gt;
* https://docs.gluster.org/en/latest/&lt;br /&gt;
* https://thenewstack.io/tutorial-create-a-docker-swarm-with-persistent-storage-using-glusterfs/&lt;/div&gt;</summary>
		<author><name>Ycharbi</name></author>
	</entry>
</feed>