Red Hat develops new NVFS file system, efficient for NVM memory | VPS and VPN
загрузка...

Red Hat develops new NVFS file system, efficient for NVM memory


Mikulas Patocka, one of the LVM developers and inventor of several storage optimization inventions at Red Hat, has submitted a new NVFS file system to the Linux kernel developers mailing list, aimed at creating a compact and fast file system for chips non-volatile memory (NVM, non-volatile memory, for example NVDIMM), combining the performance of RAM with the ability to permanently store content.

When developing NVFS, the experience of the NOVA FS was taken into account, in 2017 created specifically for NVM memory, but not included in the Linux kernel due to its complexity and limited support for Linux kernels from 4.13 to 5.1. The proposed FS NVFS is much simpler than NOVA (4972 lines of code versus 21459), provides an fsck utility, has better performance, supports extended attributes (xattrs), security labels, ACLs and quotas, but does not support snapshots. The architecture of NVFS is close to FS Ext4 and fits well into the model of file systems based on the VFS subsystem, which allows minimizing the number of interlayers and dispensing with a module that does not require patching into the kernel.

NVFS uses the DAX kernel interface to directly access persistent storage devices bypassing the page cache. To optimize the work with NVM memory, which uses byte addressing, the contents of the drive are mapped into the linear address space of the kernel without using the traditional block device layer and intermediate cache. To store the contents of directories, a radix tree is used, in which each filename is hashed and the hash value is used when searching the tree.

Data integrity is ensured through soft updates (like UFS from FreeBSD and FFS from OpenBSD) without using journaling. To avoid file corruption in NVFS, data modification operations are grouped in such a way that a crash cannot lead to the loss of blocks or inodes, and the integrity of structures is restored using the fsck utility. The fsck utility works in multi-threaded mode and provides brute-force performance of 1.6 million inodes per second.

In benchmarks, NVFS performed a tree copy operation with Linux kernel sources on NVM memory about 10% faster than NOVA, 30% faster than ext4, and 37% faster than XFS. In the data search test, NVFS was faster than NOVA by 3%, and ext4 and XFS by 15% (but with an active disk cache, NOVA turned out to be 15% slower). In the Million Directory Operations test, NVFS outperformed NOVA by 40%, ext4 by 22%, and XFS by 46%. When simulating DBMS activity, the NVFS file system outperformed NOVA by 20%, ext4 by 18 times, and XFS by 5 times. In the fs_mark test, NVFS and NOVA were about the same, while ext4 and XFS were about 3 times behind.

The lag of traditional FS on NVM memory is due to the fact that they are not designed for byte addressing used in non-volatile memory, which looks like ordinary RAM. Reading from ordinary drives provides atomicity of the operation at the sector read / write level, while NVM memory provides access at the individual byte level. In addition, traditional file systems try to reduce the intensity of access to the media, which is considered to be obviously slower than RAM, and also try to group operations to ensure sequential reads when using hard drives, process request queues and separate the priorities for performing different operations. For NVM memory, such complications are unnecessary, since the data access speed is comparable to RAM, and the order of access does not matter.

Source: https://www.opennet.ru/opennews/art.shtml?num=53743

Leave a Reply

Your email address will not be published. Required fields are marked *