Ceph

Fiche logiciel validé
  • Création ou MAJ importante : 13/09/13
  • Correction mineure : 13/09/13
  • Rédacteur de la fiche : Olivier Langella - UMR de Génétique Végétale (CNRS, INRA, AgroParisTech, Université Paris Sud)
  • Relecteur(s) : Loïc Dachary (dachary.org)
    David Rousse (CNRS DSI)
  • Contributions importantes : Loïc Dachary
  • Responsable thématique : Gilian Gambini (CNRS DSI)
Mots-clés
Pour aller plus loin

Ceph : système de stockage distribué

Description
Fonctionnalités générales

Ceph est un système de stockage résilient, auto réparant et distribué.

Il contient trois composants : objets, bloc et système de fichiers.

Le stockage objet est accessible par une API spécifique et disponible dans plusieurs langages ou bien via radosgw, une interface REST qui offre une compatibilité pour les applications écrites pour S3 ou Swift.

Rados Block Device (ou RBD) donne accès à des périphériques en mode bloc qui sont divisés et répliqués sur l'ensemble du cluster.

Le dernier composant est encore expérimental : un système de fichiers conforme à POSIX et conçu pour maximiser les performances, permettre le stockage de grands ensemble de données et maximiser la compatibilité avec les applications existantes.

Autres fonctionnalités

Ceph peut permettre le stockage direct d'objets binaires et de métadonnées associées (interface de programmation disponible).

Interopérabilité

Interface REST S3 et Swift, compatibilité POSIX du système de fichiers, intégration dans le kernel linux, kvm et libvirt. Intégration dans OpenStack et Apache CloudStack.

Contexte d'utilisation dans mon laboratoire/service

Ceph est utilisé en production dans la plateforme PAPPSO. Le cluster de stockage est composé de 3 serveurs bi-processeurs et d'un switch gigabit. La capacité actuelle est de 34 To (17 To utiles). Un cluster de calculs de 3 machines utilise ce cluster : chaque nœud de calcul peut profiter d'une bande passante maximum dépendante du nombre de cartes réseaux.

Limitations, difficultés, fonctionnalités importantes non couvertes
  • Ceph est à utiliser avec précaution : la partie RBD et REST (accès par périphérique bloc et compatibilité S3 et Swift) est considérée comme stable, mais la partie système de fichiers est encore considérée par les développeurs comme "expérimentale".

  • Le projet est très actif (une version de développement toutes les deux semaines, une version stable tous les trois mois). De nombreuses améliorations sont régulièrement apportées et les régressions sont vite corrigées.

  • Pour ce qui est de la fiabilité, il résiste extrêmement bien aux problèmes matériels et aussi aux erreurs humaines.

  • Les performances sont correctes (90 Mo/s en lecture/écriture avec accès concurrents) et l'espace de stockage est extensible très facilement (achat de disques, cartes réseaux ou serveurs supplémentaires).

  • Gros avantage enfin, le matériel est standard (pas de fiber channel, RAID, ...), les coûts sont donc faibles et l'on n'a pas besoin de prévoir l'espace de stockage à l'avance.

Il est donc nécessaire d'établir une stratégie pour assurer un service de qualité en production basé sur Ceph :

  • installer uniquement les versions stables publiées tout les trois mois,
  • mettre à jour les versions stables lorsqu'une version de maintenance est disponible, deux semaines après sa publication,
  • ne pas utiliser le système de fichiers.
Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

Debian GNU/Linux, Ubuntu, RedHat, CentOS

Plates-formes

GNU/Linux uniquement (effort de portage sur Mac OS embryonnaire).

Logiciels connexes
Autres logiciels aux fonctionnalités équivalentes

Lustre, GlusterFS, MooseFS, Riak

Environnement de développement
Type de structure associée au développement

La société Inktank créée en 2012 emploie la plupart des développeurs Ceph. Elle fournit une offre complète de support aux entreprise pour les projets de stockage.

Eléments de pérennité
  • Ceph est un logiciel libre sous licence LGPL. Son développement est très ouvert et respecte les us et coutumes de la communauté Open Source (release often, release soon) : serveur git accessible, mailing liste ouverte, IRC très actif, organisation de la roadmap par des conférences publiques (Ceph Design Summit), ...

  • Le noyau Linux intègre le client Ceph depuis sa version 2.6.34.

  • libvirt intègre le protocole Ceph.

  • kvm intègre le protocole Ceph.

  • OpenStack supporte nativement Ceph.

Références d'utilisateurs institutionnels
  • Université de Nantes
  • INRA
  • Cloudwatt (hors ESR).
Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur
Contributions