Mikuláš Patočka, jeden z vývojářů LVM a autor řady , spojených s optimalizací fungování úložných systémů, pracující v společnosti Red Hat, na mailing listu vývojářů jádra Linux novou souborovou systém , zaměřenou na vytvoření kompaktní a rychlé FS pro čipy s energiemi nezávislé paměti (NVM, non-volatile memory, například NVDIMM), kombinující výkon RAM s možností trvalého ukládání obsahu.
Při vývoji NVFS byl zohledněn zkušenost FS , vytvořené v roce 2017 speciálně pro paměť NVM, ale nebylo přijato do jádra Linux a podporou jader Linux od 4.13 do 5.1.
Navržená FS NVFS je mnohem jednodušší než NOVA (4972 řádků kódu oproti 21459), poskytuje nástroj fsck, má vyšší výkon, podporuje rozšířené atributy (xattrs), bezpečnostní značky, ACL a kvóty, ale nepodporuje snímky. NVFS je blízká
FS Ext4 a dobře zapadá do modelu souborových systémů založených na subsystému VFS, což umožňuje minimalizovat počet vrstev a obejít se s modulem, který nevyžaduje opravy jádra.
NVFS používá jádrové rozhraní pro přímý přístup k zařízením s trvalou pamětí bez stránkového cache. Pro optimalizaci práce s pamětí NVM, kde se používá byte-addressing, je obsah úložiště mapován do linearizovaného adresního prostoru jádra bez použití tradičního úrovně blokových zařízení a mezipaměti. Pro ukládání obsahu adresářů se používá ve kterém je každé jméno souboru hashe a hodnota hashe se používá při vyhledávání v stromě.
Integrita dat je zajištěna mechanismem „“ (jak v UFS z FreeBSD a v FFS z OpenBSD) bez použití žurnálování. Aby se zabránilo poškození souborů v NVFS, jsou operace změny dat seskupeny tak, aby selhání nemohlo vést ke ztrátě bloků nebo inode, a integrity struktur se obnovují pomocí nástroje fsck. Nástroj fsck pracuje v multithreadovém režimu a zajišťuje výkon na úrovni prohledávání 1,6 milionu inode za sekundu.
W NVFS przeprowadziła kopiowanie drzewa z oryginalnymi tekstami jądra Linux w pamięci NVM około 10% szybciej niż NOVA, 30% szybciej niż ext4 i 37% szybciej niż XFS. W teście wyszukiwania danych system plików NVFS był szybszy od NOVA o 3%, a od ext4 i XFS o 15% (jednak przy aktywnym buforze dyskowym NOVA okazała się wolniejsza o 15%).
W teście milion operacji z katalogami NVFS wyprzedził NOVA o 40%, ext4 o 22%, a XFS o 46%. Przy symulacji aktywności bazy danych system plików NVFS wyprzedził NOVA o 20%, ext4 18 razy, a XFS 5 razy. W teście fs_mark wyniki NVFS i NOVA były na zbliżonym poziomie, a ext4 i XFS były wolniejsze średnio trzy razy.
Opóźnienia tradycyjnych systemów plików w pamięci NVM wynikają z tego, że nie są one przystosowane do adresowania bajtowego stosowanego w pamięci nieulotnej, która wygląda jak zwykła pamięć RAM. Odczyt z tradycyjnych nośników zapewnia atomowość operacji na poziomie odczytu/zapisu sektora, podczas gdy pamięć NVM zapewnia dostęp na poziomie pojedynczych słów maszynowych. Ponadto tradycyjne systemy plików próbują zmniejszyć intensywność dostępu do nośnika, który traktowany jest jako z definicji wolniejszy niż pamięć operacyjna, a także starają się grupować operacje, aby zapewnić sekwencyjny odczyt przy użyciu dysków twardych, zarządzać kolejkami żądań, walczyć z fragmentacją i oddzielać priorytety wykonywania różnych operacji. Dla pamięci NVM takie komplikacje są zbędne, ponieważ prędkość dostępu do danych jest porównywalna z RAM, a kolejność dostępu nie ma znaczenia.
Źródło: opennet.ru
