Mikuláš Patočka, jeden z vývojárov LVM a autor viacerých , súvisiacich s optimalizáciou práce so systémami ukladania, pracujúci v spoločnosti Red Hat, na mailing liste vývojárov jadra Linux predstavil nový súborový systém , zameraný na vytvorenie kompaktného a rýchleho FS pre čipy energie nezávislej pamäte (NVM, non-volatile memory, napríklad NVDIMM), ktorý kombinuje výkonnosť RAM s možnosťou trvalého ukladania obsahu.
Pri vývoji NVFS bol zohľadnený skúsenosti zo súborového systému , ktorý bol vytvorený v roku 2017 špeciálne pre NVM pamäť, no nebol prijatý do jadra Linux a podporou jadier Linux od verzie 4.13 do 5.1.
Navrhnutý FS NVFS je výrazne jednoduchší ako NOVA (4972 riadkov kódu oproti 21459), poskytuje nástroj fsck, má vyššiu výkon, podporuje rozšírené atribúty (xattrs), bezpečnostné značky, ACL a kvóty, ale nepodporuje snapshoty. NVFS je blízka
súborovému systému Ext4 a dobre sa integruje do modelu súborových systémov na báze subsystému VFS, čo umožňuje minimalizovať počet vrstiev a zaobísť sa modulom, ktorý nevyžaduje vkladanie patchov do jadra.
NVFS využíva rozhranie jadra na priamy prístup k zariadeniam trvalej pamäte mimo stránkového cache. Na optimalizáciu práce s NVM pamäťou, v ktorej sa používa bajtová adresácia, sa obsah úložiska mapuje do lineárneho adresného priestoru jadra bez tradičnej úrovne blokových zariadení a medzilehlého cache. Na uloženie obsahu adresárov sa používa (radix tree), v ktorom je každé meno súboru hashované a hodnota hashu sa používa pri vyhľadávaní v strome.
Integrita dát je zabezpečená pomocou mechanizmu „“ (ako v UFS z FreeBSD a v FFS z OpenBSD) bez použitia žurnálovania. Aby sa predišlo poškodeniu súborov v NVFS, operácie zmien údajov sú skupinované tak, že havária nemôže viesť k strate blokov alebo inode, a integrita štruktúr sa obnovuje pomocou nástroja fsck. Nástroj fsck pracuje v multithreadovom režime a zabezpečuje výkon na úrovni prehľadávania 1,6 milióna inode za sekundu.
V NVFS vykonala operáciu kopírovania stromu s pôvodnými textami jadra Linux na NVM pamäti približne o 10 % rýchlejšie ako NOVA, o 30 % rýchlejšie ako ext4 a o 37 % rýchlejšie ako XFS. V teste na vyhľadávanie dát bola FS NVFS rýchlejšia ako NOVA o 3 %, a ext4 a XFS o 15 % (avšak pri aktívnom disku bola NOVA pomalšia o 15 %).
V teste na milión operácií s adresármi NVFS predbehla NOVA o 40 %, ext4 o 22 %, a XFS o 46 %. Pri simulácii aktivity DBMS bola súborová systém NVFS rýchlejšia ako NOVA o 20 %, ext4 18-krát a XFS 5-krát. V teste fs_mark boli výsledky NVFS a NOVA na približne rovnakej úrovni, zatiaľ čo ext4 a XFS zaostali približne 3-krát.
Zaostávanie tradičných FS na NVM pamäti je spôsobené tým, že nie sú určené na bajtovú adresáciu, ktorá sa používa v nepamäťovej pamäti, ktorá sa správa ako bežná RAM. Čítanie z bežných úložných zariadení zabezpečuje atomickosť operácií na úrovni čítania/zápisu sektora, zatiaľ čo NVM pamäť poskytuje prístup na úrovni jednotlivých strojových slov. Okrem toho tradičné FS sa snažia znížiť intenzitu prístupu na nosič, ktorý sa považuje za nevyhnutne pomalší ako operačná pamäť, a snažia sa zoskupovať operácie na zabezpečenie sekvenčného čítania pri použití pevných diskov, spravovať fronty požiadaviek, bojovať s fragmentáciou a deliť priority vykonávania rôznych operácií. Pre NVM pamäť sú takéto komplikácie nadbytočné, pretože rýchlosť prístupu k dátam je porovnateľná s RAM, a poradové čítanie nie je dôležité.
Zdroj: opennet.ru
