Ceph

Cephest une solutionlibrede stockage distribué (software-defined storage) qui propose trois protocoles en un avec : Bloc, Fichiers & Objet (S3). Les objectifs principaux de Ceph sont d'être complètement distribués sanspoint unique de défaillance, extensible jusqu'à l'exaoctetet librement disponible. Les données sontrépliquées, permettant au système d'êtretolérant aux pannes.
Ceph fonctionne sur du matériel standard (serveurs x86) dit commoditaire et de l'Ethernet IP.
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, et d'être agnostique sur le choix du matériel associé (disques, serveurs commoditaires).
Ceph est souvent utilisé par les centres de données qui ont adopté l'Open source comme leur nouvelle norme pour le stockage blocs à forte croissance, le stockage objet et le Big data (datalakes).
Cephmet en œuvre le stockage d'objets distribué au moyen deRADOS(Reliable Autonomic Distributed Object Store), un moteur destockage objet fiable, autonome et distribué.
Côté client, sabibliothèque logiciellenativelibradospermet aux applications C, C++, Java, Python, Ruby et PHP un accès direct en mode objet. L'API S3 permet aux applications de déborder nativement dans le cloud.
Ce sont souvent des disques de grandes capacités qui sont associés au stockage objet S3 de Ceph pour des cas d'usages : Big Data (datalake), Data science, Container registry, Backup & Archives (GED, mails, WORM...), IOT, média & vidéosurveillance...
Différentes bibliothèques additionnelles permettent d'obtenir les abstractions nécessaires pour :
Le système de stockage en mode bloc de Ceph autorise les utilisateurs à monter Ceph comme un périphérique de type bloc. Quand une application écrit des données sur Ceph en utilisant un périphérique de bloc, Ceph parallélise et réplique les écritures de données à travers le cluster automatiquement. Ceph-RBD s'intègre aussi avec les machines virtuelles basées sur lenoyau Linux.
Ce sont souvent des disques rapides (NVMe, SSD) qui sont associés au stockage bloc de Ceph pour des cas d'usages : bases de données,machine virtuelle(VM),conteneur, Data analytics, AI/ML...
L'accès en mode bloc est notamment intégré à certaines plateformes de virtualisation, comme :
Cette intégration permet à une machine virtuelle d'utiliser directement un périphériqueRBDen guise dedisque durvirtuel.
Lesystème de fichiersde 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étadonnées du cluster de serveurs de ceph fournissent un service qui mappe les répertoires et les noms des fichiers du système de fichiers des objets stockés dans les grappes de serveurs RADOS (cluster). Les métadonnées peuvent se développer ou se contracter, ils peuvent rééquilibrer le système de fichiers de manière dynamique pour distribuer les données uniformément parmi les hôtes du cluster. Cela assure de hautes performances et prévient contre de lourdes charges sur un hôte spécifique du cluster.
Les clients montent le système de fichiers compatible POSIX en utilisant le noyau Linux d'un client. Le19 mars 2010, Linus Torvalds a fusionné le client Ceph dans le noyau Linux 2.6.34 qui est sorti le16 mai 2010. Un vieux client basé sur FUSE est disponible. Les serveurs fonctionnent comme des démons Unix ordinaires.
Le stockage fichier de Ceph est souvent associé aux cas d'usages : captures de journaux, messages, conteneurs CI/CD, filestore (sharing)…
Un système de fichiers sous-jacent sur les OSD est utilisé pour stocker la donnée sous la forme de fichiers dans une arborescence. (Un OSD est généralement un disque rotatif)
Ceph a été initialement créé parSage Weil(en)(développeur du concept deWebringet cofondateur de DreamHost) pour sa thèse de doctorat supervisée par le professeur Scott A. Brandt qui travaillait à la Jaskin Baskin School of Engineering de l'université de Californie à Santa Cruz, fondée par le DOE/NNSA (Department of Energy/National Nuclear Security Administration) en collaboration avec lelaboratoire national de Lawrence Livermore, lelaboratoire national de Los Alamoset le laboratoire national de Sandia.
Après sa remise de diplôme (Ph.D) à l'été 2007, Weil a continué à travailler sur Ceph à temps plein. L'équipe du développement du noyau s'est agrandie en incluant Yehuda Sadeh Weinraub et Gregory Farnum. En 2012, Weil créa Inktank Storage pour fournir des services et du support professionnel à Ceph.
Enavril 2014,Red Hata acheté Inktank prenant la plupart des développements de Ceph en interne pour en faire une version de production pour les entreprises avec du support (hotline) et de la maintenance (nouvelles versions). S. Weil poursuit le développement de Ceph comme architecte principal chez Red Hat.
Ceph continue de dominer le marché en tant que solution de stockage open source grâce aux efforts continus de développement de la communauté en délivrant de nouvelles fonctionnalités pour servir les besoins des entreprises et s'adapter à de nouveaux cas d'usage émergents tels que le stockage persistant pour les containers, l'Open Data Sciences, AI/ML, Kafka, Data analytics...
Le3 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é et de performances et les nouvelles fonctionnalités seront prévues pour les prochaines versions.
Le1janvier 2013, l'équipe de Ceph propose Bobtail, la2version majeure de Ceph. Cette version se concentre principalement sur la stabilité. les performances et l'évolutivité de la version stable précédente.
Le7 mai 2013, l'équipe de Ceph propose CuttleFish, la3version majeure de Ceph. Cette version inclut 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 ».
Le14 août 2013, l'équipe de développement sort Dumpling, la quatrième version majeure de Ceph. Cette version inclut un premier passage à l'espace de nom global et aux supports des régions, une API REST est aussi disponible pour des fonctions de management et de monitoring et un support amélioré pour les plateformes basé sur RHEL.
Le9 novembre 2013, L'équipe de développement sort Emperor, la cinquième 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 nombre de performances incrémentielles et du travail interne de refactorisation pour les fonctionnalités à venir dans Firefly.
Le7 mai 2014, L'équipe de développement de Ceph sort Firefly, la6version majeure de Ceph. Cette version apporte des nouvelles fonctionnalités incluant uncode correcteur, la cascade de cache, l'affinité primaire, clé/valeur OSD backend (Expérimental), radosgw autonome (Expérimental).
Le29 octobre 2014, l'équipe de développement de Ceph a sorti Giant, la7version majeure de Ceph.
Le7 avril 2015, l'équipe de développement de Ceph a sorti Hammer, la8version majeure de Ceph.
Le6 novembre 2015, l'équipe de développement de Ceph a sorti Infernalis, la9version majeure de Ceph. Cette dernière version supporte notamment Systemd pour la gestion des démons qui sont lancés avec l'utilisateur ceph au lieu de root.
Le21 avril 2016, l'équipe de développement de Ceph a sorti Jewel, la10version majeure de Ceph, et1version de Ceph dans laquelle CephFS est considéré comme stable.
Le20 janvier 2017, l'équipe de développement de Ceph a sorti Kraken, la11version majeure de Ceph. Cette nouvelle version apporte des améliorations au système de fichiers CephFS, à RADOS, le moteur de Ceph, à RGW et RBD.
Le29 août 2017, l'équipe de développement de Ceph a sorti Luminous, la12version majeure de Ceph. Parmi les nombreux apports, le format de stockage BlueStore  (utilisant un disque dur au lieu d'un système de fichier) est maintenant considéré comme stable et recommandé à utiliser.
Mimic est la13version majeure de Ceph.
Nautilus est la14version majeure de Ceph. Parmi les nombreux apports, le format de stockage BlueStore  (utilisant un disque dur au lieu d'un système de fichier) est maintenant considéré comme stable et recommandé à utiliser.
Octopus est la15version majeure de Ceph.
Pacific est la16version majeure de Ceph. Au menu, des améliorations sur l'utilitaire d'administration cephadm ainsi que sur le dashboard, le stockage RBD, le stockage objet RGW et CephFS.
Quincy est la17version majeure. Dans cette version, FileStore disparaît complètement au profit de BlueStore. Intégration de snmp dans cephadm.
Reef est la dernière version stable  (v18.2.0) de Ceph sortie le 4 août 2023.
Ceph utilise quatre démons distincts :
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 fichiers individuels sur des fichiers à travers de multiples nœuds pour fournir un débit plus élevé, de façon similaire au RAID 0 qui entrelace les partitions sur de multiples disques durs. L'équilibrage de charge adaptatif est supporté. Ainsi, les objets fréquemment consultés sont répliqués sur plus de nœuds.
Le nom « Ceph » est un nom souvent donné aux poulpes et aux céphalopodes, une famille de mollusques, 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 fichiers avec la mascotte de l'UCSC (Université de Californie), une limace appelée « Sammy ». La limace est un gastéropode, qui est aussi une classe de mollusque.
Leprojet ceph-helmpermet de déployer Ceph dans un environnement Kubernetes pour fournir un stockage persistant.
Les conteneurs Kubernetes sont sans état en tant que principe de base, mais les données doivent toujours être gérées, protégées et rendues accessibles à d'autres services. Stateless signifie que le conteneur s'exécute de manière isolée sans aucune connaissance des transactions passées, ce qui facilite le remplacement, la suppression ou la distribution du conteneur. Cependant, cela signifie également que sans stockage persistant, les données seront perdues pour certains événements du cycle de vie comme le redémarrage ou la suppression du conteneur. Ceph est utilisé pour éviter cette contrainte et provisionner de façon dynamique des volumes persistants (PV) aux conteneurs.