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.