Mikuláš Patočka, eden od razvijalcev LVM in avtor številnih povezanih z optimizacijo pomnilniških sistemov, delo pri Red Hat, na poštnem seznamu razvijalcev jedra Linux nov datotečni sistem , namenjen ustvarjanju kompaktnega in hitrega FS-ja za obstojne pomnilniške čipe (NVM, obstojni pomnilnik, na primer NVDIMM), ki združuje zmogljivost RAM-a z možnostjo trajnega shranjevanja vsebine.
Pri razvoju NVFS so bile upoštevane izkušnje FS , ustvarjen leta 2017 posebej za pomnilnik NVM, vendar ni bil sprejet v jedro Linux и podpora jedra Linux od 4.13 do 5.1.
Predlagani FS NVFS je veliko preprostejši od NOVA (4972 vrstic kode v primerjavi z 21459), zagotavlja pripomoček fsck, ima večjo zmogljivost, podpira razširjene atribute (xattrs), varnostne oznake, ACL-je in kvote, vendar ne podpira posnetkov. NVFS je blizu
Datotečni sistem Ext4 se dobro ujema z modelom datotečnih sistemov, ki temeljijo na podsistemu VFS, kar vam omogoča, da minimizirate število plasti in se zadovoljite z modulom, ki ne zahteva popravkov za jedro.
NVFS uporablja vmesnik jedra za neposreden dostop do trajnih pomnilniških naprav, mimo predpomnilnika strani. Za optimizacijo delovanja pomnilnika NVM z bajtnim naslovom je vsebina pogona preslikana v linearni naslovni prostor jedra brez uporabe tradicionalne plasti blokovne naprave in vmesnega predpomnilnika. Uporablja se za shranjevanje vsebine imenika (radix tree), v katerem je vsako ime datoteke zgoščeno in se zgoščena vrednost uporablja pri iskanju po drevesu.
Celovitost podatkov je zagotovljena z uporabo »"(kot v UFS iz FreeBSD in FFS iz OpenBSD) brez uporabe beleženja. Da bi se izognili poškodbam datotek v NVFS, so operacije spreminjanja podatkov združene tako, da zrušitev ne more povzročiti izgube blokov ali inodov, celovitost struktur pa se obnovi s pomočjo pripomočka fsck. Pripomoček fsck deluje v večnitnem načinu in zagotavlja zmogljivost surove sile 1.6 milijona inodov na sekundo.
В NVFS je izvedel operacijo kopiranja izvornega drevesa jedra. Linux Na pomnilniku NVM je NOVA približno 10 % hitrejši, ext4 je 30 % hitrejši, XFS pa 37 % hitrejši. V testu iskanja podatkov datotečnega sistema je bil NVFS 3 % hitrejši od NOVA, ext4 in XFS pa sta bila oba 15 % hitrejša (vendar je bila NOVA z aktivnim predpomnilnikom diska 15 % počasnejša).
V preizkusu operacij imenikov je NVFS presegel NOVA za 40 %, ext4 za 22 % in XFS za 46 %. Pri simulaciji dejavnosti DBMS je datotečni sistem NVFS presegel NOVA za 20 %, ext4 za 18-krat in XFS za 5-krat. V testu fs_mark se je zmogljivost NVFS in NOVA izkazala za približno enako raven, medtem ko sta ext4 in XFS zaostajala približno 3-krat.
Zaostajanje tradicionalnih datotečnih sistemov na pomnilniku NVM je posledica dejstva, da niso zasnovani za naslavljanje bajtov, ki se uporablja v obstojnem pomnilniku, ki izgleda kot običajni RAM. Branje z običajnih pogonov zagotavlja atomičnost delovanja na ravni sektorskega branja/pisanja, medtem ko pomnilnik NVM omogoča dostop na ravni posameznih strojnih besed. Poleg tega tradicionalni datotečni sistemi poskušajo zmanjšati intenzivnost dostopa do medija, ki velja za očitno počasnejšega od RAM-a, in poskušajo združiti operacije, da zagotovijo zaporedno branje pri uporabi trdih diskov, obdelujejo čakalne vrste zahtev, se borijo proti fragmentaciji in ločujejo prioritete različnih operacij. Pri pomnilniku NVM so takšni zapleti nepotrebni, saj je hitrost dostopa do podatkov primerljiva z RAM-om in vrstni red dostopa ni pomemben.
Vir: opennet.ru
