VT2017 GlusterFS

From air
Revision as of 22:25, 18 October 2017 by Vincent.Turrin (talk | contribs)
Jump to navigation Jump to search

Présentation

60 px
  • Sujet : GlusterFS : système de fichiers distribué
  • Auteur : Vincent TURRIN

Résumé

GlusterFS est un logiciel open-source utilisé dans un but de gérer des volumes de données distribuées entre différents serveurs. Des clients peuvent avoir accès à ces données, en laissant transparent la répartition des données sur ces différents serveurs. GlusterFS est une solution très flexible et modulable.

  • Mots clés :

Abstract

  • Keywords :

Le projet GlusterFS

GlusterFS est un projet entièrement open-source chiffré à 136,000,000$, il était initialement développé par l'entreprise Gluster qui a rapidement été rachetée par Red Hat. GlusterFS est entièrement gratuit. Cependant, sa version pour entreprise Red Hat® Storage (basé sur GlusterFS) propose un service de support commercial.

But de GlusterFS

GlusterFS permet de gérer un système de fichier distribué avec de multiples serveurs. Un cluster de serveurs se partagent des briques de données (avec plus ou moins de redondances selon les paramètres choisis), les clients peuvent alors monter un volume distribué sur leur machine. Ce volume distribué apparaîtra dans le système de fichier du client, tel un dossier classique. Dans ce volume monté, la répartition des données sur les serveurs ainsi que la gestion réseau, seront entièrement transparents pour l'utilisateur : ce dernier pourra y accéder comme si le dossier se trouvait sur sa machine.

L'exemple décrit précédemment prend l'exemple d'une machine cliente classique, mais il faut avoir dans la tête que ce client peut-être un serveur ayant besoin de l'accès à ces données. GlusterFS peut être utilisé dans n'importe quel projet à grande échelle. Il permet de gérer des volumes allant jusqu'au pétaoctets.

GlusterFS permet de gérer de façon transparente et personnalisée (répartition, redondance...) des données sur de multiples serveurs. Des clients et des serveurs peuvent facilement et à n'importe quel moment se connecter aux volumes créés.

Fonctionnement général de GlusterFS

Utilisation

  • Groupe de confiance : les serveurs se découvrent mutuellement grâce à la fonction probe.
  • Un serveur initie un volume
  • N'importe quel serveur présent dans le groupe de confiance du serveur ayant initié le volume peut le rejoindre à tout moment.
  • Des bricks peuvent être montées sur un certain volume (à tout moment et par n'importe quel serveur), venant agrandir le volume distribué.

Caractéristiques principales des volumes

Les caractéristiques des bricks : redondance, répartition sur les serveurs peuvent entièrement être paramétrées.

Avec ces caractéristiques GlusterFS permet de répondre à la demande actuelle : la répartition permet des performances accrues, la redondance des données permet d'augmenter la disponibilité.

La caractéristique majeur qui fait de GlusterFS une solution de choix est sa facilité à scale-out, c'est à dire rajouter sans aucun problème à un volume, d'autres serveurs et donc des capacités, que cela soit de stockage, de performance, ou bien de disponibilité. On s'adapte alors facilement à la charge. Ce scaling n'a quasiment aucune limite, même si cela devient inutile passé une limite quand il s'agit de la parallélisation des requêtes sur différents serveurs. Ce scaling n'a également quasiment aucun coût...

Exemple d'un volume GlusterFS

Afin d'avoir un exemple plus concret, voici un volume qui utilise la redondance et la répartition.

Example GlusterFS distributed replicated volume.png

  • Le client a monté le Distributed Volume
  • Il dépose deux fichiers File 1 et File 2 sur le volume qu'il a monté

On peut voir qu'avec les options choisies :

  • Redondance : chaque fichier se trouve sur deux serveurs différents : si l'un des serveurs lâche, le fichier sera directement copié sur un autre serveur afin d'assurer la redondance de 2.
  • Répartition : Les fichiers que le clients a déposés sont séparés sur deux "groupes de serveurs" différents. La logique est que lorsqu'il aura besoin de ces fichiers (probablement les deux en même temps), un serveur pourra lui envoyer le premier fichier et un deuxième serveur le deuxième. Sur des tailles plus élevés cette logique a totalement sont utilisation.


Des volumes "striped" sont également possibles, où des bouts de fichiers se trouvent sur des serveurs distincts. C'est utile sur de très gros fichiers pour améliorer les performances. Exemple : GlusterFS Striped.png

Personnalisation des volumes

GlusterFS est capable d'utiliser toutes les technologies qui peuvent être nécessaires. Que cela soit de multiples systèmes de fichiers, les techniques de tolérance aux pannes (RAID ou autre...) ... A vous de creuser selon vos besoins !

Références