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
SynerGeek.fr Informatique & Veille Technologique
