Nous vivons dans un monde où les données croissent de manière imprévisible et c’est notre besoin de stocker ces données, qu’elles soient structurées ou non structurées, de manière efficace. Les systèmes informatiques distribués offrent un large éventail d’avantages par rapport aux systèmes informatiques centralisés. Ici, les données sont stockées de manière distribuée avec plusieurs nœuds en tant que serveurs.

Le concept d’un serveur de métadonnées n’est plus nécessaire dans un système de fichiers distribué. Dans les systèmes de fichiers distribués, il offre un point de vue commun de tous les fichiers séparés entre différents serveurs. Les fichiers/répertoires sur ces serveurs de stockage sont accessibles de manière normale.
Par exemple, les autorisations pour les fichiers/répertoires peuvent être définies comme dans un modèle d’autorisations système habituel, c’est-à-dire le propriétaire, le groupe et les autres. L’accès au système de fichiers dépend essentiellement de la façon dont le protocole particulier est conçu pour fonctionner de la même manière.
Qu’est-ce que GlusterFS?
GlusterFS est un système de fichiers distribué défini pour être utilisé dans l’espace utilisateur, c’est-à-dire File System in User Space (FUSE). C’est un système de fichiers basé sur logiciel qui alloue sa propre fonctionnalité de flexibilité.
Jetez un œil à la figure suivante qui représente de manière schématique la position de GlusterFS dans un modèle hiérarchique. Par défaut, le protocole TCP sera utilisé par GlusterFS.

Avantages de GlusterFS
- Innovation – Il élimine les métadonnées et peut considérablement améliorer les performances, ce qui nous aidera à unifier les données et les objets.
- Élasticité – Adapté à la croissance et à la réduction de la taille des données.
- Évolutivité linéaire – Il est disponible en petabytes et au-delà.
- Simplicité – Il est facile à gérer et indépendant du noyau tout en s’exécutant dans l’espace utilisateur.
Qu’est-ce qui rend Gluster exceptionnel parmi les autres systèmes de fichiers distribués?
- Évolutif – L’absence d’un serveur de métadonnées offre un système de fichiers plus rapide.
- Abordable – Il se déploie sur du matériel bon marché.
- Flexible – Comme je l’ai dit plus tôt, GlusterFS est un système de fichiers uniquement logiciel. Ici, les données sont stockées sur des systèmes de fichiers natifs comme ext4, xfs, etc.
- Open Source – Actuellement, GlusterFS est maintenu par Red Hat Inc, une entreprise open source d’un milliard de dollars, dans le cadre de Red Hat Storage.
Concepts de stockage dans GlusterFS
- Bloc – Un bloc est essentiellement un répertoire destiné à être partagé parmi le pool de stockage de confiance.
- Pool de stockage de confiance – est une collection de ces fichiers/répertoires partagés, basée sur le protocole conçu.
- Stockage en blocs – Ce sont des périphériques à travers lesquels les données sont déplacées entre les systèmes sous forme de blocs.
- Cluster – Dans Red Hat Storage, à la fois le cluster et le pool de stockage de confiance ont le même sens de collaboration des serveurs de stockage basés sur un protocole défini.
- Système de fichiers distribué – Un système de fichiers dans lequel les données sont réparties sur différents nœuds où les utilisateurs peuvent accéder au fichier sans connaître l’emplacement réel du fichier. L’utilisateur ne ressent pas l’accès à distance.
- FUSE – Il s’agit d’un module noyau chargeable qui permet aux utilisateurs de créer des systèmes de fichiers au-dessus du noyau sans impliquer aucun code du noyau.
- glusterd – glusterd est le démon de gestion de GlusterFS qui est l’épine dorsale du système de fichiers qui fonctionnera tout au long du temps lorsque les serveurs sont en état actif.
- POSIX – L’Interface de Système d’Exploitation Portable (POSIX) est la famille de normes définie par l’IEEE comme une solution à la compatibilité entre les variantes d’Unix sous forme d’une Interface de Programmation d’Application (API).
- RAID – Un ensemble redondant de disques indépendants (RAID) est une technologie qui offre une fiabilité de stockage accrue grâce à la redondance.
- Sous-volume – Une brique après avoir été traitée par au moins un traducteur.
- Traducteur – Un traducteur est ce morceau de code qui effectue les actions de base initiées par l’utilisateur à partir du point de montage. Il connecte un ou plusieurs sous-volumes.
- Volume – Un volume est une collection logique de briques. Toutes les opérations sont basées sur les différents types de volumes créés par l’utilisateur.
Différents types de volumes
Les représentations des différents types de volumes et les combinaisons parmi ces types de volumes de base sont également autorisées comme indiqué ci-dessous.



Volume Répliqué Distribué
Représentation d’un volume distribué et répliqué.

Installation de GlusterFS dans RHEL/CentOS et Fedora
Dans cet article, nous allons installer et configurer GlusterFS pour la première fois afin d’assurer une haute disponibilité du stockage. Pour cela, nous allons utiliser deux serveurs pour créer des volumes et répliquer les données entre eux.
Étape 1: Avoir au moins deux nœuds
- Installer CentOS 6.5 (ou tout autre système d’exploitation) sur deux nœuds.
- Définir les noms d’hôtes comme « serveur1 » et « serveur2« .
- A working network connection.
- Disque de stockage sur les deux nœuds nommé « /data/brick« .
Étape 2: Activer les dépôts EPEL et GlusterFS
Avant d’installer GlusterFS sur les deux serveurs, nous devons activer les dépôts EPEL et GlusterFS pour satisfaire les dépendances externes. Utilisez le lien suivant pour installer et activer le dépôt epel sur les deux systèmes.
Ensuite, nous devons activer le dépôt GlusterFs sur les deux serveurs.
# wget -P /etc/yum.repos.d http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/glusterfs-epel.repo
Étape 3: Installation de GlusterFS
Installer le logiciel sur les deux serveurs.
# yum install glusterfs-server
Démarrer le démon de gestion GlusterFS.
# service glusterd start
Maintenant, vérifiez le statut du démon.
# service glusterd status
Sortie d’exemple
service glusterd start service glusterd status glusterd.service - LSB: glusterfs server Loaded: loaded (/etc/rc.d/init.d/glusterd) Active: active (running) since Mon, 13 Aug 2012 13:02:11 -0700; 2s ago Process: 19254 ExecStart=/etc/rc.d/init.d/glusterd start (code=exited, status=0/SUCCESS) CGroup: name=systemd:/system/glusterd.service ├ 19260 /usr/sbin/glusterd -p /run/glusterd.pid ├ 19304 /usr/sbin/glusterfsd --xlator-option georep-server.listen-port=24009 -s localhost... └ 19309 /usr/sbin/glusterfs -f /var/lib/glusterd/nfs/nfs-server.vol -p /var/lib/glusterd/...
Étape 4: Configurer SELinux et iptables
Ouvrez ‘/etc/sysconfig/selinux‘ et changez SELinux en mode “permissive” ou “désactivé” sur les deux serveurs. Enregistrez et fermez le fichier.
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted
Ensuite, videz les iptables sur les deux nœuds ou autorisez l’accès à l’autre nœud via iptables.
# iptables -F
Étape 5 : Configurer le pool de confiance
Exécutez la commande suivante sur ‘Serveur1‘.
gluster peer probe server2
Exécutez la commande suivante sur ‘Serveur2‘.
gluster peer probe server1
Note: Une fois ce pool connecté, seuls les utilisateurs de confiance peuvent sonder de nouveaux serveurs dans ce pool.
Étape 6 : Configurer un volume GlusterFS
Sur serveur1 et serveur2.
# mkdir /data/brick/gv0
Créez un volume sur un seul serveur et démarrez le volume. Ici, j’ai pris ‘Serveur1‘.
# gluster volume create gv0 replica 2 server1:/data/brick1/gv0 server2:/data/brick1/gv0 # gluster volume start gv0
Ensuite, confirmez l’état du volume.
# gluster volume info
Note: Si par hasard le volume n’est pas démarré, les messages d’erreur sont enregistrés sous ‘/var/log/glusterfs‘ sur un ou les deux serveurs.
Étape 7 : Vérifier le volume GlusterFS
Montez le volume dans un répertoire sous ‘/mnt‘.
# mount -t glusterfs server1:/gv0 /mnt
Maintenant vous pouvez créer, modifier des fichiers sur le point de montage comme une vue unique du système de fichiers.
Fonctionnalités de GlusterFS
- Auto-guérison – Si l’un des bricks d’un volume répliqué est hors service et que les utilisateurs modifient les fichiers dans les autres bricks, le démon d’auto-guérison automatique entrera en action dès que le brick sera à nouveau opérationnel et les transactions survenues pendant la période d’arrêt seront synchronisées en conséquence.
- Rebalancement – Si nous ajoutons un nouveau brick à un volume existant, où une grande quantité de données résidait précédemment, nous pouvons effectuer une opération de rebalancement pour distribuer les données entre tous les bricks, y compris le nouveau brick ajouté.
- Géo-réplication – Cela fournit des sauvegardes de données pour la reprise après sinistre. Ici intervient le concept de volumes maître et esclave. Ainsi, si le maître tombe en panne, toutes les données peuvent être accessibles via l’esclave. Cette fonctionnalité est utilisée pour synchroniser les données entre des serveurs géographiquement séparés. L’initialisation d’une session de géo-réplication nécessite une série de commandes Gluster.
Voici la capture d’écran suivante qui montre le module de géo-réplication.

Liens de référence
C’est tout pour le moment ! Restez informé pour une description détaillée des fonctionnalités telles que Auto-guérison et Rebalancement, Géo-réplication, etc. dans mes prochains articles.