Red Hat vyvíjí nový souborový systém NVFS, který je účinný pro paměť NVM

Mikuláš Patočka, jeden z vývojářů LVM a autor řady vynálezysouvisející s optimalizací úložných systémů, práce ve společnosti Red Hat, představen nový souborový systém na mailing listu pro vývojáře jádra Linuxu NVFS, zaměřený na vytvoření kompaktního a rychlého FS pro energeticky nezávislé paměťové čipy (NVM, energeticky nezávislé paměti, například NVDIMM), kombinující výkon RAM se schopností trvale ukládat obsah.

Při vývoji NVFS byly vzaty v úvahu zkušenosti FS NEW, vytvořený speciálně pro paměti NVM v roce 2017, ale nebyl přijat do linuxového jádra a omezené podpora pro linuxová jádra od 4.13 do 5.1.
Navrhovaný FS NVFS je mnohem jednodušší než NOVA (4972 řádků kódu oproti 21459), poskytuje utilitu fsck, má vyšší výkon, podporuje rozšířené atributy (xattrs), bezpečnostní štítky, ACL a kvóty, ale nepodporuje snímky. Architektura NVFS je blízko
Souborový systém Ext4 dobře zapadá do modelu souborových systémů založených na subsystému VFS, což umožňuje minimalizovat počet vrstev a vystačit si s modulem, který nevyžaduje záplaty do jádra.

NVFS používá rozhraní jádra DAX pro přímý přístup k perzistentním paměťovým zařízením, obcházení mezipaměti stránek. Pro optimalizaci provozu paměti NVM s adresou bajtů je obsah disku mapován do lineárního adresního prostoru jádra bez použití tradiční vrstvy blokového zařízení a mezipaměti. Slouží k uložení obsahu adresáře základní strom (radix tree), ve kterém je každý název souboru hašován a hodnota hash se používá při prohledávání stromu.

Integrita dat je zajištěna pomocí „měkké aktualizace"(jako v UFS z FreeBSD a FFS z OpenBSD) bez použití žurnálování. Aby se předešlo poškození souborů v NVFS, operace změny dat jsou seskupeny tak, že selhání nemůže vést ke ztrátě bloků nebo inodů, a integrita struktur je obnovena pomocí nástroje fsck. Nástroj fsck pracuje ve vícevláknovém režimu a poskytuje výkon hrubou silou 1.6 milionu inodů za sekundu.

В výkonnostní testy NVFS provedl operaci zkopírování zdrojového stromu jádra Linuxu na paměti NVM asi o 10 % rychleji než NOVA, o 30 % rychleji než ext4 a o 37 % rychleji než XFS. V testu načítání dat byl NVFS rychlejší než NOVA o 3 % a ext4 a XFS o 15 % (ale s aktivní diskovou cache byla NOVA o 15 % pomalejší).
V testu milionových operací s adresáři překonal NVFS NOVA o 40 %, ext4 o 22 % a XFS o 46 %. Při simulaci aktivity DBMS překonal souborový systém NVFS NOVA o 20 %, ext4 18krát a XFS 5krát. V testu fs_mark se ukázal výkon NVFS a NOVA přibližně na stejné úrovni, zatímco ext4 a XFS zaostávaly asi 3x.

Zpoždění tradičních souborových systémů na paměti NVM je způsobeno tím, že nejsou navrženy pro bajtové adresování, které se používá v energeticky nezávislé paměti, která vypadá jako běžná RAM. Čtení z konvenčních jednotek zajišťuje atomičnost operace na úrovni sektorového čtení/zápisu, zatímco paměť NVM poskytuje přístup na úrovni jednotlivých strojových slov. Tradiční souborové systémy se navíc snaží snižovat intenzitu přístupu k médiu, které je považováno za zjevně pomalejší než RAM, a také se snaží seskupit operace pro zajištění sekvenčního čtení při použití pevných disků, zpracovávat fronty požadavků, bojovat proti fragmentaci a oddělovat priority různých operací. U paměti NVM jsou takové komplikace zbytečné, protože rychlost přístupu k datům je srovnatelná s RAM a na pořadí přístupu nezáleží.

Zdroj: opennet.ru

Přidat komentář