Cephin hajautettu tiedostojärjestelmä¶
On 12 joulukuun, 2021 by adminCeph on hajautettu verkkotiedostojärjestelmä, joka on suunniteltu tarjoamaan hyvää suorituskykyä, luotettavuutta ja skaalautuvuutta.
Perusominaisuuksiin kuuluvat:
- POSIX-semantiikka
- Saumaton skaalautuminen yhdestä moniin tuhansiin solmuihin
- Hyvä saatavuus ja luotettavuus. Ei yksittäistä vikapistettä.
- Datan N-suuntainen replikointi tallennussolmujen välillä
- Nopea toipuminen solmuvioista
- Datan automaattinen uudelleentasapainottaminen solmuja lisättäessä/poistettaessa
- Helppo käyttöönotto:
Myös,
- joustavat tilannekuvat (missä tahansa hakemistossa)
- Rekursiivinen kirjanpito (sisäkkäiset tiedostot, hakemistot, tavut)
Vastakohtana GFS:n, OCFS2:n ja GPFS:n kaltaisille klusteritiedostojärjestelmille, jotka luottavat kaikkien asiakkaiden symmetriseen pääsyyn jaettuihin lohkolaitteisiin, Cepherottelee datan- ja metatiedonhallinnan itsenäisiin palvelinklustereihin Lustren tapaan. Toisin kuin Lustre, metatieto- ja tallennussolmut toimivat kuitenkin kokonaan käyttäjätilan daemonina. Tiedostotiedot raidoitetaan tallennussolmujen välillä suurina kokonaisuuksina työmäärän jakamiseksi ja suurten läpimenojen helpottamiseksi. Kun tallennussolmut vikaantuvat, tallennussolmut itse uusintavat tiedot hajautetusti (klusterimonitorin vähäisellä koordinoinnilla), mikä tekee järjestelmästä erittäin tehokkaan ja skaalautuvan.
Metatietopalvelimet muodostavat tehokkaasti suuren, johdonmukaisen, hajautetun, tiedostojen nimiavaruuden yläpuolelle sijoitetun välimuistissa olevan välimuistin, joka on erittäin skaalautuva, joka jakaa metatietoa dynaamisesti uudelleen työkuorman muuttuessa ja joka voi sietää sattumanvaraisia (ei-bysanttilaisia) solmujen vikoja. Metatietopalvelin käyttää metatietojen tallentamiseen hieman epätavanomaista lähestymistapaa parantaakseen merkittävästi suorituskykyä tavanomaisissa työmäärissä. Erityisesti inodit, joissa on vain yksi linkki, ovat upotettuja hakemistoja, jolloin kokonaisia hammastieto- ja inodihakemistoja voidaan ladata sen välimuistiin yhdellä I/O-operaatiolla. Erittäin suurten hakemistojen sisältö voidaan pirstoa ja sitä voidaan hallita itsenäisillä metatietopalvelimilla, mikä mahdollistaa skaalautuvan rinnakkaiskäytön.
Järjestelmä tarjoaa automaattisen datan uudelleentasapainottamisen/migraation skaalautuessaan pienestä muutaman solmun klusterista moniin satoihin solmuihin ilman, että järjestelmänvalvojan tarvitsee leikata datakokonaisuuksia staattisiksi volyymijoukoiksi tai käydä läpi palvelinten välisen datan siirtämisen työlästä prosessia.Kun tiedostojärjestelmä lähestyy täyttä, uusia solmuja voidaan helposti lisätä ja asiat ”vain toimivat”.
Ceph sisältää joustavan tilannekuvamekanismin, jonka avulla käyttäjä voi luoda tilannekuvan mistä tahansa järjestelmän alihakemistosta (ja sen sisäkkäisestä sisällöstä). Tilannekuvan luominen ja poistaminen on yhtä yksinkertaista kuin ”mkdir.snap/foo” ja ”rmdir .snap/foo”.
Ceph tarjoaa myös jonkin verran rekursiivista kirjanpitoa hakemistoista sisäkkäisten tiedostojen ja tavujen osalta. Eli ’getfattr -d foo’ missä tahansa hakemistossa järjestelmässä paljastaa sisäkkäisten säännöllisten tiedostojen jaalihakemistojen kokonaismäärän sekä kaikkien sisäkkäisten tiedostojen kokojen summan. Tämä tekee suurten levytilan kuluttajien tunnistamisesta suhteellisen nopeaa, koska ’du’-ohjelmaa tai vastaavaa tiedostojärjestelmän rekursiivista skannausta ei tarvita.
Loppujen lopuksi Ceph mahdollistaa myös kiintiöiden asettamisen mille tahansa järjestelmän hakemistolle.Kiintiö voi rajoittaa tavujen tai tiedostojen määrää, jotka on tallennettu kyseisen hakemistohierarkian kohdan alapuolelle. Kiintiöt voidaan asettaa käyttämällälaajennettuja attribuutteja ’ceph.quota.max_files’ ja ’ceph.quota.max_bytes’, esimerkiksi:
setfattr -n ceph.quota.max_bytes -v 100000000 /some/dirgetfattr -n ceph.quota.max_bytes /some/dir
Nykytoteutuksen kiintiöiden rajoituksena on se, että se on riippuvainen tiedostojärjestelmän asentavan asiakkaan yhteistyöstä, jotta se pysäyttäisi kirjoitukset, kun alimit saavutetaan. Muuttunutta tai vastahakoista asiakasta ei voida estää kirjoittamasta niin paljon dataa kuin se tarvitsee.
Mount Options¶
ip=A.B.C.D Määritä IP-osoite ja/tai portti, johon asiakkaan on sitouduttava paikallisesti.Normaalisti tähän ei ole paljon syytä. Jos IP-osoitetta ei ole määritetty, asiakkaan IP-osoite määritetään tarkastelemalla osoitetta, josta sen yhteys monitoriin lähtee. wsize=X Määritä enimmäiskirjoituskoko tavuina. Oletusarvo: 64 Mt. rsize=X Määritä enimmäislukukoko tavuina. Oletusarvo: 64 Mt. rasize=X Määritä maksimilukukoko tavuina. Oletusarvo: 8 MB. mount_timeout=X Määritä mountin aikakatkaisuarvo (sekunteina), jos Ceph-tiedostojärjestelmä ei vastaa. Oletusarvo on 60 sekuntia. caps_max=X Määritä säilytettävien kapselien enimmäismäärä. Käyttämättömät kapselit vapautetaan, kun kapselien määrä ylittää rajan. Oletusarvo on 0 (ei rajoitusta) rbytes Kun stat()-ohjelmaa kutsutaan hakemistolle, aseta st_size arvoksi ’rbytes’, joka on kaikkien kyseisen hakemiston alla olevien tiedostojen tiedostokokojen summa. Tämä on oletusarvo. norbytes Kun stat()-ohjelmaa kutsutaan hakemistolle, aseta st_size kyseisen hakemiston merkintöjen lukumääräksi. nocrc Poista CRC32C-laskenta käytöstä datan kirjoittamista varten. Jos tämä asetetaan, tallennussolmun on luotettava TCP:n virheenkorjaukseen havaitessaan datan korruptoitumisen datan hyötykuormassa. dcache Käytä dcache-sisältöä negatiivisten hakujen suorittamiseen jareaddir, kun asiakkaalla on koko hakemiston sisältö välimuistissa. (Tämä ei muuta oikeellisuutta; asiakas käyttää välimuistiin tallennettuja metatietoja vain silloin, kun vuokrasopimus tai kyvykkyys varmistaa niiden oikeellisuuden.) nodcache Älä käytä dcachea kuten edellä. Näin vältetään merkittävä määrä monimutkaista koodia, mikä uhraa suorituskykyä vaikuttamatta virheettömyyteen, ja on hyödyllistä vikojen jäljittämisessä. noasyncreaddir Älä käytä edellä mainittua dcache-välimuistia readdiriin. noquotadf Ilmoita tiedostojärjestelmän kokonaiskäyttö statfs:ssä sen sijaan, että käyttäisit juurihakemistokiintiötä. nocopyfrom Älä käytä RADOS:n ”copy-from”-operaatiota etäkohteiden etäkopiointiin. Tällä hetkellä sitä käytetään vain copy_file_range-operaatiossa, joka palaa oletusarvoiseen VFS-toteutukseen, jos tätä vaihtoehtoa käytetään. recover_session=<no|clean>Asettaa automaattisen uudelleenkytkentätilan siinä tapauksessa, että asiakas on estolistattu. Käytettävissä olevat tilat ovat ”no” ja ”clean”. Oletusarvo on ”no”.
- no: älä koskaan yritä muodostaa yhteyttä uudelleen, kun asiakas havaitsee, että se on estolistattu. Toiminnot epäonnistuvat yleensä sen jälkeen, kun se on blocklistattu.
- clean: asiakas yhdistää ceph-klusteriin uudelleen automaattisesti, kun se havaitsee, että se on blocklistattu. Uudelleenkytkennän aikana asiakas poistaa likaista dataa/metatietoa, mitätöi sivuvälimuistit ja kirjoitettavat tiedostokahvat.Uudelleenkytkennän jälkeen tiedostojen lukitukset muuttuvat vanhentuneiksi, koska MDS menettää niiden seurannan. Jos solmussa on vanhentuneita tiedostolukituksia, lukeminen/kirjoittaminen solmussa ei ole sallittua, ennen kuin sovellukset vapauttavat kaikki vanhentuneet tiedostolukitukset.
Vastaa