ekzman - Fotolia
Stockage : le point sur Ceph
Ceph est une plateforme de stockage distribuée et évolutive qui peut se développer en fonction des besoins. Cet article fait le point sur sa popularité, sur ses différentes incarnations et sur la manière de contourner ses difficultés.
Les entreprises déploient régulièrement le stockage Ceph dans leurs centres de données ou envisagent de le faire. Cette plateforme est aujourd’hui populaire en raison de sa flexibilité, de son évolutivité, de sa fiabilité et de sa disponibilité.
Ceph est une plateforme Open source qui distribue les données sur plusieurs nœuds de stockage. Les entreprises peuvent la déployer sur des équipements génériques, ce qui permet de réduire les coûts d’infrastructure.
Cependant, Ceph est un système complexe qui peut être difficile à mettre en œuvre et à maintenir. Les équipes IT se retrouvent devant la nécessité de bien comprendre son fonctionnement et de préparer soigneusement chaque déploiement. Dans certains cas, les entreprises se tournent vers des implémentations commerciales de Ceph – prises en charge par leurs éditeurs – plutôt que s’efforcer de mettre en œuvre la version gratuite par leurs propres moyens.
Comment fonctionne le stockage Ceph ?
Les architectures de stockage traditionnelles reposent souvent sur une interface centralisée ou un autre composant qui sert de point d’entrée aux sous-systèmes de stockage, lesquels figurent les véritables fondations de la solution. Cette approche peut limiter l’évolutivité, réduire les performances et créer un point de défaillance unique. Ceph élimine le besoin d’un point d’entrée centralisé en distribuant les données sur plusieurs nœuds qui peuvent interagir directement, aussi bien entre eux qu’avec les systèmes clients.
De plus, Ceph peut fournir des services de stockage en modes objet, bloc et fichier, le tout au sein d’un même cluster.
Pour faciliter ces opérations, Ceph utilise les couches d’abstraction logicielle suivantes pour créer une plateforme complète de SDS (système de stockage uniquement logiciel) :
- Reliable Autonomic Distributed Object Store (RADOS). Un système de stockage évolutif et intelligent qui distribue les données dans le cluster Ceph. C’est le véritable centre nerveux de la plateforme.
- RADOS Gateway (RGW). Le service de stockage en mode objet, compatible avec les API de stockage S3 et Swift.
- RADOS Block Device (RBD). Le service de stockage en mode bloc qui répartit les disques virtuels sur les ressources physiques pour offrir des avantages similaires à ceux d’un SAN.
- Ceph File System (CephFS). Le Service de stockage en mode fichier qui fournit un système de fichiers distribués compatible POSIX.
- Librados. Une API qui permet aux entreprises de créer leurs propres interfaces avec le cluster de stockage Ceph plutôt que de passer par les interfaces RGW, RBD ou CephFS.
En utilisant ces couches d’abstraction, Ceph peut atteindre un niveau d’évolutivité et de flexibilité supérieur à celui des systèmes de stockage traditionnels. Les clusters Ceph utilisent ces couches pour créer des pools de stockage logiques découplés du stockage physique sous-jacent.
Comment fonctionne un cluster Ceph ?
Un cluster Ceph est constitué de plusieurs nœuds qui fonctionnent sur des serveurs génériques. La plupart d’entre eux sont des nœuds de stockage auxquels sont rattachés des disques durs, des SSD ou une combinaison des deux. Les autres nœuds servent à exécuter les opérations de gestion et de mise en service des possibilités de stockage, en collaboration avec les nœuds de stockage.
Les nœuds d’un cluster exécutent différents types de démons (logiciels qui fonctionnent en tâche de fond) pour ces opérations. Les démons peuvent communiquer directement entre eux et avec les clients qui accèdent aux données, ce qui évite le risque d’un point de défaillance unique. Un cluster Ceph repose sur quatre types de démons :
Ceph Monitor. Ce démon cartographie le cluster. Il maintient la copie maîtresse de cartes qui contiennent des détails sur la topologie et l’état actuels du cluster.
Ceph Object Storage Daemon (OSD). Les OSD sont les démons qui incarnent sur chaque nœud l’accès aux données et leur gestion. Il est important de comprendre que le terme « Object » ne fait pas ici référence au mode de stockage objet, mais à une information stockée du point de vue de Ceph, quel que soit son type. Chaque nœud de stockage exécute plusieurs instances d’OSD qui, à leur tour, s’interfacent avec les disques individuels qui hébergent les données.
Ceph Manager. Ce démon fonctionne en conjonction avec Ceph Monitor pour relever les métriques d’exécution et les informations sur l’état du cluster. Ces informations comprennent la capacité de stockage utilisée, la charge du système, les mesures de performance.
Ceph Metadata Server (MDS). Le démon MDS n’est utilisé que pour les clusters qui implémentent CephFS. Le démon MDS stocke et gère les métadonnées des fichiers, telles que les noms de fichiers, les horodatages et les chemins d’accès aux données.
Ceph utilise l’algorithme CRUSH (Controlled Replication Under Scalable Hashing), en conjonction avec les démons, pour suivre les objets de stockage (encore une fois, il s’agit des morceaux d’information stockés du point de vue de Ceph) et calculer les informations relatives à leur emplacement, cela sans dépendre d’une table d’index centrale. L’algorithme détermine les groupes de placement et les nœuds OSD qui doivent contenir les différents objets de stockage. De cette manière, CRUSH peut distribuer massivement des données entre les nœuds OSD et utiliser une réplication intelligente des données pour assurer la résilience.
Pourquoi Ceph est-il toujours aussi important ?
Les entreprises se tournent vers le stockage Ceph pour diverses raisons. Elles adoptent de plus en plus d’architectures dites cloud-natives, ce qui a un impact sur la façon dont elles gèrent les ressources et déploient les applications. Ceph a une conception interne qui évite les goulets d’étranglement que l’on trouve dans les systèmes de stockage traditionnels quand on leur demande de fonctionner avec de telles architectures.
Une caractéristique importante de Ceph est son élasticité (scalabilité), qui lui permet de continuer à fonctionner à mesure que les volumes de données augmentent. Ceci est d’autant plus important qu’une grande partie des données est dite non structurée, c’est-à-dire composée de fichiers, comme les documents texte, les images, les vidéos, etc. Ceph a été optimisé pour gérer ces données sur des capacités gigantesques, à l’échelle du pétaoctet, voire de l’exaoctet. La nécessité de gérer de telles quantités massives de données est devenue encore plus importante avec la croissance rapide de l’IA et du Machine learning.
En tant que système de stockage SDS, c’est-à-dire uniquement logiciel et qui s’exécute sur un cluster de serveurs génériques, Ceph industrialise la gestion des données et des ressources de stockage pour des déploiements qui comprennent plusieurs sites géographiques, des datacenters et des succursales. Si un SDS offre la flexibilité nécessaire pour s’adapter à des topologies de stockage qui évoluent au fil du temps, c’est notamment parce qu’il peut s’interfacer avec des technologies d’administration modernes comme l’Infrastructure-as-code (capacité pour les DevOps de programmer des configurations adaptées au déploiement de leurs applications).
En outre, le stockage Ceph est gratuit. Les entreprises sont libres de tailler la plateforme pour leurs besoins spécifiques de sorte à minimiser les coûts en équipement.
Les entreprises mettent en œuvre le stockage Ceph pour une variété d’utilisations. Par exemple, elles peuvent se tourner vers Ceph lors du déploiement de clouds privés, d’applications basées sur des containers ou sur des infrastructures désagrégées. D’autres déploient Ceph pour prendre en charge des référentiels d’images et de vidéos. D’autres utilisent Ceph pour la sauvegarde et l’archivage des données. Les entreprises peuvent également utiliser Ceph pour leurs machines virtuelles ou leurs systèmes de base de données.
Quelles sont les difficultés de mise en œuvre ?
La complexité inhérente à Ceph est l’un des problèmes les plus cités par ses utilisateurs. Les entreprises qui ne disposent pas de l’expertise nécessaire peuvent rencontrer des problèmes d’installation et d’administration. Si les entreprises ne planifient pas et ne mettent pas en œuvre Ceph avec soin, les applications clientes peuvent rencontrer des goulets d’étranglement et des problèmes de latence. La résolution de ces problèmes est souvent longue et coûteuse.
Certains utilisateurs ont fait état d’un manque de support de la part de la communauté, du moins en comparaison avec d’autres systèmes. D’autres évoquent une documentation incohérente ou obsolète, voire une absence totale de documentation. Ces problèmes dans un système de stockage critique peuvent avoir un impact considérable sur les charges de travail qui dépendent des données stockées.
Ceph nécessite également une infrastructure réseau de pointe pour mettre en œuvre correctement toutes ses fonctionnalités et fournir les performances nécessaires. Un cluster performant n’est possible qu’avec une configuration réseau adéquate. La mise en place d’un tel réseau peut prendre beaucoup de temps et de ressources.
Une implémentation Ceph nécessite généralement un réseau ouvert pour la communication des clients et le monitoring, ainsi qu’un réseau interne au cluster de stockage pour les opérations OSD. Pour obtenir la bonne topologie de réseau, une entreprise peut avoir besoin de faire appel à une expertise externe et à des ressources supplémentaires pour assurer une mise en œuvre correcte.
Quelles sont les solutions Ceph sur le marché ?
Les équipes IT peuvent mettre en œuvre le stockage Ceph dans leurs datacenters selon leurs besoins, sans se soucier des coûts de licence. Il s’agit toutefois d’un système si complexe que de nombreuses entreprises se tournent vers des versions commerciales pour simplifier les déploiements et la maintenance.
De nombreux fournisseurs proposent aujourd’hui des produits basés sur les technologies Ceph. De 2014 à 2023, la version la plus en vogue a certainement été Red Hat Ceph Storage. Plateforme de stockage simplifiée conçue pour les infrastructures virtuelles, l’analyse de données, l’IA et le Machine learning, ce SDS a longtemps été proposé par Red Hat à la fois comme une solution commerciale autonome et comme une solution intégrée à ses systèmes OpenStack et OpenShift. En novembre 2023, la tutelle de cette version de Ceph a été transférée à la maison mère IBM, qui la commercialise à présent sous le nom d’IBM Storage Ceph.
Autre solution de premier plan, la plateforme Canonical Ceph a été conçue pour des déploiements à l’échelle du pétaoctet, tout en aidant à alléger le fardeau des entreprises qui ne disposent pas de l’expertise interne nécessaire pour mettre en œuvre Ceph. Canonical Ceph permet aux équipes IT de gérer l’ensemble du cycle de vie, du déploiement, de la configuration et de l’exploitation de Ceph. Canonical propose par ailleurs MicroCeph, une solution clés en main pour les déploiements d’appoints.
Parmi les autres fournisseurs de produits liés à Ceph, citons Suse, SoftIron, Mirantis, Rook, Aspen Systems, ou encore Virtunet Systems.