WEB-d Développement Web

PHP, SQL, HTML5, CSS3, Javascript, Mootools, Référencement, SEO, CMS, e-commerce, Apache, Linux, Ubuntu, ...

Système de fichier distribué GlusterFS

Logo GlusterFS

GlusterFS est un système de fichier distribué. Les fichiers sont stockés sur un cluster de serveurs reliés par une réseau local Ethernet ou InfiniBand. Les clients peuvent utiliser le système de fichier simplement avec la commande mount, comme pour n'importe quel système de fichier.

GlusterFS n'utilise pas de serveur central pour le stockage des metadata (sur quel serveur est situé quel fichier, etc.). Il n'y as donc pas de "central point of failure" ni de "bottleneck", ce qui permet d'utiliser GlusterFS pour des volumes jusqu'à plusieurs pétabytes. En contrepartie, les clients doivent absolument utiliser un fichier de configuration qui correspond exactement à l'architecture du cluster, sous peine de corrompre le système de fichier. Tous les clients doivent naturellement utiliser le même fichier de configuration.

Les serveurs

L'installation du serveur sur Ubuntu est très simple:

sudo apt-get install glusterfs-server

GlusterFS fonctionne grâce à des "translators" qui prennent en charge différentes fonctionnalités. Le fichier de configuration d'un server liste donc plusieurs "translators" afin d'obtenir la comportement désiré. Ce fonctionnement rend la configuration relativement complexe. Heureusement GlusterFS est fourni avec l'outil glusterfs-volgen qui permet de créer directement un fichier de configuration "de base" pour les cas les plus courants.

Pour l'exemple, imaginons une configuration avec 2 serveurs (192.168.1.10 et .11) qui stockent les données dans /var/glusterfs/store1. La commande correspondante sera:

glusterfs-volgen -n store1 192.168.1.10:/var/glusterfs/store1 192.168.1.11:/var/glusterfs/store1

glusterfs-volgen crée alors 3 fichiers: 1 pour chaque serveur, et 1 pour les clients. Il suffit alors de transférer les fichiers sur les serveurs respectifs, de les copier vers /etc/glusterfs/glusterfsd.vol et de redémarrer le serveur:


sudo mkdir -p /var/glusterfs/store1
sudo cp 192.168.1.10-store1-export.vol /etc/glusterfs/glusterfsd.vol
sudo /etc/init.d/glusterfs-server restart

Réplication

Par défaut, les fichiers sont simplement distribués entre les différents serveurs. Les fichiers ne sont donc pas protégés en cas de crash et il vaut donc mieux prévoir un système de backups ou un système RAID 1 ou RAID 5 afin de se protéger contre la perte de données.

GlusterFS avec distribution et réplication des fichiers sur 4 serveurs

Ou alors, il est également possible de configurer GlusterFS pour répliquer ET distribuer les fichiers au sein du cluster, comme sur la figure ci-dessus. Pour cela il suffit d'ajouter le paramètre --raid=1 à la commande glusterfs-volgen:

glusterfs-volgen -n store1 --raid=1 192.168.1.10:/var/glusterfs/store1 ...

Les clients

L'installation du client est également très simple:

sudo apt-get install glusterfs-client

Une fois le fichier de configuration store1-tcp.vol transféré vers le client (par exemple vers /etc/glusterfs/store1-tcp.vol), il suffit alors de monter le volume:


sudo mkdir /mnt/store1
sudo mount -t glusterfs /etc/glusterfs/store1-tcp.vol /mnt/store1

Pour que le client "monte" automatiquement le volume au démarrage, il faut ajouter la ligne suivante dans /etc/fstab:

/etc/glusterfs/store1-tcp.vol  /mnt/store1  glusterfs  defaults  0  0

Articles similaires