Ceph (mjukvara)

Ceph förvaring
Originalförfattare Inktank Storage ( Sage Weil , Yehuda Sadeh Weinraub, Gregory Farnum, Josh Durgin, Samuel Just, Wido den Hollander)
Utvecklare Red Hat , Intel , CERN , Cisco , Fujitsu , SanDisk , Canonical och SUSE
Stabil frisättning
Edit this on Wikidata 17.2.5 (Quincy) / 17 oktober 2022
Förvar
Skrivet i C++ , Python
Operativ system Linux , FreeBSD
Typ Distribuerat objektlager
Licens LGPLv2.1
Hemsida ceph .io
Ceph manager instrumentpanel UI

Ceph (uttalas / ˈ s ɛ f / ) är en mjukvarudefinierad lagringsplattform med öppen källkod som implementerar objektlagring på ett enda distribuerat datorkluster och tillhandahåller 3-i-1-gränssnitt för objekt- , block- och fillagring . Ceph syftar främst till fullständigt distribuerad drift utan en enda felpunkt , skalbarhet till exabytenivå och att vara fritt tillgänglig. Sedan version 12 förlitar sig Ceph inte på andra filsystem och kan direkt hantera hårddiskar och SSD:er med sin egen lagringsbackend BlueStore och kan helt självständigt exponera ett POSIX - filsystem .

Ceph replikerar data och gör den feltolerant , använder råvaruhårdvara och Ethernet IP och kräver inget specifikt hårdvarustöd. Cephs system erbjuder katastrofåterställning och dataredundans genom tekniker som replikering, raderingskodning, ögonblicksbilder och lagringskloning. Som ett resultat av sin design är systemet både självläkande och självhanterande , i syfte att minimera administrationstid och andra kostnader.

På så sätt har administratörer ett enda, konsoliderat system som samlar lagringen inom ett gemensamt hanteringsramverk. Ceph konsoliderar flera lagringsanvändningsfall och förbättrar resursutnyttjandet. Det låter också en organisation distribuera servrar där det behövs. [ citat behövs ]

Några av de stora Ceph-utbyggnaderna inkluderar CERN , OVH och DigitalOcean .

Design

En översikt över Cephs interna organisation på hög nivå

Ceph använder fem olika sorters demoner :

  • Klustermonitorer ( ceph-mon ) som håller reda på aktiva och misslyckade klusternoder, klusterkonfiguration och information om dataplacering och globalt klustertillstånd.
  • Objektlagringsenheter ( ceph-osd ) som använder en direkt, journaliserad disklagring (som heter BlueStore, som sedan v12.x-versionen ersätter FileStore som skulle använda ett filsystem)
  • Metadataservrar ( ceph-mds ) som cachelagrar och förmedlar åtkomst till inoder och kataloger i ett CephFS-filsystem.
  • HTTP- gateways ( ceph-rgw ) som exponerar objektlagringslagret som ett gränssnitt som är kompatibelt med Amazon S3 eller OpenStack Swift API :er
  • Chefer ( ceph-mgr ) som utför klusterövervakning, bokföring och underhållsuppgifter, och gränssnitt till externa övervakningssystem och hantering (t.ex. balancer, instrumentpanel, Prometheus , Zabbix plugin)

Alla dessa är helt distribuerade och kan köras på samma uppsättning servrar. Klienter med olika behov kan direkt interagera med olika delmängder av dem.

Ceph gör striping av enskilda filer över flera noder för att uppnå högre genomströmning, liknande hur RAID0 stripar partitioner över flera hårddiskar . Adaptiv lastbalansering stöds där ofta åtkomliga objekt replikeras över fler noder. [ citat behövs ] Från och med september 2017 är BlueStore standard och rekommenderad lagringstyp för produktionsmiljöer, vilket är Cephs egen lagringsimplementering som ger bättre latens och konfigurerbarhet än filarkivets backend, och undviker bristerna i den filsystembaserade lagringen som involverar ytterligare bearbetning och cachelagren. Backend för filarkivet anses fortfarande vara användbart och mycket stabilt; XFS brukade vara den rekommenderade underliggande filsystemtypen för produktionsmiljöer, medan Btrfs rekommenderades för icke-produktionsmiljöer. ext4- filsystem rekommenderades inte på grund av resulterande begränsningar av den maximala RADOS-objektlängden. Även med BlueStore används XFS för en liten partition av metadata.

Från 2019 pågår ett projekt för att återimplementera OSD i Ceph, kallat Crimson. Huvudmålet med Crimson är att minimera CPU-overhead och latens, eftersom moderna lagringsenheter som NVMe blev mycket snabbare än HDD och till och med SSD , men CPU:er hinner inte med den förändringen. Dessutom crimson-osd tänkt att vara bakåtkompatibel drop-in-ersättning för ceph-osd . Medan Crimson kan arbeta med BlueStore, utvecklas också en ny ObjectStore-implementation kallad SeaStore.

Objektlagring S3

Ett arkitekturdiagram som visar relationerna mellan komponenter i Ceph-lagringsplattformen

Ceph implementerar distribuerad objektlagring - BlueStore. RADOS-gateway ( ceph-rgw ) exponerar objektlagringslagret som ett gränssnitt som är kompatibelt med Amazon S3 .

Dessa är ofta kapacitiva diskar som är associerade med Cephs S3-objektlagring för användningsfall: Big Data (datalake), Backup & Archives, IOT , media, videoinspelning, etc.

Cephs mjukvarubibliotek ger klientapplikationer direkt åtkomst till det pålitliga RADOS-objektbaserade lagringssystemet (autonomic distributed object store) och utgör också en grund för några av Cephs funktioner, inklusive RADOS Block Device (RBD), RADOS Gateway och Ceph . Filsystem . På så sätt kan administratörer underhålla sina lagringsenheter som ett enhetligt system, vilket gör det lättare att replikera och skydda data.

"Librados" -programbiblioteken ger åtkomst i C , C++ , Java , PHP och Python . RADOS Gateway exponerar också objektarkivet som ett RESTful- gränssnitt som kan presenteras som både inbyggda Amazon S3 och OpenStack Swift API:er.

Blockera lagring

Cephs objektlagringssystem tillåter användare att montera Ceph som en tunnförsedd blockenhet . När en applikation skriver data till Ceph med hjälp av en blockenhet, strippar och replikerar Ceph automatiskt data över klustret. Cephs RADOS Block Device (RBD) integreras också med Kernel-baserade virtuella maskiner (KVM).

Dessa är ofta snabba diskar (NVMe, SSD) som är associerade med Cephs blocklagring för användningsfall, inklusive databaser, virtuella maskiner, dataanalys, artificiell intelligens och maskininlärning.

"Ceph-RBD" gränssnitt med samma Ceph-objektlagringssystem som tillhandahåller librados-gränssnittet och CephFS-filsystemet, och det lagrar blockenhetsbilder som objekt. Eftersom RBD är byggt på Librados, ärver RBD Librados förmågor, inklusive skrivskyddade ögonblicksbilder och återgå till ögonblicksbild. Genom att stripa bilder över klustret förbättrar Ceph läsåtkomstprestanda för bilder med stora blockenheter.

"Ceph-iSCSI" är en gateway som möjliggör åtkomst till distribuerad, högtillgänglig blocklagring från vilken Microsoft Windows- och VMware vSphere -server eller klient som helst som kan tala iSCSI - protokollet. Genom att använda ceph-iscsi på en eller flera iSCSI-gatewayvärdar blir Ceph RBD-bilder tillgängliga som logiska enheter (LUs) associerade med iSCSI-mål, som kan nås på ett valfritt lastbalanserat, mycket tillgängligt sätt.

Eftersom all ceph-iscsi-konfiguration lagras i Ceph RADOS-objektminnet, är ceph-iscsi-gateway-värdar i sig utan beständigt tillstånd och kan därför ersättas, utökas eller reduceras efter behag. Som ett resultat gör Ceph Storage det möjligt för kunder att köra en verkligt distribuerad, högtillgänglig, motståndskraftig och självläkande företagslagringsteknik på råvaruhårdvara och en helt öppen källkodsplattform.

Blockenheten kan virtualiseras, vilket ger blocklagring till virtuella maskiner, i virtualiseringsplattformar som Openshift , OpenStack , Kubernetes , OpenNebula , Ganeti , Apache CloudStack och Proxmox Virtual Environment .

Lagring av filsystem

Cephs filsystem (CephFS) körs ovanpå samma objektlagringssystem som tillhandahåller objektlagring och blockenhetsgränssnitt. Ceph-metadataserverklustret tillhandahåller en tjänst som mappar filsystemets kataloger och filnamn till objekt lagrade i RADOS-kluster. Metadataserverklustret kan expandera eller dra ihop sig, och det kan balansera om filsystemet dynamiskt för att fördela data jämnt mellan klustervärdar. Detta säkerställer hög prestanda och förhindrar tunga belastningar på specifika värdar inom klustret.

Klienter monterar det POSIX -kompatibla filsystemet med en Linux- kärnklient. En äldre FUSE -baserad klient är också tillgänglig. Servrarna körs som vanliga Unix- demoner .

Cephs fillagring är ofta associerad med logginsamling, meddelandehantering och fillagring.

Historia

Ceph skapades ursprungligen av Sage Weil för sin doktorsavhandling , som rådgavs av professor Scott A. Brandt vid Jack Baskin School of Engineering , University of California, Santa Cruz (UCSC), och sponsrad av Advanced Simulation and Computing Program ( ASC ) ), inklusive Los Alamos National Laboratory (LANL), Sandia National Laboratories (SNL) och Lawrence Livermore National Laboratory (LLNL). Den första kodraden som blev en del av Ceph skrevs av Sage Weil 2004 när han var på en sommarpraktik på LLNL, där han arbetade med skalbar filsystemmetadatahantering (i dag känd som Cephs MDS). År 2005, som en del av ett sommarprojekt initierat av Scott A. Brandt och ledd av Carlos Maltzahn, skapade Sage Weil en fullt fungerande filsystemsprototyp som antog namnet Ceph. Ceph gjorde sin debut med Sage Weil och gav två presentationer i november 2006, en på USENIX OSDI 2006 och en annan på SC '06.

Efter sin examen hösten 2007 fortsatte Weil att arbeta på Ceph på heltid, och kärnutvecklingsteamet utökades med Yehuda Sadeh Weinraub och Gregory Farnum. Den 19 mars 2010 Linus Torvalds ihop Ceph-klienten till Linux-kärnversion 2.6.34 som släpptes den 16 maj 2010. 2012 skapade Weil Inktank Storage för professionella tjänster och support för Ceph.

I april 2014 köpte Red Hat Inktank, vilket förde merparten av Ceph-utvecklingen internt för att göra den till en produktionsversion för företag med support (hotline) och kontinuerligt underhåll (nya versioner).

I oktober 2015 bildades Ceph Community Advisory Board för att hjälpa samhället att driva riktningen mot mjukvarudefinierad lagringsteknik med öppen källkod. Den rådgivande styrelsen för charter inkluderar medlemmar från Ceph-gemenskapen från globala IT-organisationer som är engagerade i Ceph-projektet, inklusive personer från Red Hat , Intel , Canonical , CERN , Cisco , Fujitsu , SanDisk och SUSE .

I november 2018 lanserade Linux Foundation Ceph Foundation som en efterträdare till Ceph Community Advisory Board. Grundande medlemmar av Ceph Foundation inkluderade Amihan, Canonical , China Mobile , DigitalOcean , Intel , OVH , ProphetStor Data Services, Red Hat , SoftIron, SUSE , Western Digital , XSKY Data Technology och ZTE .

I mars 2021 avbröt SUSE sin Enterprise Storage-produkt med Ceph till förmån för Longhorn. och den tidigare Enterprise Storage-webbplatsen uppdaterades med att "SUSE har omfokuserat lagringsinsatserna kring att betjäna våra strategiska SUSE Enterprise Storage-kunder och säljer inte längre aktivt SUSE Enterprise Storage."

Releasehistorik

Releasehistorik
namn Släpp Första släppet
Slutet på livet
Milstolpar
Argonaut Gammal version, underhålls inte längre: 0.48 3 juli 2012 Första stora "stabila" release
Bobtail Gammal version, underhålls inte längre: 0.56 1 januari 2013
Bläckfisk Gammal version, underhålls inte längre: 0.61 7 maj 2013 ceph-deploy är stabil
Klimp Gammal version, underhålls inte längre: 0.67 14 augusti 2013 maj 2015 namnområde, region, övervakning av REST API
Kejsare Gammal version, underhålls inte längre: 0.72 9 november 2013 maj 2014 replikering av flera datacenter för radosgw
Eldfluga Gammal version, underhålls inte längre: 0.80 7 maj 2014 april 2016 raderingskodning, cachenivå, primär affinitet, nyckel/värde OSD-backend (experimentell), fristående radosgw (experimentell)
Jätte Gammal version, underhålls inte längre: 0.87 29 oktober 2014 april 2015
Hammare Gammal version, underhålls inte längre: 0.94 7 april 2015 augusti 2017
Infernalis Gammal version, underhålls inte längre: 9.2.0 6 november 2015 april 2016
Juvel Gammal version, underhålls inte längre: 10.2.0 21 april 2016 2018-06-01 Stabil CephFS, experimentell RADOS-backend med namnet BlueStore
Kraken Gammal version, underhålls inte längre: 11.2.0 20 januari 2017 2017-08-01 BlueStore är stabil
Lysande Gammal version, underhålls inte längre: 12.2.0 29 augusti 2017 2020-03-01
Härma Gammal version, underhålls inte längre: 13.2.0 1 juni 2018 2020-07-22 ögonblicksbilder är stabila, Beast är stabila
Nautilus Gammal version, underhålls inte längre: 14.2.0 19 mars 2019 2021-06-01
Bläckfisk Gammal version, underhålls inte längre: 15.2.0 23 mars 2020 2022-06-01
Stilla havet Äldre version, men fortfarande underhållen: 16.2.0 31 mars 2021 2023-06-01
Quincy Aktuell stabil version: 17.2.0 19 april 2022 2024-06-01
Rev Framtida release: TBA TBA
Legend:
Gammal version
Äldre version, fortfarande underhållen
Senaste versionen
Senaste förhandsversionen
Framtida release

Etymologi

Namnet "Ceph" är en förkortning av " bläckfisk ", en klass av blötdjur som inkluderar bläckfisken. Namnet (betonat av logotypen) antyder det mycket parallella beteendet hos en bläckfisk och valdes för att associera filsystemet med "Sammy", banansnigelmaskoten från UCSC . Både bläckfiskar och banansniglar är blötdjur.

Se även

Vidare läsning

externa länkar