Namjae Jeon, participant in the Samba project, supporting the EXFAT driver and KSMBD server in the Linux kernel, proposed to include a new implementation of the NTFS file system—ntfsplus. It is expected that a higher quality and maintained NTFS driver will improve compatibility between Linux systems and Windows devices and simplify user operations.
In its current form, NTFS support in Linux is limited to an outdated NTFS driver, removed from the Linux kernel and supporting only reading, as well as the current NTFS3 driver, which has many unresolved issues due to poor maintenance. Because of these problems, many users and distributions continue to use the old ntfs-3g driver, which operates in user space.
The ntfsplus driver is based on the codebase of the classical ntfs driver that has been removed from the kernel, which has been reworked, extended with the ability to write data, and significantly improved to support modern features, such as using memory page folios instead of the buffer_head structure. The new driver implements delayed block allocation, allowing for performanță înaltă write operations and reducing fragmentation. For buffered write/read operations, direct input/output, extent mapping, and page write/read operations, the iomap library is utilized.
Unlike the existing ntfs3 driver developed by Paragon Software, the ntfsplus driver demonstrates higher performance and supports features such as iomap, delayed block allocation, and user ID mapping during mounting (idmap). Once accepted into the main line of the kernel, ntfsplus plans to implement full journaling (in ntfs3 only a replay journal is created, which works incorrectly in tests). The new driver successfully passes 287 tests from the xfstests suite and also implements the features necessary for conducting performance tests with Bonnie++ (the ntfs3 driver passed 218 xfstests tests and caused issues when running Bonnie++).
În timpul testelor iozone, driverul ntfsplus s-a dovedit a fi cu 3-5% mai rapid decât ntfs3 la scriere în modul monocelular și cu 35-110% mai rapid folosind 4 fire de execuție. Viteza de citire a ntfsplus și ntfs3 este aproximativ la același nivel. În testul de listare a fișierelor (ls -lR) în directoare cu 100/200/400 de mii de fișiere, ntfsplus este cu 12-14% mai rapid. În ceea ce privește viteza de montare, ntfsplus este cu 5-6 ori mai rapid. Performanța înaltă este atinsă în ntfsplus prin utilizarea operațiunilor asincrone iomap, alocării întârziate de blocuri, optimizării alocării de noi clustere, optimizării fuzionării fragmentelor, încărcării hărții de clustere în fundal, încărcării anticipative a blocurilor inode și informațiilor despre directoare.
Pentru ntfsplus a fost pregătit un set de utilitare ntfsprogs-plus, care funcționează în spațiul utilizatorului și se bazează pe utilitare ale ntfsprogs din proiectul ntfs-3g. Din ntfsprogs au fost transferate utilitarele ntfsclone, ntfscluster și ntfsinfo. De asemenea, proiectul a dezvoltat o nouă utilitate ntfsck pentru verificarea și recuperarea secțiunilor corupte cu NTFS.
Sursa: opennet.ro
