Red Hat vyvíjí nový souborový systém NVFS, efektivní pro paměť NVM

Mikuláš Patočka, jeden z vývojářů LVM a autor řady vynálezů, spojených s optimalizací práce systémů ukládání, pracující v společnosti Red Hat, představil na mailing listu vývojářů jádra Linux novou файловou систему NVFS, zaměřenou na vytvoření kompaktní a rychlé FS pro čipy energeticky nezávislé paměti (NVM, non-volatile memory, například NVDIMM), které kombinují výkon RAM s možností trvalého ukládání obsahu.

Při vývoji NVFS byl zohledněn zkušenosti FS NOVA, v roce 2017 vytvořené speciálně pro paměť NVM, ale nebylo přijato do jádra Linux a omezené podporou jader Linux od 4.13 do 5.1.
Navržená FS NVFS je výrazně 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 snapshoty. Architektura NVFS je blízká
FS Ext4 a dobře se hodí do modelu souborových systémů založeného na subsystému VFS, což umožňuje minimalizovat počet vrstev a obejít se modulis, který nevyžaduje úpravy v jádře.

NVFS používá jádrové rozhraní DAX pro přímý přístup k zařízení trvalé paměti mimo stránkovou cache. Pro optimalizaci práce s pamětí NVM, která využívá byte addressing, je obsah úložiště zobrazen v lineárním adresním prostoru jádra bez použití tradiční úrovně blokových zařízení a meziúložní cache. Pro uchování obsahu adresářů se používá baze základního stromu (radix tree), kde bylo každé jméno souboru hashováno a hodnota hashe se používá při vyhledávání ve stromu.

Integrovanost dat je zajištěna pomocí mechanismu „soft updates“ (jak v UFS z FreeBSD a v FFS z OpenBSD) bez použití žurnálování. Aby se v NVFS vyloučilo poškození souborů, jsou operace změny dat seskupeny tak, aby havárie nemohla způsobit ztrátu bloků nebo inode, a integrita struktur se obnovuje pomocí nástroje fsck. Nástroj fsck pracuje v vícetrubkovém režimu a zajišťuje výkon na úrovni prohledávání 1,6 milionu inode za sekundu.

V testech výkonu NVFS proved to perform the operation of copying the kernel's text tree to NVM memory approximately 10% faster than NOVA, 30% faster than ext4, and 37% faster than XFS. In the data search test, the NVFS file system was 3% faster than NOVA, and 15% faster than ext4 and XFS (but with active disk caching, NOVA was slower by 15%).
In a test of one million directory operations, NVFS outperformed NOVA by 40%, ext4 by 22%, and XFS by 46%. When simulating database activity, the NVFS file system surpassed NOVA by 20%, ext4 by 18 times, and XFS by 5 times. In the fs_mark test, NVFS and NOVA showed comparable results, while ext4 and XFS lagged behind by about 3 times.

The lag of traditional file systems on NVM memory is due to the fact that they are not designed for byte-addressable operations used in non-volatile memory, which resembles regular RAM. Reading from traditional drives ensures atomicity of operations at the sector read/write level, while NVM memory provides access at the level of individual machine words. Additionally, traditional file systems try to reduce access intensity to storage, which is treated as inherently slower than RAM, and also try to batch operations to ensure sequential reading when using hard drives, handle request queues, combat fragmentation, and separate execution priorities for different operations. For NVM memory, such complexities are unnecessary, as the data access speed is comparable to RAM, and the order of access does not matter.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster