En bref

  • Weil a développé le projet Ceph dans le cadre d’un programme de recherche collectif à UC Santa Cruz et a achevé son doctorat en 2007, après la publication des articles fondateurs sur Ceph et CRUSH en 2006.
  • CRUSH calcule le placement à partir de cartes, de pondérations, de la topologie et de règles; RADOS répartit les objets, les répliques, la détection des pannes et la récupération entre les monitors et les OSDs.
  • Ceph fournit le stockage en mode bloc via RBD, le stockage objet via RGW et un système de fichiers de type POSIX via CephFS, sur une même base mais avec des parcours opérationnels différents.
  • Weil a cofondé Inktank en 2012. Le 30 avril 2014, Red Hat a annoncé son acquisition pour environ 175 millions de dollars.
  • Weil s’est éloigné des activités quotidiennes de Ceph et dirige Civic Media. L’autorité actuelle appartient aux maintainers et aux structures de gouvernance contemporaines, pas au fondateur historique.

La matrice de stockage devenue algorithme

Ceph a supprimé la table centrale de placement du chemin de données habituel. CRUSH détermine les périphériques à partir d’une carte et d’une règle, tandis que les OSDs stockent les données dans RADOS, échangent leur état, assurent la réplication et effectuent la récupération selon les cartes faisant autorité conservées par les monitors. Le travail est distribué, mais l’autorité ne disparaît pas.

Le résultat dépend des pondérations, de la hiérarchie et des véritables domaines de défaillance. Une carte obsolète reproduit avec précision un mauvais placement. L’algorithme réduit les recherches et les déplacements inutiles, mais l’opérateur doit représenter correctement le monde physique.

Une équipe de recherche, pas un inventeur isolé

Ceph est né au Storage Systems Research Center de UC Santa Cruz. Weil en a été un concepteur et un bâtisseur central, mais les directeurs de recherche, coauteurs, étudiants, financements et environnements de test ont façonné le projet. Les articles de 2006 portent plusieurs signatures, notamment celles de Scott Brandt, Ethan Miller, Carlos Maltzahn et Darrell Long, selon l’article.

Cette attribution collective ne diminue pas le rôle de Weil; elle explique comment une thèse est devenue une infrastructure. Pour que le système survive à son créateur, d’autres devaient le comprendre, le critiquer et en assurer la maintenance.

CRUSH: calculer où doivent se trouver les données

CRUSH utilise des buckets hiérarchiques, des pondérations et des règles pour sélectionner une liste ordonnée de périphériques. Une règle peut imposer des répliques dans des baies différentes ou sélectionner une catégorie de support. Lorsque le cluster évolue, une partie des objets est réaffectée au lieu de recourir à une table centrale pour chaque objet.

Les règles constituent une politique exécutable. Une pondération erronée ou une baie non représentée fausse la distribution et la récupération. Avant toute modification, il convient de simuler le déplacement des données, de vérifier la capacité disponible et de comprendre la charge réseau.

RADOS et le choix de distribuer la réparation

RADOS transforme un grand nombre d’OSDs en une base unifiée. Les monitors maintiennent le quorum et les cartes, tandis que les OSDs stockent les objets, comparent leur état, les répliquent et les réparent. La récupération s’effectue près des composants qui connaissent les données, plutôt que par l’intermédiaire d’un contrôleur unique pour chaque transfert.

Une panne étendue peut provoquer une tempête de reconstruction qui met les clients en concurrence pour les ressources réseau et disque. La disponibilité dépend de la marge de capacité, de la limitation du débit, de l’état des équipements et du délai de retrait d’un OSD. La distribution ne signifie ni gratuité ni automatisme.

Un magasin d’objets et trois interfaces de stockage

RBD fournit des volumes en mode bloc, RGW propose des API de stockage objet et CephFS construit un système de fichiers de type POSIX avec des serveurs de métadonnées. Ces interfaces partagent RADOS ainsi que les mécanismes de placement et de récupération.

Leurs goulets d’étranglement diffèrent toutefois. RGW ajoute la gestion des identités et des passerelles, CephFS ajoute une couche de métadonnées, et RBD dépend des clients et des caches. Le succès d’un mode ne démontre pas que les autres conviennent au même usage.

Placement groups, récupération et coût d’une panne

Les placement groups regroupent les objets afin de rendre le placement, le peering et la récupération gérables. Leur répartition détermine l’équilibrage et le travail nécessaire après une panne. Lorsqu’un OSD est perdu, le cluster réaffecte et reconstruit les données conformément à la politique.

Un manque d’espace disponible ou une erreur de topologie prolonge l’état dégradé. Il faut surveiller les objets unclean, le backfill, la latence, la bande passante et le temps de récupération. La réplication ne remplace pas une sauvegarde contre la suppression logique ou la corruption.

Du code d’une thèse à l’infrastructure Linux

Le passage d’une thèse à Linux et OpenStack a exigé des années de mise en paquets, de compatibilité, de documentation, de tests de mise à niveau et de correction des pannes. L’intégration au kernel et aux distributions a porté Ceph jusque dans les clouds et les produits. Ce travail opérationnel peu spectaculaire a compté autant que les articles scientifiques.

L’ouverture a permis de choisir le matériel et a favorisé de multiples offres, mais elle a aussi multiplié les combinaisons de réseaux, de périphériques, de kernels et de versions. L’upstream publie une branche; l’intégrateur et l’opérateur assument la responsabilité de la combinaison réellement déployée.

Inktank, Red Hat et la responsabilité commerciale

Fondée en 2012, Inktank vendait du support et rassemblait des compétences d’ingénierie. Le 30 avril 2014, Red Hat a annoncé son acquisition pour environ 175 millions de dollars, faisant entrer Ceph dans une grande entreprise open source et dans ses activités cloud.

Le financement a soutenu la maintenance et le développement, mais a concentré les recrutements. La licence et la communauté ont limité la possibilité d’un contrôle exclusif. Les clients devaient distinguer le projet public, le produit Red Hat et la distribution concernée, chacun ayant sa propre feuille de route et ses propres limites de support.

Le projet apprend à vivre sans son fondateur

Weil a ensuite quitté son activité à plein temps au sein de Ceph et a fondé Civic Media. Son parcours explique l’origine du projet, mais ne détermine pas les décisions actuelles concernant les versions. Attribuer au fondateur chaque réussite ou incident contemporain efface le travail des maintainers, des responsables de la mise en paquets et des opérateurs actuels.

La capacité du projet à continuer sans lui fait partie de sa réussite. La succession exige des structures capables de trancher les désaccords, de publier les correctifs et d’assurer la maintenance des sous-systèmes. L’autorité historique mérite d’être reconnue, mais ne confère pas un droit permanent à diriger.