Red Hat utvikler et nytt NVFS-filsystem som er effektivt for NVM-minne

Mikuláš Patočka, en av utviklerne av LVM og forfatter av en rekke oppfinnelserrelatert til optimalisering av lagringssystemer, jobber hos Red Hat, innsendt nytt filsystem på e-postlisten for Linux-kjerneutviklere NVFS, rettet mot å lage en kompakt og rask FS for ikke-flyktige minnebrikker (NVM, ikke-flyktig minne, for eksempel NVDIMM), som kombinerer RAM-ytelse med muligheten til å lagre innhold permanent.

Erfaringene fra FS ble tatt i betraktning ved utviklingen av NVFS NEW, laget spesielt for NVM-minne i 2017, men ikke akseptert i Linux-kjernen og begrenset støtte for Linux-kjerner fra 4.13 til 5.1.
Den foreslåtte FS NVFS er mye enklere enn NOVA (4972 linjer med kode mot 21459), gir fsck-verktøyet, har høyere ytelse, støtter utvidede attributter (xattrs), sikkerhetsetiketter, ACLer og kvoter, men støtter ikke øyeblikksbilder. Arkitektur NVFS er i nærheten av
Ext4 filsystem passer godt inn i modellen av filsystemer basert på VFS-delsystemet, som lar deg minimere antall lag og nøye deg med en modul som ikke krever patcher til kjernen.

NVFS bruker kjernegrensesnittet DAX for direkte tilgang til vedvarende minneenheter, omgå sidebufferen. For å optimalisere driften av byte-adressert NVM-minne, blir innholdet i stasjonen kartlagt til kjernens lineære adresserom uten bruk av et tradisjonelt blokkenhetslag og mellombuffer. Brukes til å lagre kataloginnhold basistre (radix tree) der hvert filnavn er hash og hash-verdien brukes når du søker i treet.

Dataintegriteten sikres ved å bruke "myke oppdateringer"(som i UFS fra FreeBSD og FFS fra OpenBSD) uten å bruke journalføring. For å unngå filkorrupsjon i NVFS, er dataendringsoperasjoner gruppert på en slik måte at et krasj ikke kan føre til tap av blokker eller inoder, og integriteten til strukturer gjenopprettes ved hjelp av fsck-verktøyet. Fsck-verktøyet opererer i flertrådsmodus og gir brute-force ytelse på 1.6 millioner inoder per sekund.

В ytelsestester NVFS utførte Linux-kjernens kildetrekopioperasjon på NVM-minne omtrent 10 % raskere enn NOVA, 30 % raskere enn ext4 og 37 % raskere enn XFS. I datainnhentingstesten var NVFS raskere enn NOVA med 3 %, og ext4 og XFS med 15 % (men med aktiv diskbuffer var NOVA 15 % tregere).
I testen av millioner katalogoperasjoner overgikk NVFS NOVA med 40 %, ext4 med 22 % og XFS med 46 %. Ved simulering av DBMS-aktivitet overgikk NVFS-filsystemet NOVA med 20 %, ext4 med 18 ganger og XFS med 5 ganger. I fs_mark-testen viste ytelsen til NVFS og NOVA seg å være omtrent på samme nivå, mens ext4 og XFS lå omtrent 3 ganger etter.

Etterslepet til tradisjonelle filsystemer på NVM-minne skyldes at de ikke er designet for byteadressering, som brukes i ikke-flyktig minne, som ser ut som vanlig RAM. Lesing fra konvensjonelle stasjoner sikrer atomitet av operasjonen på sektorlese/skrivenivå, mens NVM-minne gir tilgang på nivået til individuelle maskinord. I tillegg prøver tradisjonelle filsystemer å redusere intensiteten av tilgang til media, som anses som åpenbart tregere enn RAM, og prøver også å gruppere operasjoner for å sikre sekvensiell lesing ved bruk av harddisker, behandle forespørselskøer, bekjempe fragmentering og skille prioriteringer av ulike operasjoner. . For NVM-minne er slike komplikasjoner unødvendige, siden hastigheten på datatilgang er sammenlignbar med RAM, og tilgangsrekkefølgen spiller ingen rolle.

Kilde: opennet.ru

Legg til en kommentar