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