Cisco esittelee PuzzleFS-tiedostojärjestelmän Linux-ytimelle

Cisco on ehdottanut uutta PuzzleFS-tiedostojärjestelmää, joka toteutetaan moduulina Linux-ytimelle ja joka on kirjoitettu Rustilla. Tiedostojärjestelmä on suunniteltu käytettäväksi eristettyjen säiliöiden isännöimiseen ja jatkaa Atomfs-tiedostojärjestelmässä ehdotettujen ideoiden kehittämistä. Toteutus on vielä prototyyppivaiheessa, tukee rust-next Linux-ytimen haaraa rakentamista ja on avoinna Apache 2.0- ja MIT-lisenssien alla.

Projektilla pyritään ohittamaan rajoitukset, joita syntyy käytettäessä konttikuvia OCI (Open Container Initiative) -muodossa. PuzzleFS ratkaisee ongelmat, kuten kaksoistietojen tehokkaan tallennuksen, suoran kiinnityksen, toistettavan kuvanmuodostuksen ja muistin suojauksen.

Eri säilöissä toistuvan datan kaksoiskappaleiden poistamiseen käytetään FastCDC (Fast Content-Defined Chunking) -algoritmia, joka toimii jakamalla tiedot mielivaltaisen kokoisiksi fragmenteiksi ja ylläpitämällä indeksiä käsiteltyjen fragmenttien tiivisteillä. Toistuvat fragmentit tallennetaan kerran ja indeksoidaan yhdessä kaikille tiedostojärjestelmän tasoille, ts. duplikointi voi kattaa eri liitospisteitä (uusi FS-kerros voidaan käynnistää olemassa olevan pohjalta ja käyttää sen sisältämiä tietofragmentteja duplikoinnin aikana).

Säiliön kuvien toistuva kokoonpano saavutetaan määrittämällä kanoninen esitys säiliökuvamuodosta. Suoran liitännän avulla voit liittää OCI-säilökuvan maailmanlaajuisesta jaetusta tallennustilasta purkamatta sitä ensin, käyttämällä tunnisteena säilön luettelon sisällön tiivistettä. Tietojen eheyden varmentamiseen jaettua tallennustilaa käytettäessä voidaan käyttää fs-verity-mekanismia, joka tiedostoja käytettäessä tarkistaa binääriindeksissä määritettyjen hajautusarvojen vastaavuuden todellisen sisällön kanssa.

Rust-kieli valittiin, koska se yhdistää tuloksena olevan koodin korkean suorituskyvyn ja ominaisuudet turvalliseen muistin työskentelyyn, mikä vähentää haavoittuvuuksien riskiä, ​​jonka aiheuttavat ongelmat, kuten muistialueen käyttäminen sen vapauttamisen jälkeen ja puskurin rajojen ylittäminen. Rustin käyttäminen ydinmoduulissa mahdollisti myös koodin jakamisen ytimen ja käyttäjätilan komponenttien välillä yhden turvallisen toteutuksen luomiseksi.

Muita projektin tavoitteita ovat: erittäin nopea kuvien rakentaminen ja asennus, mahdollisuus käyttää valinnaista välivaihetta kuvien kanonisointiin, täyden mtree-tyylisen tiedostopuun valinnaisuus käytettäessä monikerroksista rakennetta, casync-tyylinen asettaminen muutosten ja helposti toteutettavan arkkitehtuurin.

Lähde: opennet.ru

Lisää kommentti