Ceph Distributed File System¶
On december 12, 2021 by adminCeph är ett distribuerat nätverksfilsystem som är utformat för att ge god prestanda, tillförlitlighet och skalbarhet.
De grundläggande funktionerna omfattar:
- POSIX-semantik
- Sömlös skalning från 1 till många tusen noder
- Hög tillgänglighet och tillförlitlighet. Ingen enskild felpunkt.
- N-vägs replikering av data mellan lagringsnoder
- Snabb återhämtning från nodfel
- Automatisk ombalansering av data när en nod läggs till eller tas bort
- Enklare driftsättning:
Och
- Flexibla ögonblicksbilder (på vilken katalog som helst)
- Rekursiv redovisning (inbäddade filer, kataloger, bytes)
I motsats till klusterfilsystem som GFS, OCFS2 och GPFS, som förlitar sig på symmetrisk åtkomst för alla klienter till delade blockenheter, separerar Ceph data- och metadatahanteringen i oberoende serverkluster, i likhet med Lustre. Till skillnad från Lustre körs dock metadata- och lagringsnoderna helt och hållet som daemoner i användarutrymmet. Fildata stripas över lagringsnoderna i stora bitar för att fördela arbetsbelastningen och underlätta hög genomströmning. När lagringsnoderna går sönder replikeras data på ett distribuerat sätt av lagringsnoderna själva (med viss minimal samordning från en klusterövervakare), vilket gör systemet extremt effektivt och skalbart.
Metadataservrar bildar effektivt en stor, konsekvent, distribuerad minnescache ovanför filnamnsrymden som är extremt skalbar, dynamiskt omfördelar metadata som svar på förändringar i arbetsbelastningen och som kan tolerera godtyckliga (ja, icke-Byzantiniska) nodefel. Metadataservern använder en något okonventionell metod för lagring av metadata för att avsevärt förbättra prestandan för vanliga arbetsbelastningar. Särskilt inoder med endast en enda länk är inbäddade indirekta kataloger, vilket gör att hela kataloger med dentries och inoder kan laddas in i cacheminnet med en enda I/O-operation. Innehållet i extremt stora kataloger kan fragmenteras och hanteras av oberoende metadataservrar, vilket möjliggör skalbar samtidig åtkomst.
Systemet erbjuder automatisk ombalansering/migrering av data vid skalning från ett litet kluster med bara några få noder till flera hundra, utan att en administratör behöver dela in datamängden i statiska volymer eller genomgå den tråkiga processen att migrera data mellan servrar.När filsystemet närmar sig full kapacitet kan nya noder enkelt läggas till och saker och ting kommer ”bara att fungera”.
Ceph innehåller en flexibel ögonblicksbildsmekanism som gör det möjligt för en användare att skapa en ögonblicksbild av vilken underkatalog som helst (och dess inbäddade innehåll) i systemet. Det är lika enkelt att skapa och radera ögonblicksbilder som ”mkdir.snap/foo” och ”rmdir .snap/foo”.
Ceph tillhandahåller också en viss rekursiv redovisning av kataloger för inbäddade filer och bytes. Det vill säga, en ”getfattr -d foo” på vilken katalog som helst i systemet kommer att avslöja det totala antalet inbäddade reguljära filer och underkataloger samt en summering av alla inbäddade filstorlekar. Detta gör identifieringen av stora diskutrymmeförbrukare relativt snabb, eftersom ingen ”du” eller liknande rekursiv skanning av filsystemet krävs.
För det sista tillåter Ceph också att kvoter sätts på alla kataloger i systemet.Kvoten kan begränsa antalet bytes eller antalet filer som lagras under den punkten i kataloghierarkin. Kvoter kan ställas in med hjälp av de utökade attributen ”ceph.quota.max_files” och ”ceph.quota.max_bytes”, t.ex.:
setfattr -n ceph.quota.max_bytes -v 100000000 /some/dirgetfattr -n ceph.quota.max_bytes /some/dir
En begränsning i den nuvarande kvotimplementeringen är att den är beroende av att klienten som monterar filsystemet samarbetar för att stoppa skrivare när gränsen är nådd. En modifierad eller motstridig klient kan inte hindras från att skriva så mycket data som den behöver.
Mount Options¶
ip=A.B.C.D Ange IP och/eller port som klienten ska binda sig till lokalt.Det finns normalt sett ingen större anledning att göra detta. Om IP inte anges bestäms klientens IP-adress genom att titta på den adress som anslutningen till monitorn kommer från. wsize=X Ange den maximala skrivstorleken i byte. Standard: 64 MB. rsize=X Ange den maximala lässtorleken i byte. Standard: 64 MB. rasize=X Anger den maximala storleken på försprång i byte. Standard: 8 MB. mount_timeout=X Ange timeoutvärdet för montering (i sekunder) om Ceph-filsystemet inte svarar. Standardvärdet är 60 sekunder. caps_max=X Ange det maximala antalet caps att hålla. Outnyttjade caps frigörs när antalet caps överskrider gränsen. Standardvärdet är 0 (ingen gräns) rbytes När stat() anropas för en katalog, sätt st_size till ”rbytes”, summan av filstorlekarna för alla filer som ligger under den katalogen. Detta är standardinställningen. norbytes När stat() anropas för en katalog, sätt st_size till antalet poster i den katalogen. nocrc Inaktivera CRC32C-beräkning för dataskrivningar. Om den är inställd måste lagringsnoden förlita sig på TCP:s felkorrigering för att upptäcka datakorruption i datanyttolasten. dcache Använd dcache-innehållet för att utföra negativa sökningar ochaddir när klienten har hela kataloginnehållet i sin cache. (Detta ändrar inte korrektheten; klienten använder metadata från cachen endast när ett hyresavtal eller en kapacitet garanterar att den är giltig.) nodcache Använd inte dcache enligt ovan. Detta undviker en betydande mängd komplicerad kod, vilket offrar prestanda utan att påverka korrektheten, och är användbart för att spåra fel. noasyncreaddir Använd inte dcache som ovan för readdir. noquotadf Rapportera den totala filsystemanvändningen i statfs i stället för att använda kvoten för rotkatalogen. nocopyfrom Använd inte RADOS operation ”copy-from” för att utföra fjärrkopiering av objekt. För närvarande används den endast i copy_file_range, som kommer att återgå till standard VFS-implementationen om det här alternativet används. recover_session=<no|clean>Inställ automatiskt återanslutningsläge i det fall klienten är blockerad. De tillgängliga lägena är ”no” och ”clean”. Standardvärdet är ”no”.
- no: försöker aldrig återuppta anslutningen när klienten upptäcker att den har blockerats. Operationer kommer i allmänhet att misslyckas efter att ha blivit blockerad.
- clean: klienten återansluter automatiskt till ceph-klustret när den upptäcker att den har blivit blockerad. Under återanslutningen släpper klienten smutsiga data/metadata, ogiltigförklarar sidcacher och skrivbara filhanteringar.Efter återanslutningen blir filspärrarna inaktuella eftersom MDS förlorar spårningen av dem. Om en inod innehåller föråldrade fillås tillåts inte läsning/skrivning på inoden förrän programmen släpper alla föråldrade fillås.
Lämna ett svar