Toinen tulevaan Linux 6.5-ytimen yhdistämisikkunaan lähetettävä ominaisuus on tuki primitiivien provisiointiin ohuesti varusteltua tallennustilaa varten Device Mapper (DM)-koodilla.
Viikonloppuna luotu haara oli linux-dm.gitin dm-6.5-provision-support. Kun se on nyt haarassa, jossa on merkintä”6.5″, näyttää siltä, että se lähetetään tulevaan Linux 6.5-yhdistysikkunaan, jotta Linus Torvalds tai muut ytimen kehittäjät eivät ota esille ongelmia.
Googlen Chrome-käyttöjärjestelmätiimi työskenteli näiden hallintaalustaiden parissa. Sarthak Kukreti Googlesta selitti tätä aloitetta aiemmissa RFC-korjauksissa lähetyksessä. lista:
“Tämä korjaustiedostosarja on RFC mekanismista, joka välittää tarjontapyynnöt pinotuissa ohuesti varustetuissa tallennuslaitteissa/tiedostojärjestelmissä.
Linux-ydin tarjoaa useita mekanismeja ohuesti varusteltujen lohkotallennusabstrahojen määrittämiseen ( esim. dm-thin, silmukkalaitteet harvassa tiedostossa) joko suoraan lohkolaitteina tai tiedostojärjestelmien taustatallennustilana. Tällä hetkellä käyttäjillä ei ole mahdollisuutta varata tilaa etukäteen, kun tietoja ei kirjoiteta laitteeseen tai tiedostojärjestelmään tällaisissa tallennusasetuksissa. Harkitse seuraavia käyttötapauksia:
1) Keskeytä levylle ja jatka dm-thin-laitteelta: Jotta varmistetaan, että taustalla olevia thinpool-metatietoja ei muuteta keskeytysmekanismin aikana, dm-thin-laite on valmisteltava kokonaan.
2) Jos tiedostojärjestelmä käyttää silmukkalaitetta harvassa tiedostossa, fallocate() tiedostojärjestelmässä varaa lohkoja tiedostoille, mutta taustalla oleva harva tiedosto säilyy ehjänä.
3) Toinen esimerkki on virtuaalikone, joka käyttää harvaa tiedostoa/dm-thin tallennuslaitteena; oletusarvoisesti VM-rajojen sisällä olevat varaukset eivät vaikuta isäntään.
4) Useat tallennusstandardit tukevat ohuita provisiointimekanismeja oikeissa laitteistoissa. Esimerkki:
a. NVMe spec 1.0b-osiossa 2.1.1 puhutaan löyhästi ohuesta provisiosta:”Kun Identify Namespace-tietorakenteen NSFEAT-kentän THINP-bitin arvoksi on asetettu”1″, ohjain… seuraa allokoitujen lohkojen määrää nimitilan käyttö-kenttä”
b. SCSi Block Commands-viittaus-4 osioviittausta”Ohuet varatut loogiset yksiköt”,
c. UFS 3.0-spesifikaatioosiossa 13.3.3 viitataan”Thin provisiointiin”.Kaikissa yllä olevissa tilanteissa tällä hetkellä ainoa tapa varata tilaa etukäteen on kirjoittaa (tai käyttää WRITE_ZEROES/WRITE_SAME). Se ei kuitenkaan skaalaudu hyvin suurempien esiallokointikokojen kanssa.
Tämä korjaustiedostosarja esittelee primitiivit, jotka tukevat lohkotason hallintaa (huomautus: termiä”provisioning”käytetään estämään ylikuormitus termin”allokaatiot/esivaraukset”) pyyntöjä tiedostojärjestelmien ja lohkolaitteiden välillä. Tämä sallii fallocate()-ja tiedostojenluontipyynnöt varata tilaa lohkolaitteiden ja tiedostojärjestelmien pinotuilta kerroksilta. Tällä hetkellä patchset kattaa prototyypin laitekartoittajakohteissa, silmukkalaitteella ja ext4:llä, mutta sama mekanismi voidaan laajentaa muihin tiedostojärjestelmiin/lohkolaitteisiin sekä laajentaa käytettäväksi 4 a-c-laitteiden kanssa.”
REQ_OP_PROVISION-pyynnön esittelevä korjaustiedosto tiivistää tämän valmistelun seuraavasti:
“Käytä estopyyntö REQ_OP_PROVISION. Tämän pyynnön tarkoituksena on pyytää taustalla olevaa tallennustilaa ennalta varaamaan levytilaa tietylle lohkoalueelle. Estä laitteet, jotka tukevat tätä ominaisuutta, vievät tarjontarajoituksen pyyntöjonoihinsa.
Tämä korjaustiedosto lisää myös mahdollisuuden kutsua fallocate():tä tilassa 0 lohkolaitteissa, mikä lähettää REQ_OP_PROVISIONin lohkolaitteelle määritetyllä alueella.”
Tämä lohkon valmisteluprimitiivit työ on ollut työn alla useita kuukausia ja testattu onnistuneesti Chrome-käyttöjärjestelmässä ja ylävirran Linux-ytimessä. Lohko-ja DM-muutokset REQ_OP_PROVISIONin ympärillä sekä sen silmukkalaitetuki on nyt valmiina ilmestymään Linux 6.5:een.
Linux 6.5:n yhdistämisikkunan odotetaan alkavan ensi viikolla, jos vakaata Linux 6.4-julkaisua ei siirretä ylimääräisellä viikolla. Linux 6.5 stable puolestaan debyyttiisi elokuun lopussa.