From ec8d9ab1e7cb5b61ca8cfea7dd1e192320c03170 Mon Sep 17 00:00:00 2001 From: mtrossevin Date: Wed, 30 Aug 2023 17:36:17 +0200 Subject: [PATCH] =?UTF-8?q?Am=C3=A9lioration=20doc=20glusterfs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HowtoGlusterFS.md | 87 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 73 insertions(+), 14 deletions(-) diff --git a/HowtoGlusterFS.md b/HowtoGlusterFS.md index 9abb0b52..62fe0fbd 100644 --- a/HowtoGlusterFS.md +++ b/HowtoGlusterFS.md @@ -1,6 +1,28 @@ +--- +categories: cloud storage haute-disponibilite +... + # Howto GlusterFS -TODO : Description, vocabulaire (peer, brick, volume)... +* Documentation : + +**GlusterFS** est un système de fichier distribué permettant d'utilisé le stockage de plusieurs serveurs pour un seul système de fichier. On peut l'utilisé en mode réplication, où chaque fichier est répliquer sur plusieurs serveurs afin d'augmenter sa disponibilité en cas de coupures (un peu comme du RAID1), ou en mode distribué, où les fichiers ne sont pas tous sur un même serveur (un peu comme du RAID0), ou un mixe des deux. + +## Vocabulaire de GlusterFS + +
+
Cluster
+
Un groupe de serveurs partageant une configuration GlusterFS commune.
+ +
Peer
+
Un serveur qui est membre du cluster.
+ +
Brick
+
L'emplacement physique utilisé pour le stockage des données d'un volume.
+ +
Volume
+
Un stockage logique exporté par GlusterFS.
+
## Configuration d'un nouveau cluster @@ -10,16 +32,27 @@ TODO : Description, vocabulaire (peer, brick, volume)... # apt install glusterfs-server ~~~ +Il est ensuite possible de vérifié que glusterfs est installé avec : + +~~~ +# glusterd --version +glusterfs 9.2 +Repository revision: git://git.gluster.org/glusterfs.git +[...] +~~~ + ### Création du cluster +Après avoir installé `glusterfs-server` sur l'ensemble des serveurs du future cluster, il faut ajouté les serveurs à leur liste de serveurs de confiance. glusterd s'occupe de communiquer la liste entre chaque serveur déjà présent dans la liste, et l'ajout est symétrique, il suffit donc de faire la commande suivante sur une seule machine du cluster (1 fois par serveur à ajouté) : + ~~~ srv1# gluster peer probe peer probe: success. ~~~ -Note : srv1 et srv2 doivent pouvoir communiquer entre eux sans restriction au niveau réseau. +> Note : Les serveurs doivent pouvoir communiquer entre eux sans restriction au niveau réseau. -Vérification : +Pour vérifier que les serveurs ont bien était ajoutés, faire la commande suivante sur un des serveurs du cluster : ~~~ # gluster peer status @@ -32,7 +65,7 @@ State: Peer in Cluster (Connected) ### Création d'un volume -Ici _/srv/gluster/_ est un montage d'un volume dédié pour GlusterFS et le volume à créer se nomme _foovol_. +Ici `/srv/gluster/` est un montage d'un volume dédié pour GlusterFS et le volume à créer se nomme `foovol`. Créer le répertoire sur chaque serveur : @@ -49,11 +82,25 @@ volume create: foovol: success: please start the volume to access data volume start: foovol: success ~~~ +> Note: Un volume en mode replica avec seulement 2 réplication comme ci-dessus est fortement sensible aux split-brain, il est donc recommandé d'utilisé au moins 3 serveurs et `replica 3`. En général, le mode réplica devrait être utilisé avec `2n+1` replica, où `n` est le nombre de serveurs de stockage pouvant tomber sans coupures de service. + Vérification : ~~~ # gluster volume info -[…] +gluster volume info + +Volume Name: foovol +Type: Replicate +Volume ID: [...] +Status: Started +Snapshot Count: 0 +Number of Bricks: 1 x 2 = 2 +Transport-type: tcp +Bricks: +Brick1: :/srv/gluster/foovol +Brick2: :/srv/gluster/foovol +[...] ~~~ Sur la machine cliente, on peut maintenant monter le volume : @@ -66,39 +113,51 @@ Sur la machine cliente, on peut maintenant monter le volume : ## Administration +Vérifier l'état global des volumes GlusterFS : + ~~~ -# gluster volume status all -# gluster volume status all clients -# gluster volume status all (mem|fd|inode|callpool) +# gluster volume status ~~~ -# Lister les peers +Obtenir la liste des clients glusterfs et leur utilisation des différentes brick : + +~~~ +# gluster volume status clients +~~~ + +Autres informations : + +~~~ +# gluster volume status (mem|fd|inode|callpool) +~~~ + +### Lister les peers ~~~ # gluster peer status ~~~ -# Lister les volumes +### Lister les volumes ~~~ # gluster volume list ~~~ -# Voir la santé du volume "foo" +#### Voir la santé du volume "foo" ~~~ # gluster volume heal foo info ~~~ -# Forcer un 'heal' pour le volume "bar" +#### Forcer un 'heal' pour le volume "bar" ~~~ # gluster volume heal bar ~~~ -# Cas pratiques +## Cas pratiques -## Récupération d'un split-brain - Forcer l'utilisation d'un réplicas comme source de résolution +### Récupération d'un split-brain - Forcer l'utilisation d'un réplicas comme source de résolution Dans une situation de split-brain, on peut avoir :