Wat is Cef?

3 april 2024

Ceph is een open source softwareplatform dat zeer schaalbare object-, blok- en bestandsgebaseerde opslag biedt onder een verenigd systeem. Het is gebouwd om op te draaien goederenhardware, en biedt een zeer betrouwbare en eenvoudig te schalen opslagoplossing voor grote gegevensoperaties. Het systeem is ontworpen om zelfherstellend en zelfbeheersend te zijn, met als doel de administratietijd en andere kosten te minimaliseren.

Geschiedenis van Ceph

Ceph is ontwikkeld door Sage Weil als onderdeel van zijn proefschrift in computerwetenschappen aan de Universiteit van Californië, Santa Cruz (UCSC). Het project begon in 2004 onder leiding van professor Scott Brandt als onderdeel van het Storage Systems Research Center van UCSC.

Het belangrijkste doel achter Ceph was het ontwerpen van een gedistribueerd opslagsysteem dat kon schalen tot het exabyte-niveau en daarbuiten, terwijl de hoge prestaties en betrouwbaarheid behouden bleven. Sage Weil en zijn team probeerden de beperkingen van bestaande opslagoplossingen aan te pakken, die vaak worstelden met schaalbaarheid, gevoelig waren voor knelpunten of dure eigen hardware vereisten.

Hier zijn enkele belangrijke mijlpalen in de ontwikkeling en evolutie van Ceph:

  • 2006. Het eerste Ceph-prototype werd publiekelijk vrijgegeven en demonstreerde de innovatieve benadering van gedistribueerde opslag, inclusief het gebruik van de Reliable Autonomic Distributed Object Store (RADOS) om hoge schaalbaarheid en beschikbaarheid te bereiken.
  • 2007. Ceph werd uitgebracht onder de LGPL 2.1 (Lesser General Public License), waarbij een bredere gemeenschap van ontwikkelaars werd uitgenodigd om bij te dragen aan de ontwikkeling ervan.
  • 2010. De eerste stabiele release van Ceph, genaamd Argonaut, markeerde een belangrijke mijlpaal voor het project en demonstreerde de volwassenheid en stabiliteit ervan voor productieomgevingen.
  • 2011. Inktank Storage is opgericht door Sage Weil om commerciële ondersteuning en diensten voor Ceph te bieden, waardoor de acceptatie ervan in bedrijfsomgevingen wordt versneld.
  • 2014. Red Hat, Inc. heeft Inktank Storage overgenomen, heeft verder geïnvesteerd in de ontwikkeling van Ceph en het geïntegreerd in zijn suite van cloud en opslagoplossingen. Deze overname was cruciaal voor Ceph, omdat het de middelen en expertise van Red Hat combineerde met de innovatieve technologie van Ceph.
  • 2015 en daarna. Ceph bleef zich ontwikkelen, met regelmatige releases die nieuwe functies toevoegden, de prestaties verbeterden en de mogelijkheden uitbreidden. De gemeenschap rond Ceph is aanzienlijk gegroeid en ontwikkelaars, gebruikers en bedrijven hebben bijgedragen aan de ontwikkeling en implementatie ervan in verschillende industrieën.

Ceph-architectuur

De architectuur van Ceph is ontworpen met het oog op schaalbaarheid, betrouwbaarheid en prestaties, waarbij gebruik wordt gemaakt van de kracht van distributed computing om grote hoeveelheden gegevens efficiënt te beheren. De architectuur is fundamenteel modulair, waardoor de onafhankelijke schaalbaarheid van verschillende componenten mogelijk is op basis van de werklastvereisten. Hier is een overzicht van de belangrijkste componenten van Ceph's architectuur.

1. RADOS (betrouwbare autonome gedistribueerde objectopslag)

RADOS vormt de basis van de Ceph-architectuur en biedt de onderliggende gedistribueerde opslagcapaciteit. Het handelt gegevensopslag, gegevensreplicatieen herstel. RADOS-clusters bestaan ​​uit twee typen daemons:

  • OSD's (Object Storage Daemonen). Deze zijn verantwoordelijk voor het opslaan van gegevens, het afhandelen van gegevensreplicatie, herstel, opvulling en opnieuw in evenwicht brengen binnen het cluster. Elke OSD-daemon bedient een opslagschijf en communiceert met andere OSD's om ervoor te zorgen dat gegevens consistent worden gerepliceerd en gedistribueerd over het cluster.
  • MON's (monitors). Monitors houden een hoofdkopie bij van de clusterkaart, een gedetailleerd overzicht van de clusterstatus, inclusief OSD's, hun status en andere kritieke informatie. metadata. Monitoren zorgen ervoor dat het cluster consensus bereikt over de status van het systeem met behulp van de Paxos algoritme, waardoor een betrouwbaar en consistent beeld van het cluster wordt geboden aan alle clients en OSD's.

2. CRUSH-algoritme

Ceph gebruikt het CRUSH-algoritme (Controlled Replication Under Scalable Hashing) om gegevens efficiënt op te slaan en op te halen. CRUSH is een innovatieve aanpak waarmee Ceph kan berekenen waar gegevens in het cluster moeten worden opgeslagen (of opgehaald) zonder dat er een centrale opzoektabel nodig is. Dankzij dit proces kan Ceph horizontaal opschalen zonder knelpunten of single points offailures.

3. Ceph-opslaginterfaces

Ceph biedt meerdere opslaginterfaces voor interactie met de onderliggende RADOS-laag, en komt tegemoet aan verschillende opslagbehoeften:

  • RBD (RADOS-blokapparaat). Deze interface biedt blokopslag, waardoor Ceph kan worden gebruikt als een schaalbare en gedistribueerde blokopslagoplossing voor virtuele machines en databanken.
  • CephFS (Ceph-bestandssysteem). Een POSIX-compatibel bestandssysteem dat Ceph gebruikt voor opslag en een interface voor bestandsopslag biedt voor het Ceph-cluster. Het biedt functies zoals snapshots en quota's.
  • RGW (RADOS Poort). Dit biedt object storage mogelijkheden en biedt een interface die compatibel is met S3- en Swift-API's. Het wordt vaak gebruikt voor webschaal object storage nodig heeft.

4. Ceph Manager Daemon (ceph-mgr)

De Ceph Manager-daemon is verantwoordelijk voor het volgen runtime metrische gegevens en de huidige status van het cluster. Het biedt essentiële beheer- en monitoringmogelijkheden, waardoor beheerders realtime inzicht hebben in de gezondheid en prestaties van het cluster.

Hoe werkt Ceph?

Hier volgt een stapsgewijze uitleg van hoe Ceph werkt:

1. Gegevensdistributie

In Ceph worden alle gegevens opgeslagen als objecten binnen een platte naamruimte. Wanneer een bestand wordt opgeslagen in het Ceph-cluster, wordt het verdeeld in blokken van vaste grootte, die vervolgens in objecten worden verpakt. Deze objecten vormen de basisopslageenheid in Ceph en bevatten het datablok, metadata en een unieke identificatie.

Ceph gebruikt het CRUSH-algoritme om te bepalen hoe deze objecten in het cluster moeten worden opgeslagen en opgehaald. CRUSH gebruikt de unieke identificatie van elk object om te berekenen welke OSD's de replica's van het object moeten opslaan. Met dit proces kan Ceph de plaatsing van gegevens in het cluster dynamisch en efficiënt beheren zonder afhankelijk te zijn van een gecentraliseerde directory of masternode.

2. Gegevensreplicatie

Om de duurzaamheid van gegevens te garanderen en hoge beschikbaarheid, repliceert Ceph elk object meerdere keren over verschillende OSD's. Het aantal replica's is configureerbaar (meestal drie) om ertussen te balanceren overtolligheid en opslagefficiëntie.

Ceph zorgt bovendien voor een sterke consistentie. Wanneer gegevens worden geschreven of gewijzigd, worden de wijzigingen op alle kopieën gerepliceerd voordat het schrijven aan de klant wordt bevestigd. Dit zorgt ervoor dat alle clients dezelfde gegevens zien, ongeacht tot welke replica ze toegang hebben.

3. Fouttolerantie en zelfgenezing

Ceph Monitors (MON's) houden toezicht op de status van het cluster, inclusief de status van OSD's en hun distributie over het cluster. MON's gebruiken het Paxos-consensusalgoritme om overeenstemming te bereiken over de huidige status van het cluster, waardoor consistente inzichten tussen knooppunten worden gegarandeerd.

Wanneer een OSD uitvalt, verdeelt Ceph de gegevens automatisch opnieuw naar andere OSD's, waarbij het gewenste replicatieniveau behouden blijft. Dit proces staat bekend als zelfherstel en zorgt ervoor dat het systeem beschikbaar en duurzaam blijft in geval van problemen hardware mislukkingen.

4. Gegevenstoegang

Ceph biedt verschillende interfaces voor gegevenstoegang, die elk verschillende opslagbehoeften vervullen:

  • RADOS-blokapparaat (RBD) voor blokopslag, waardoor virtuele machines en databases gegevens op Ceph kunnen opslaan alsof het een lokaal blokapparaat is.
  • Ceph-bestandssysteem (CephFS) voor bestandsopslag, waardoor een POSIX-compatibel bestandssysteem wordt geboden voor het opslaan en beheren van bestanden in een hiërarchische structuur.
  • RADOS-gateway (RGW) For object storage, dat S3- en Swift-compatibele API's biedt voor het opslaan en openen van gegevens als objecten.

Ceph-clients communiceren via deze interfaces met het opslagcluster. Ze gebruiken librados, een bibliotheek die het communicatieprotocol met Ceph OSD's implementeert, om toegang te krijgen tot gegevens die in het cluster zijn opgeslagen.

5. Schalen

De architectuur van Ceph maakt het mogelijk om uit te schalen naar duizenden knooppunten en petabytes tot exabytes aan gegevens. Het toevoegen van meer opslagcapaciteit of prestaties is net zo eenvoudig als het toevoegen van meer knooppunten aan het cluster. Dankzij het CRUSH-algoritme kan Ceph deze schaalbaarheid efficiënt beheren en de gegevens gelijkmatig over het cluster verdelen, zonder centrale knelpunten.


Anastasia
Spasojević
Anastazija is een ervaren contentschrijver met kennis en passie voor cloud computergebruik, informatietechnologie en onlinebeveiliging. Bij phoenixNAP, richt ze zich op het beantwoorden van brandende vragen over het waarborgen van de robuustheid en veiligheid van gegevens voor alle deelnemers aan het digitale landschap.