Bcachefien mainostaminen Linux-ytimeen

Kent Overstreet, Linux-ytimeen kuuluvan BCache SSD -lohkolaitteiden välimuistijärjestelmän kirjoittaja, tiivisti Bcachefs-tiedostojärjestelmän edistämistyön tulokset puheessaan LSFMM 2023 -konferenssissa (Linux Storage, Filesystem, Memory Management & BPF Summit) Linux-ytimen pääkokoonpanoon ja puhui tämän FS:n jatkokehityssuunnitelmista. Toukokuussa päivitettyä Bcachefs FS:n toteutuksen sisältävää korjaustiedostosarjaa ehdotettiin tarkistettavaksi ja sisällytettäväksi Linux-ytimen pääkokoonpanoon. FS Bcachefs on kehittänyt noin 10 vuotta. Valmius Bcachefs-toteutuksen tarkistamiseen ennen ytimeen sisällyttämistä julkistettiin vuoden 2020 lopussa, ja korjauspäivitysten nykyinen versio ottaa huomioon edellisen katsauksen aikana havaitut kommentit ja puutteet.

Bcachefs-kehitystavoitteena on saavuttaa XFS-taso suorituskyvyn, luotettavuuden ja skaalautuvuuden suhteen samalla kun tarjotaan Btrfs:lle ja ZFS:lle ominaisia ​​lisäominaisuuksia, kuten useiden laitteiden sisällyttäminen osioon, monikerroksiset tallennusasettelut, replikointi (RAID 1/10), välimuisti, läpinäkyvä tietojen pakkaus (LZ4-, gzip- ja ZSTD-tilat), tilaviipaleet (snapshots), eheyden tarkistus tarkistussummilla, mahdollisuus tallentaa Reed-Solomon-virheenkorjauskoodeja (RAID 5/6), salattu tiedon tallennus (ChaCha20 ja Poly1305) käytetään). Suorituskyvyn suhteen Bcachefs on edellä Btrfs-tiedostojärjestelmät ja muut Copy-on-Write-mekanismiin perustuvat tiedostojärjestelmät, ja sen suorituskyky on lähellä Ext4:ää ja XFS:ää.

Bcachefs-kehityksen viimeisimmistä saavutuksista mainitaan kirjoitettavissa olevien tilannekuvien toteutuksen vakauttaminen. Verrattuna Btrfs-tiedostoon, Bcachefsin tilannekuvat ovat nyt paljon paremmin skaalautuvia, ja niissä ei ole Btrfs-ongelmia. Käytännössä tilannevedosten toimintaa testattiin MySQL-varmuuskopioita järjestettäessä. Bcachefs on myös tehnyt paljon työtä skaalautuvuuden parantamiseksi - tiedostojärjestelmä on pärjännyt hyvin testattaessa 100 TB:n tallennustilassa, ja Bcachefsin odotetaan tulevan käyttöön 1 PB:n tallennustilassa lähitulevaisuudessa. Uusi nocow-tila on lisätty "copy-on-write" (nocow) -mekanismin poistamiseksi käytöstä. Kesän aikana he suunnittelevat saavansa virheenkorjauskoodien ja RAIDZ:n toteutuksen vakaaseen tilaan sekä ratkaisemaan korkeaan muistinkulutukseen liittyviä ongelmia tiedostojärjestelmiä palautettaessa ja tarkistettaessa fsck-apuohjelmalla.

Tulevaisuuden suunnitelmista mainitaan halu käyttää rust-kieltä Bcachefs-kehityksessä. Bcachefsin kirjoittajan mukaan hän pitää koodaamisesta, ei koodin jäljittämisestä, ja nyt on hullua kirjoittaa koodia C-kielellä, kun on parempi vaihtoehto. Rust on jo mukana Bcachefsissä joidenkin käyttäjätilaapuohjelmien toteuttamisessa. Lisäksi kehitetään ajatusta kirjoittaa Bcachefs vähitellen kokonaan uudelleen Rustissa, koska tämän kielen käyttäminen säästää huomattavasti virheenkorjausaikaa.

Mitä tulee Bcachefien siirtämiseen Linux-ytimen valtavirtaan, käyttöönottoprosessi voi viivästyä muutosten suuren koon vuoksi (2500 korjaustiedostoa ja noin 90 tuhatta koodiriviä), jota on vaikea tarkastella. Tarkistuksen nopeuttamiseksi jotkut kehittäjät ovat ehdottaneet korjaustiedostosarjan hajottamista pienempiin ja loogisesti erotettuihin osiin. Keskustelun aikana osa osallistujista kiinnitti huomiota myös yhden kehittäjän projektin kehittämiseen ja vaaraan, että koodi saattaa jäädä yllättämättä, jos sen kehittäjälle tapahtuu jotain (kaksi Red Hat -työntekijää ovat kiinnostuneita projektista, mutta heidän työnsä on edelleen kesken rajoitettuja virheenkorjauksia).

Bcachefs on kehitetty käyttämällä tekniikoita, jotka on jo testattu kehitettäessä Bcache-lohkolaitetta, joka on suunniteltu välimuistiin pääsyn hitaille kiintolevyille nopeilla SSD-levyillä (sisältyy ytimeen julkaisusta 3.10 lähtien). Bcachefs käyttää Copy-on-Write (COW) -mekanismia, jossa muutokset eivät johda tietojen päällekirjoittamiseen - uusi tila kirjoitetaan uuteen paikkaan, jonka jälkeen nykyinen tilailmaisin vaihtuu.

Bcachefsin ominaisuus on tuki asemien monikerroksiselle kytkennälle, jossa tallennustila koostuu useista kerroksista - nopeimmat asemat (SSD-levyt) on kytketty alakerrokseen, joita käytetään usein käytetyn tiedon välimuistiin, ja ylin kerros muodostaa tilavammat ja halvemmat levyt, jotka tallentavat vähemmän vaadittua tietoa. Takaisinkirjoitusvälimuistia voidaan käyttää kerrosten välillä. Asemia voidaan dynaamisesti lisätä osioon ja irrottaa siitä keskeyttämättä tiedostojärjestelmän käyttöä (tiedot siirtyvät automaattisesti).

Lähde: opennet.ru

Lisää kommentti