Glusterfs 3.1 : stockage distribué, redondant pour Linux 1

Glusterfs 3.1 : stockage distribué, redondant pour Linux

Il y a déjà quelques temps, j'avais écrit un article sur le logiciel glusterfs.

GlusterFS est un logiciel libre de système de fichiers distribué en parallèle, capable de monter jusqu'à plusieurs pétaoctet.

GlusterFS est un système de fichiers de cluster/réseaux. GlusterFS est livré avec deux éléments, un serveur et un client.

Le serveur de stockage (ou chaque serveur d'un cluster) fait tourner glusterfsd et les clients utilisent la commande mount ou glusterfs client pour monter les systèmes de fichiers servis, en utilisant FUSE.

GlusterFS repose sur un modèle client-serveur. Les Serveurs sont typiquement déployés comme des «briques de stockage», chaque serveur exécutant un daemon glusterfsd qui exporte un système de fichier local comme un «volume». Le processus client glusterfs, qui se connecte aux serveurs avec un protocole spécifique (implémenté au-dessus de TCP/IP, InfiniBand ou SDP), regroupe les volumes distants en un unique volume. Le volume résultant est alors monté par l'hôte client par un mécanisme FUSE. Les applications traitant des nombreuses entrées/sorties peuvent aussi utiliser la bibliothèque client libglusterfs pour se connecter directement à des serveurs et exécuter les traducteurs de façon interne sans avoir à passer par le système de fichier et le sur-débit induit par FUSE.

La plupart des fonctionnalités de GlusterFS sont implémentées comme traducteurs, incluant :

  • Duplication et Réplication par fichier
  • Partage de charge par fichier
  • Gestion des pannes
  • Ordonnancement et Cache disque
  • Quotas

Le serveur GlusterFS server est conçu très simplement: il exporte un système de fichier existant comme tel, laissant aux traducteurs côtés clients de structurer l'espace. Les clients eux-mêmes sont sans état, ne communiquent pas entre eux, et sont sensés disposer de configurations de traducteurs cohérents entre eux. Cela peut poser des problèmes, mais permet à GlusterFS de monter jusqu'à plusieurs peta-octets sur du matériel habituel en évitant les goulots d'étranglements qui affectent normalement les systèmes de fichiers distribués plus stricts.

(http://fr.wikipedia.org/wiki/GlusterFS)

Voici comment réaliser un système de fichier distribué sur 4 serveurs. Une redondance de 2 est requise pour chaque données (équivalent à un RAID1).

Les commandes ont été réalisées sous CENTOS 5 (en réalité, une VM HyperV ) . Pour simplifier mes propos, je pars du principe qu'aucun pare-feu n'est actif (IPtables/SELinux). Je travaille en root.

Installation de GlusterFS sous CentOS 5

1 ./ Installation des prérequis

yum -y install openssh-server wget fuse fuse-libs openib libibverbs

2./ Téléchargement de GlusterFS

wget http://download.gluster.com/pub/gluster/glusterfs/3.1/LATEST/CentOS/glusterfs-core-3.1.3-1.x86_64.rpm

wget http://download.gluster.com/pub/gluster/glusterfs/3.1/LATEST/CentOS/glusterfs-fuse-3.1.3-1.x86_64.rpm

wget http://download.gluster.com/pub/gluster/glusterfs/3.1/LATEST/CentOS/glusterfs-rdma-3.1.3-1.x86_64.rpm

wget http://download.gluster.com/pub/gluster/glusterfs/3.1/LATEST/CentOS/glusterfs-debuginfo-3.1.3-1.x86_64.rpm

3./ Installation de GlusterFS

rpm -Uvh glusterfs-core-3.1.3-1.x86_64.rpm

rpm -Uvh glusterfs-fuse-3.1.3-1.x86_64.rpm

rpm -Uvh glusterfs-rdma-3.1.3-1.x86_64.rpm

rpm -Uvh glusterfs-debuginfo-3.1.3-1.x86_64.rpm

4./ Démarrage du service GlusterFS

chkconfig glusterd on

/etc/init.d/glusterd start

5./ Création d'un repertoire local où seront sauvegardes les infos du cluster de stockage GlusterFS

mkdir /glusterlocal

Les quatre étapes ci-dessus sont à réaliser sur chacun des nœuds GlusterFS (192.168.1.1, 192.168.1.2, 192.168.1.3, 192.168.1.4, 192.168.1.5)

6./ Connexion aux différents nœuds GlusterFS depuis 192.168.1.1

gluster peer probe 192.168.1.2

gluster peer probe 192.168.1.3

gluster peer probe 192.168.1.4

gluster peer probe 192.168.1.5

gluster peer status

7./ Création d'un système de fichier «  test-volume »

gluster volume create test-volume replica 2 transport tcp 192.168.1.2:/glusterlocal 192.168.1.3:/glusterlocal 192.168.1.4:/glusterlocal 192.168.1.5:/glusterlocal

gluster volume start test-volume

gluster volume info test-volume

8./ Créer un point de montage pour «  test-volume » sur 192.168.1.1

mkdir /gluster

9./ Monter le système de fichier distribué

mount -t glusterfs 192.168.1.2:/test-volume /gluster

Plus d'info : http://www.gluster.com/community/documentation/index.php/Gluster_3.1_Filesystem_Administration_Guide

A propos Olivier Olejniczak

Cofondateur de SynerGeek.fr. Passionné d'informatique, je m'intéresse plus particulièrement aux technologies de virtualisation et de stockage. J'apprécie la liberté et la quasi-absence de frontières à mon imagination qu'offre l'OpenSource et Linux. Professionnellement, je travaille exclusivement avec les outils Microsoft. Les pieds bien sur terre et ancrés dans le quotidien de l'entreprise, j'aime faire partager mes découvertes et contribuer à un meilleur usage des technologies. Vous aussi, rejoignez-nous sur Synergeek et partagez votre expérience!

Je vous propose également...

Veille technologique du 13-02-2016 2

Veille technologique du 13-02-2016

Résultat de ma veille technologique de la semaine, les articles qui m'ont intéressés, interloqués parfois... …

Veille technologique du 23/01/2016 3

Veille technologique du 23/01/2016

Résultat de ma veille technologique de la semaine, les articles qui m'ont intéressés, interloqués parfois... …