Qu'est-ce que CĂ©ph ?

3 avril 2024

Ceph est un open-source plate-forme logicielle qui fournit un stockage hautement évolutif basé sur des objets, des blocs et des fichiers dans un système unifié. Il est conçu pour fonctionner matériel de base, offrant une solution de stockage hautement fiable et facile à mettre à l'échelle pour les opérations de données volumineuses. Le système est conçu pour s’auto-réparer et s’autogérer, dans le but de minimiser le temps d’administration et les autres coûts.

Histoire de CĂ©ph

Ceph a été développé par Sage Weil dans le cadre de sa thèse de doctorat en informatique à l'Université de Californie à Santa Cruz (UCSC). Le projet a débuté en 2004 sous la direction du professeur Scott Brandt dans le cadre du Storage Systems Research Center de l'UCSC.

L'objectif principal de Ceph était de concevoir un système de stockage distribué capable d'évoluer jusqu'au niveau de l'exaoctet et au-delà tout en conservant des performances et une fiabilité élevées. Sage Weil et son équipe ont cherché à remédier aux limites des solutions de stockage existantes, qui souffraient souvent d'évolutivité, étaient sujettes à des goulots d'étranglement ou nécessitaient du matériel propriétaire coûteux.

Voici quelques Ă©tapes clĂ©s du dĂ©veloppement et de l’évolution de Ceph :

  • 2006. Le prototype initial de Ceph a Ă©tĂ© rendu public, prĂ©sentant son approche innovante du stockage distribuĂ©, notamment l'utilisation du Reliable Autonomic Distributed Object Store (RADOS) pour atteindre une Ă©volutivitĂ© et une disponibilitĂ© Ă©levĂ©es.
  • 2007. Ceph a Ă©tĂ© publiĂ© sous la licence LGPL 2.1 (Lesser General Public License), invitant une communautĂ© plus large de dĂ©veloppeurs Ă  contribuer Ă  son dĂ©veloppement.
  • 2010. La première version stable de Ceph, nommĂ©e Argonaut, a marquĂ© une Ă©tape importante pour le projet, dĂ©montrant sa maturitĂ© et sa stabilitĂ© pour les environnements de production.
  • 2011. Inktank Storage a Ă©tĂ© fondĂ©e par Sage Weil pour fournir un support commercial et des services Ă  Ceph, contribuant ainsi Ă  accĂ©lĂ©rer son adoption dans les environnements d'entreprise.
  • 2014. Red Hat, Inc. a acquis Inktank Storage, investissant ainsi davantage dans le dĂ©veloppement de Ceph et l'intĂ©grant dans sa suite de cloud et des solutions de stockage. Cette acquisition a Ă©tĂ© cruciale pour Ceph, car elle combinait les ressources et l'expertise de Red Hat avec la technologie innovante de Ceph.
  • 2015 et au-delĂ . Ceph a continuĂ© d'Ă©voluer, avec des versions rĂ©gulières ajoutant de nouvelles fonctionnalitĂ©s, amĂ©liorant les performances et Ă©largissant ses capacitĂ©s. La communautĂ© autour de Ceph s'est considĂ©rablement dĂ©veloppĂ©e et les dĂ©veloppeurs, les utilisateurs et les entreprises ont contribuĂ© Ă  son dĂ©veloppement et Ă  son dĂ©ploiement dans divers secteurs.

Architecture céph

L'architecture de Ceph est conçue pour l'évolutivité, la fiabilité et les performances, en tirant parti de la puissance de informatique distribuée pour gérer efficacement de grandes quantités de données. L'architecture est fondamentalement modulaire, permettant la mise à l'échelle indépendante de différents composants en fonction des exigences de la charge de travail. Voici un aperçu des composants clés de l'architecture de Ceph.

1. RADOS (Magasin d'objets distribués autonome fiable)

RADOS constitue le fondement de l'architecture Ceph, fournissant la capacité de stockage distribuée sous-jacente. Il gère stockage de données, réplication de données, et la récupération. Les clusters RADOS sont composés de deux types de daemons:

  • OSD (Object Storage DĂ©mons). Ceux-ci sont responsables du stockage des donnĂ©es, de la gestion de la rĂ©plication des donnĂ©es, de la rĂ©cupĂ©ration, du remplissage et du rĂ©Ă©quilibrage Ă  travers le cluster. Chaque dĂ©mon OSD dessert un disque de stockage et communique avec d'autres OSD pour garantir que les donnĂ©es sont rĂ©pliquĂ©es et distribuĂ©es de manière cohĂ©rente dans le cluster.
  • MON (Moniteurs). Les moniteurs conservent une copie principale de la carte du cluster, un enregistrement dĂ©taillĂ© de l'Ă©tat du cluster, y compris les OSD, leur Ă©tat et d'autres Ă©lĂ©ments critiques. mĂ©tadonnĂ©es. Les moniteurs garantissent que le cluster parvient Ă  un consensus sur l'Ă©tat du système Ă  l'aide de Paxos. algorithme, fournissant une vue fiable et cohĂ©rente du cluster Ă  tous les clients et OSD.

2. Algorithme ÉCRASEMENT

Ceph utilise l'algorithme CRUSH (Controlled Replication Under Scalable Hashing) pour stocker et rĂ©cupĂ©rer efficacement les donnĂ©es. CRUSH est une approche innovante qui permet Ă  Ceph de calculer oĂ¹ les donnĂ©es doivent Ăªtre stockĂ©es (ou rĂ©cupĂ©rĂ©es) dans le cluster sans avoir besoin d'une table de recherche centrale. Ce processus permet Ă  Ceph d'Ă©voluer horizontalement sans goulots d'Ă©tranglement ni points de dĂ©faillance uniques.

3. Interfaces de stockage Ceph

Ceph fournit plusieurs interfaces de stockage pour interagir avec la couche RADOS sous-jacente, rĂ©pondant ainsi Ă  diffĂ©rents besoins de stockage :

  • RBD (dispositif de blocage RADOS). Cette interface fournit un stockage par blocs, permettant Ă  Ceph d'Ăªtre utilisĂ© comme une solution de stockage par blocs Ă©volutive et distribuĂ©e pour machines virtuelles et bases de donnĂ©es.
  • CephFS (système de fichiers Ceph). Un compatible POSIX système de fichiers qui utilise Ceph pour le stockage, fournissant une interface de stockage de fichiers au cluster Ceph. Il offre des fonctionnalitĂ©s telles que des instantanĂ©s et des quotas.
  • RGW (RADOS RĂ©seau). Ceci permet d' object storage capacitĂ©s, offrant une interface compatible avec les API S3 et Swift. Il est couramment utilisĂ© Ă  l'Ă©chelle du Web object storage Besoins.

4. DĂ©mon Ceph Manager (ceph-mgr)

Le démon Ceph Manager est responsable du suivi d'exécution les métriques et l’état actuel du cluster. Il fournit des fonctionnalités essentielles de gestion et de surveillance, garantissant que les administrateurs disposent d'un aperçu en temps réel de l'état et des performances du cluster.

Comment fonctionne Ceph ?

Voici une explication Ă©tape par Ă©tape du fonctionnement de Ceph :

1. Distribution des données

Dans Ceph, toutes les données sont stockées sous forme d'objets dans un espace de noms plat. Lorsqu'un fichier est enregistré sur le cluster Ceph, il est divisé en blocs de taille fixe, qui sont ensuite encapsulés dans des objets. Ces objets constituent l'unité de stockage de base dans Ceph, contenant le bloc de données, les métadonnées et un identifiant unique.

Ceph utilise l'algorithme CRUSH pour dĂ©terminer comment stocker et rĂ©cupĂ©rer ces objets dans le cluster. CRUSH utilise l'identifiant unique de chaque objet pour calculer quels OSD doivent stocker les rĂ©pliques de l'objet. Ce processus permet Ă  Ceph de gĂ©rer le placement des donnĂ©es dans le cluster de manière dynamique et efficace sans s'appuyer sur un rĂ©pertoire centralisĂ© ou un nÅ“ud maĂ®tre.

2. Réplication des données

Pour garantir la pérennité des données et la haute disponibilité, Ceph réplique chaque objet plusieurs fois sur différents OSD. Le nombre de répliques est configurable (généralement trois) pour équilibrer entre redondance et l'efficacité du stockage.

Ceph garantit Ă©galement une forte cohĂ©rence. Lorsque des donnĂ©es sont Ă©crites ou modifiĂ©es, les modifications sont rĂ©pliquĂ©es sur toutes les copies avant que l'Ă©criture ne soit reconnue au client. Cela garantit que tous les clients voient les mĂªmes donnĂ©es, quelle que soit la rĂ©plique Ă  laquelle ils accèdent.

3. Tolérance aux pannes et auto-réparation

Les moniteurs Ceph (MON) surveillent l'Ă©tat du cluster, y compris l'Ă©tat des OSD et leur rĂ©partition dans le cluster. Les MON utilisent l'algorithme de consensus Paxos pour se mettre d'accord sur l'Ă©tat actuel du cluster, garantissant ainsi des vues cohĂ©rentes entre les nÅ“uds.

Lorsqu'un OSD échoue, Ceph redistribue automatiquement ses données vers d'autres OSD, en maintenant le niveau de réplication souhaité. Ce processus est connu sous le nom d'auto-guérison et permet de garantir que le système reste disponible et durable face aux matériel les échecs.

4. Accès aux données

Ceph fournit plusieurs interfaces pour l'accès aux donnĂ©es, chacune rĂ©pondant Ă  diffĂ©rents besoins de stockage :

  • Dispositif de blocage RADOS (RBD) pour le stockage en bloc, permettant aux machines virtuelles et aux bases de donnĂ©es de stocker des donnĂ©es sur Ceph comme s'il s'agissait d'un pĂ©riphĂ©rique de bloc local.
  • Système de fichiers Ceph (CephFS) pour le stockage de fichiers, fournissant un système de fichiers compatible POSIX pour stocker et gĂ©rer les fichiers dans une structure hiĂ©rarchique.
  • Passerelle RADOS (RGW) en object storage, proposant des API compatibles S3 et Swift pour stocker et accĂ©der aux donnĂ©es en tant qu'objets.

Les clients Ceph interagissent avec le cluster de stockage via ces interfaces. Ils utilisent librados, une bibliothèque qui implémente le protocole de communication avec les OSD Ceph, pour accéder aux données stockées dans le cluster.

5. Mise Ă  l'Ă©chelle

L'architecture de Ceph lui permet d'Ă©voluer jusqu'Ă  des milliers de nÅ“uds et des pĂ©taoctets jusqu'Ă  des exaoctets de donnĂ©es. Ajouter plus de capacitĂ© de stockage ou de performances est aussi simple que d'ajouter plus de nÅ“uds au cluster. L'algorithme CRUSH permet Ă  Ceph de gĂ©rer cette Ă©volutivitĂ© efficacement, en rĂ©partissant les donnĂ©es uniformĂ©ment sur le cluster, sans aucun goulot d'Ă©tranglement central.


Anastasie
Spasojevic
Anastazija est une rédactrice de contenu expérimentée avec des connaissances et une passion pour cloud l'informatique, les technologies de l'information et la sécurité en ligne. À phoenixNAP, elle se concentre sur la réponse à des questions brûlantes concernant la garantie de la robustesse et de la sécurité des données pour tous les acteurs du paysage numérique.