Red Hat vyvíja nový NVFS, efektívny pre pamäť NVM

Mikuláš Patočka, jeden z vývojárov LVM a autor množstva vynálezovsúvisiaci s optimalizáciou úložných systémov, práca v Red Hat, predložené nový súborový systém na konferencii vývojárov jadra Linuxu NVFS, zameraný na vytvorenie kompaktného a rýchleho FS pre energeticky nezávislé pamäťové čipy (NVM, energeticky nezávislé pamäte, napríklad NVDIMM), kombinujúci výkon RAM s možnosťou trvalého ukladania obsahu.

Pri vývoji NVFS sa brali do úvahy skúsenosti FS NEW, vytvorený špeciálne pre pamäť NVM v roku 2017, ale nebol prijatý do linuxového jadra a obmedzený podpora pre linuxové jadrá od 4.13 do 5.1.
Navrhovaný FS NVFS je oveľa jednoduchší ako NOVA (4972 riadkov kódu oproti 21459), poskytuje utilitu fsck, má vyšší výkon, podporuje rozšírené atribúty (xattrs), bezpečnostné štítky, ACL a kvóty, ale nepodporuje snímky. Architektúra NVFS je blízko
Súborový systém Ext4 dobre zapadá do modelu súborových systémov založených na subsystéme VFS, čo umožňuje minimalizovať počet vrstiev a vystačiť si s modulom, ktorý nevyžaduje záplaty do jadra.

NVFS používa rozhranie jadra DAX pre priamy prístup k perzistentným pamäťovým zariadeniam, obídenie vyrovnávacej pamäte stránok. Na optimalizáciu prevádzky pamäte NVM s adresou bajtov sa obsah disku mapuje do lineárneho adresného priestoru jadra bez použitia tradičnej vrstvy blokového zariadenia a medzipamäte. Používa sa na ukladanie obsahu adresára základný strom (radix tree), v ktorom je každý názov súboru hašovaný a hodnota hash sa používa pri vyhľadávaní v strome.

Integrita údajov je zabezpečená pomocou „mäkké aktualizácie"(ako v UFS z FreeBSD a FFS z OpenBSD) bez použitia žurnálovania. Aby sa predišlo poškodeniu súborov v NVFS, operácie zmeny údajov sú zoskupené takým spôsobom, že zlyhanie nemôže viesť k strate blokov alebo inódov, a integrita štruktúr sa obnoví pomocou nástroja fsck. Nástroj fsck pracuje vo viacvláknovom režime a poskytuje výkon hrubou silou 1.6 milióna inódov za sekundu.

В výkonnostné testy NVFS vykonal operáciu kopírovania zdrojového stromu jadra Linuxu v pamäti NVM asi o 10 % rýchlejšie ako NOVA, o 30 % rýchlejšie ako ext4 a o 37 % rýchlejšie ako XFS. V teste získavania údajov bol NVFS rýchlejší ako NOVA o 3% a ext4 a XFS o 15% (ale s aktívnou diskovou cache bola NOVA o 15% pomalšia).
V teste operácií s miliónmi adresárov NVFS prekonalo NOVA o 40 %, ext4 o 22 % a XFS o 46 %. Pri simulácii aktivity DBMS prekonal súborový systém NVFS NOVA o 20 %, ext4 18-krát a XFS 5-krát. V teste fs_mark sa výkon NVFS a NOVA ukázal byť približne na rovnakej úrovni, zatiaľ čo ext4 a XFS zaostali asi 3-krát.

Oneskorenie tradičných súborových systémov na pamäti NVM je spôsobené tým, že nie sú určené na bajtové adresovanie, ktoré sa používa v energeticky nezávislej pamäti, ktorá vyzerá ako bežná RAM. Čítanie z konvenčných jednotiek zabezpečuje atomickosť operácie na úrovni sektora čítanie/zápis, zatiaľ čo pamäť NVM poskytuje prístup na úrovni jednotlivých strojových slov. Okrem toho sa tradičné súborové systémy snažia znížiť intenzitu prístupu k médiu, ktoré sa považuje za zjavne pomalšie ako RAM, a tiež sa snažia zoskupovať operácie, aby sa zabezpečilo sekvenčné čítanie pri používaní pevných diskov, spracovávali fronty požiadaviek, bojovali proti fragmentácii a oddeľovali priority rôznych operácií. Pre pamäť NVM sú takéto komplikácie zbytočné, keďže rýchlosť prístupu k dátam je porovnateľná s RAM a na poradí prístupu nezáleží.

Zdroj: opennet.ru

Pridať komentár