Ceph (stockage)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Ceph
Ceph Logo.png

Développeurs Sage Weil, Yehuda Sadeh Weinraub, Gregory Farnum, Josh Durgin, Samuel Just, Wido den Hollander, Loïc Dachary
Dernière version 0.87 Giant
Environnement Linux
RHEL
Debian
Ubuntu
SUSE
Type Système de fichiers distribué
Licence LGPL
Site web ceph.com

Ceph est une plateforme libre de stockage distribué. Les objectifs principaux de Ceph sont d'être complètement distribué sans point unique de défaillance, extensible jusqu'à l'exabyte (en) et librement disponible. Les données sont répliquées permettant au système d'être tolérant aux pannes.

Ceph fonctionne sur du matériel non spécialisé. Le système est conçu pour s'autoréparer et automatiser au maximum ses tâches administratives afin de réduire les coûts d'exploitation.

Stockage objet[modifier | modifier le code]

Ceph implémente le stockage d'objets distribué. L'API librados de Ceph fournis des applications locales avec accès direct de manière fiable et autonome aux objets de stockage distribué (RADOS) ainsi que la base pour l'accès à certaines fonctions de Ceph incluant : RADOS Périphérique de Bloc (RBD), Passerelle RADOS et le système de fichier de Ceph.

L'API librados fournissent un accès en C, C++, Java, Python et Php. La passerelle RADOS expose le magasin d'objet dans une interface RESTful qui peut fournir un accès aux API de Amazon S3 et OpenStack Swift.

Stockage de blocs[modifier | modifier le code]

Le système de stockage d'objets de Ceph autorise les utilisateurs à monter Ceph comme un périphérique de bloc finement provisionné. Quand une application écrit des données sur Ceph en utilisant un périphérique de bloc, ceph entrelace et réplique les données à travers le cluster automatiquement. Ceph RBD s'intègre aussi avec les machines virtuelles basées sur le kernel.

Ceph RBD s'interface avec le même système d'objet de stockage que l'API librados et le système de fichier CephFS, et il stocke les images de périphérique de bloc comme des objets. Depuis que RBD est construit au dessus de librados , RBD à hérité des capacités de librados, incluant les snapshots en lecture seule et le retour au snapshots. En entrelaçant les images sur le cluster, Ceph améliore les performances d' accès en lecture sur les grosses images de périphérique objet.

Intégrations[modifier | modifier le code]

Les périphériques objets sont supportés sur les plateformes de virtualisation, comme :

  • Apache CloudStack
  • OpenStack
  • OpenNebula
  • Ganeti
  • Proxmox Virtual Environment.

Cette intégration autorise les administrateurs à utiliser les périphériques de blocs de Ceph comme du stockage pour leurs environnements de machines virtuelles.

Système de fichiers[modifier | modifier le code]

Le système de fichiers de Ceph (CephFS) fonctionne au dessus du système de stockage d'objet qui fournit le stockage d'objets et les interfaces de périphérique de bloc. Les métadatas du cluster de serveurs de ceph fournit un service qui mappe les répertoires et les noms des fichiers du système de fichier des objets stockés dans les clusters RADOS. Les métadatas peuvent se développer ou se contracter et ils peuvent rééquilibrer le système de fichier de manière dynamique pour distribuer les données uniformément parmi les hôtes du cluster. Cela assure des hautes performances et prévient contre de lourdes charges sur un hôte spécifique du cluster.

Les clients monte le système de fichiers compatible POSIX en utilisant le kernel linux d'un client. Le 19 mars 2010, Linus Torvalds à fusionné le client Ceph dans le Kernel Linux 2.6.34 qui est sorti le 16 mai 2010. Un vieux client basé sur FUSE est disponible. Les serveurs fonctionnent comme des démons Unix ordinaires.

Systèmes de fichier sous-jacent[modifier | modifier le code]

  • En test
    • btrfs
    • ZFS (sous Linux)
  • Production
    • ext4 (à petite échelle)
    • XFS (déploiement en entreprise)

Historique[modifier | modifier le code]

Ceph à été initialement créer par Sage Weil (en) (développeur du concept de Webring et co-fondateur de DreamHost) pour sa thèse de doctorat qui était supervisée par le professeur Scott A. qui travaillait à la Jaskin Baskin School of Engineering de l'université de Californie à Santa Cruz et fondée par le DOE/NNSA impliquant le laboratoire national de Lawrence Livermore, le laboratoire national de Los Alamos et le laboratoire national de Sandia.

Après sa remise de diplôme à l'été 2007, Weil à continué de travailler sur Ceph à temps plein. L'équipe du développement du noyau s'est angrandie en incluant Yehuda Sadeh Weinraub et Gregory Farnum. En 2012, Weil créa Inktank Storage pour fournir des services et du support professionnel à Ceph.

En avril 2014, Red Hat a acheté Inktank prenant la plupart des développements de Ceph en interne.

Argonaut (v0.48)[modifier | modifier le code]

Le 3 juillet 2012, l'équipe de développement a proposé la version Argonaut, la première version « stable » de Ceph. Cette version recevra seulement des patchs de stabilités et de performances et les nouvelles fonctionnalités seront prévues pour les prochaines versions.

Bobtail (v0.56)[modifier | modifier le code]

Le 1er janvier 2013, l'équipe de Ceph propose Bobtail, la 2e version majeure de Ceph. Cette version se concentre principalement sur la stabilité. les performances et l'évolutivité de la version stable précédente.

Cuttlefish (v0.61)[modifier | modifier le code]

Le 7 mai 2013, l'équipe de Ceph propose CuttleFish, la 3e version majeure de Ceph. Cette version inclue un nombre important d'améliorations de performance et est la première version stable à proposer la fonctionnalité d'outil de déploiement 'ceph-deploy' à la place de la méthode précédente 'mkcephfs'.

Dumpling (v0.67)[modifier | modifier le code]

Le 14 août 2013, l'équipe de développement sort Dumpling, la 4e version majeure de Ceph. Cette version inclue un premier passage à l'espace de nom global et aux supports des régions, une RESTAPI est aussi disponible pour des fonctions de management et de monitoring et un support amélioré pour les plateformes basé sur RHEL.

Emperor (v0.72)[modifier | modifier le code]

Le 9 novembre 2013, L'équipe de développement sort Emperor, la 5e version majeure de Ceph. Cette version apporte un lot de nouvelles fonctionnalités, incluant la réplication multi-datacenter pour le radosgw, améliore la facilité d'utilisation et un grand nombres de performances incrémentielle et du travail interne de refactorisation pour le fonctionnalités à venir dans Firefly.

Firefly (v0.80)[modifier | modifier le code]

Le 7 mai 2014, L'équipe de développement de Ceph sort Firefly, la 6e version majeure de Ceph. Cette version apporte des nouvelles fonctionnalités incluant l'effacement de codage, la cascade de cache, l'affinité primaire, clé/valeur OSD backend (Expérimental), radosgw autonome (Expérimental).

Giant (v0.87)[modifier | modifier le code]

Le 29 octobre 2014, l'équipe de développement de Ceph à sorti Giant, la 7e version majeure de Ceph.

Conception[modifier | modifier le code]

Ceph utilise 4 démons distinct :

  • Monitoring du cluster (ceph-mon), qui effectue un suivi des noeuds des clusters actif et en défaut.
  • Serveurs de métadata (ceph-mds) qui stocke les métadatas des inodes et des répertoires.
  • Périphérique de stockage d'objet (ceph-osds) qui stocke actuellement le contenu des fichiers. Idéalement, les OSDs stockents leurs données sur un systéme de fichier local en btrfs pour tirer parti des capacités de copies sur écritures intégrées, bien que d'autres systémes de fichier locaux peuvent être utilisé à la place.
  • Transfert d'état représentationnel (RESTful) passerelle (ceph-rgw), qui expose les couches de stockages d'objet comme une interface compatible avec Amazon S3 et les API d'OpenStack Swift.

Tous ces démons fonctionnent de manière complètement distribuée et peuvent s'exécuter sur le même ensemble de serveurs. Les clients interagissent directement avec tous.

Ceph fait de l'entrelacement de fichier individuel sur des fichiers à travers de multiple noeuds pour fournir un débit plus élevé, similairement au RAID0 qui entrelace les partitions sur de multiples disques durs. L'équilibrage de charge adaptatif est supporté par lequel les objets fréquemment consultés sont répliqués sur plus de noeuds.

Étymologie[modifier | modifier le code]

Le nom « Ceph » est un nom souvent donné aux poulpes et aux céphalopodes, une familles de molusques, et en fin de compte de l'ancien Grec κεφαλή (ke-pha-lee), qui veut dire « tête » et πόδι (po-dhi), qui veut dire « jambes ». Le nom (souligné par le logo) suggère le comportement fortement parallèle d'un poulpe et a été choisi pour connecter le système de fichier avec la mascotte de l'UCSC (Université de Californie), une limace appelée « Sammy ». La limace est un gastropode, qui est aussi une classe de mollusque.

Voir aussi[modifier | modifier le code]

Notes et références[modifier | modifier le code]

Liens externes[modifier | modifier le code]