Accueil🇫🇷Chercher

Ceph

Ceph est une solution libre de 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 sans point unique de dĂ©faillance, extensible jusqu'Ă  l'exaoctet et librement disponible. Les donnĂ©es sont rĂ©pliquĂ©es, permettant au système d'ĂŞtre tolĂ©rant aux pannes.

Ceph Storage
Description de l'image Ceph Logo.png.
Description de l'image Ceph stack.png.
Informations
Développé par Sage Weil (Red Hat), Yehuda Sadeh Weinraub, Gregory Farnum, Josh Durgin, Samuel Just, Wido den Hollander, Loïc Dachary
Dernière version 17.2.5 (Quincy, )[1] - [2]
DĂ©pĂ´t github.com/ceph/ceph
Écrit en C++ et Python
Système d'exploitation Linux
Environnement Linux (RHEL, Debian, Ubuntu, SUSE)
Type Système de fichiers distribué
Licence LGPL
Site web ceph.com

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).

Stockage objet S3

Ceph met en œuvre le stockage d'objets distribué au moyen de RADOS (Reliable Autonomic Distributed Object Store), un moteur de stockage objet fiable, autonome et distribué.

Côté client, sa bibliothèque logicielle native librados permet 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 capacitifs 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 :

  • L'accès en mode bloc grâce Ă  RADOS Block Device (RBD) ou iSCSI
  • L'accès en mode fichier grâce Ă  CephFS
  • L'accès en mode HTTP REST via les interfaces Amazon S3 ou OpenStack Swift grâce Ă  la passerelle RADOS (RADOS Gateway ou RADOSGW)

Stockage en mode bloc

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 le noyau Linux.

  • Ceph-RBD s'interface avec le mĂŞme système d'objet de stockage que l'API librados et le système de fichiers 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 a hĂ©ritĂ© des capacitĂ©s de librados, incluant les instantanĂ©s (snapshots) en lecture seule et le retour aux snapshots. En parallelisant les Ă©critures des images sur le cluster, Ceph amĂ©liore les performances d'accès en lecture sur les grosses images de pĂ©riphĂ©rique de bloc.
  • Ceph-iSCSI est une passerelle qui permet d'accĂ©der Ă  un stockage en bloc distribuĂ© hautement disponible Ă  partir de n'importe quel serveur ou client Microsoft Windows ou VMware VSphere capable d'utiliser le protocole iSCSI. En utilisant Ceph-iSCSI sur un ou plusieurs hĂ´tes de passerelle iSCSI, les images Ceph-RBD deviennent disponibles en tant qu'unitĂ©s logiques (LU) associĂ©es Ă  des cibles iSCSI, auxquelles il est possible d'accĂ©der de manière hautement disponible et Ă  charge Ă©quilibrĂ©e.

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...

Intégration

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ériques RBD en guise de disque dur virtuel.

Stockage en mode fichier

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étadonnées du cluster de serveurs de ceph fournit 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 et 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 des 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. Le , Linus Torvalds a fusionné le client Ceph dans le noyau Linux 2.6.34 qui est sorti le . 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)…

Systèmes de fichiers sous-jacent

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)

  • En test
  • Production
    • Bluestore (qui n'est pas un système de fichiers Ă  proprement parler, mais une utilisation du disque en raw device)
    • Ext4 (Ă  petite Ă©chelle)
    • XFS (dĂ©ploiement en entreprise)

Historique

Ceph a été initialement créé par Sage Weil (en) (développeur du concept de Webring et 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 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 (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.

En , Red Hat a 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...

Argonaut (v0.48)

Le , 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.

Bobtail (v0.56)

Le , 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)

Le , l'équipe de Ceph propose CuttleFish, la 3e version 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 ».

Dumpling (v0.67)

Le , 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.

Emperor (v0.72)

Le , 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.

Firefly (v0.80)

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

Giant (v0.87)

Le , l'équipe de développement de Ceph a sorti Giant, la 7e version majeure de Ceph.

Hammer (v0.94)

Le , l'équipe de développement de Ceph a sorti Hammer, la 8e version majeure de Ceph.

Infernalis (v9.2.0)

Le , l'équipe de développement de Ceph a sorti Infernalis, la 9e version 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[3].

Jewel (v10.2.0)

Le , l'équipe de développement de Ceph a sorti Jewel, la 10e version majeure de Ceph, et 1re version de Ceph dans laquelle CephFS est considéré comme stable[4].

Kraken (v11.2.0)

Le , l'équipe de développement de Ceph a sorti Kraken, la 11e version majeure de Ceph. Cette nouvelle version apporte des améliorations au système de fichiers CephFS, à RADOS, le moteur de Ceph, à RGW et RBD[5].

Luminous (v12.2.0)

Le , l'équipe de développement de Ceph a sorti Luminous, la 12ème version 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 (v13.0.0)

Mimic est la 13ème version majeure de Ceph[6].

Nautilus (v14.2.0)

Nautilus est la 14ème version 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[7].

Octopus (v15.2.0)

Octopus est la 15ème version majeure de Ceph[8].

Pacific (v16.2.0)

Pacific est la 16ème version majeure de Ceph[9]. 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

Quincy est la dernière version stable  (v17.2.0) de Ceph sortie en 2022.

Conception

Ceph utilise quatre démons distincts :

  • Supervision du cluster (ceph-mon), virtualisable, qui effectue un suivi des nĹ“uds des clusters actif et en Ă©chec.
  • Serveurs de mĂ©tadonnĂ©es (ceph-mds), virtualisable, qui stocke les mĂ©tadonnĂ©es des inodes et des rĂ©pertoires.
  • PĂ©riphĂ©rique de stockage d’objets (ceph-osd) qui stocke le contenu des fichiers. IdĂ©alement, les OSDs stockent leurs donnĂ©es sur un système de fichiers local en Btrfs pour tirer parti des capacitĂ©s de copies sur Ă©critures intĂ©grĂ©es, bien que d'autres systèmes de fichiers locaux puissent ĂŞtre utilisĂ©s Ă  la place.
  • Transfert d'Ă©tat reprĂ©sentationnel (RESTful) passerelle (ceph-rgw), virtualisable, 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 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Ă© par lequel les objets frĂ©quemment consultĂ©s sont rĂ©pliquĂ©s sur plus de nĹ“uds.

Étymologie

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.

Kubernetes

Le projet ceph-helm permet 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.

  • Rook est un outil d'orchestration du stockage qui fournit une solution open source cloud native pour un ensemble diversifiĂ© de fournisseurs de stockage. Rook utilise la puissance de Kubernetes (K8S) pour transformer un système de stockage en services autogĂ©rĂ©s qui offrent une expĂ©rience transparente pour la sauvegarde des donnĂ©es d'application ou de dĂ©ploiement Kubernetes.
  • Ceph est une solution de stockage distribuĂ© hautement Ă©volutive offrant un stockage d'objets, de blocs et de fichiers. Les clusters Ceph sont conçus pour s'exĂ©cuter sur n'importe quel matĂ©riel Ă  l'aide de l'algorithme dit CRUSH (rĂ©plication contrĂ´lĂ©e sous hachage Ă©volutif, Crush gère la dĂ©connexion sauvage de nĹ“uds, par accident ou pour remplacement) et fournir un stockage persistant pour les conteneurs kubernetes. L'un des principaux avantages de ce dĂ©ploiement est d’obtenir une solution de stockage hautement Ă©volutive sans avoir Ă  la configurer manuellement Ă  l'aide de la ligne de commande Ceph, car Rook la gère automatiquement. Les applications Kubernetes peuvent ensuite monter des pĂ©riphĂ©riques blocs, des systèmes de fichiers et objet S3 Ă  partir de Rook pour prĂ©server et surveiller leurs donnĂ©es d'application.

Voir aussi

Notes et références

  1. « https://github.com/ceph/ceph/releases/tag/v17.2.5 » (consulté le )
  2. « https://ceph.io/en/news/blog/2022/v17-2-5-quincy-released/ » (consulté le )
  3. « v9.2.0 Infernalis released », sur ceph.com (consulté le )
  4. « v10.2.0 Jewel released Â»
  5. « v11.2.0 Kraken released Â»
  6. « Mimic », sur ceph.com (consulté le ).
  7. « Nautilus », sur ceph.com (consulté le ).
  8. « Octopus », sur ceph.com (consulté le ).
  9. (en) « V16.2.0 Pacific released », sur Ceph (consulté le ).

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.