Red Hat razvija novi NVFS, učinkovit za NVM memoriju

Mikuláš Patočka, jedan od programera LVM-a i autor niza izumivezano za optimizaciju sustava za pohranu, radeći u Red Hatu, podnijeti novi datotečni sustav na mailing listi razvojnih programera Linux kernela NVFS, s ciljem stvaranja kompaktnog i brzog FS-a za trajne memorijske čipove (NVM, trajna memorija, na primjer NVDIMM), kombinirajući performanse RAM-a s mogućnošću trajnog pohranjivanja sadržaja.

Prilikom razvoja NVFS-a uzeto je u obzir iskustvo FS-a NOVO, stvoren posebno za NVM memoriju 2017., ali nije prihvaćen u Linux kernelu i ograničena podrška za Linux kernele od 4.13 do 5.1.
Predloženi FS NVFS puno je jednostavniji od NOVA (4972 linije koda u odnosu na 21459), pruža uslužni program fsck, ima veću izvedbu, podržava proširene atribute (xattrs), sigurnosne oznake, ACL-ove i kvote, ali ne podržava snimke. Arhitektura NVFS je blizu
Ext4 datotečni sustav dobro se uklapa u model datotečnih sustava baziran na VFS podsustavu, koji vam omogućuje da minimizirate broj slojeva i zadovoljite se modulom koji ne zahtijeva zakrpe za kernel.

NVFS koristi sučelje kernela DAX za izravan pristup trajnim memorijskim uređajima, zaobilazeći predmemoriju stranice. Kako bi se optimizirao rad bajt-adresirane NVM memorije, sadržaj pogona se preslikava u linearni adresni prostor jezgre bez upotrebe tradicionalnog sloja blok uređaja i srednje predmemorije. Koristi se za pohranu sadržaja imenika osnovno stablo (radix stablo) u kojem je svaki naziv datoteke hashiran i hash vrijednost se koristi prilikom pretraživanja stabla.

Cjelovitost podataka osigurana je pomoću "meka ažuriranja"(kao u UFS-u iz FreeBSD-a i FFS-u iz OpenBSD-a) bez korištenja vođenja dnevnika. Kako bi se izbjeglo oštećenje datoteka u NVFS-u, operacije promjene podataka grupirane su na takav način da rušenje ne može dovesti do gubitka blokova ili inodesa, a integritet struktura se vraća pomoću uslužnog programa fsck. Uslužni program fsck radi u višenitnom načinu rada i pruža brute-force izvedbu od 1.6 milijuna inodeova u sekundi.

В testovi performansi NVFS je izvršio operaciju kopiranja izvornog stabla Linux kernela na NVM memoriju oko 10% brže od NOVA, 30% brže od ext4 i 37% brže od XFS-a. U testu dohvaćanja podataka, NVFS je bio brži od NOVA-e za 3%, a ext4 i XFS-a za 15% (ali s aktivnom diskovnom memorijom, NOVA je bila 15% sporija).
U testu operacija milijunskog imenika, NVFS je nadmašio NOVA za 40%, ext4 za 22%, a XFS za 46%. Prilikom simulacije DBMS aktivnosti, NVFS datotečni sustav nadmašio je NOVA za 20%, ext4 za 18 puta i XFS za 5 puta. U testu fs_mark performanse NVFS-a i NOVA-e pokazale su se približno na istoj razini, dok su ext4 i XFS zaostajali oko 3 puta.

Zaostajanje tradicionalnih datotečnih sustava na NVM memoriji je zbog činjenice da nisu dizajnirani za adresiranje bajtova, koje se koristi u trajnoj memoriji, koja izgleda kao obični RAM. Čitanje s konvencionalnih pogona osigurava atomičnost operacije na razini sektorskog čitanja/pisanja, dok NVM memorija omogućuje pristup na razini pojedinačnih strojnih riječi. Osim toga, tradicionalni datotečni sustavi pokušavaju smanjiti intenzitet pristupa mediju, koji se smatra očito sporijim od RAM-a, a također pokušavaju grupirati operacije kako bi se osiguralo sekvencijalno čitanje pri korištenju tvrdih diskova, obrađuju redovi čekanja zahtjeva, bore se protiv fragmentacije i odvajaju prioriteti različitih operacija. Za NVM memoriju takve komplikacije su nepotrebne, jer je brzina pristupa podacima usporediva s RAM-om, a redoslijed pristupa nije bitan.

Izvor: opennet.ru

Dodajte komentar