Namjae Jeon, ein Teilnehmer des Samba-Projekts, der den EXFAT-Treiber und den KSMBD-Server im Linux-Kernel betreut, hat vorgeschlagen, eine neue Implementierung des NTFS-Dateisystems - ntfsplus - in den Kernel aufzunehmen. Es wird davon ausgegangen, dass ein qualitativ hochwertiger und betreuter NTFS-Treiber die KompatibilitÀt von Linux-Systemen mit Windows-GerÀten verbessern und die Benutzerfreundlichkeit erleichtern wird.
In der aktuellen Form ist die UnterstĂŒtzung von NTFS in Linux auf den alten NTFS-Treiber beschrĂ€nkt, der aus dem Linux-Kernel entfernt wurde und nur Lesezugriff ermöglichte, sowie auf den aktuellen NTFS3-Treiber, der viele ungelöste Probleme aufweist, die durch schlechte Pflege entstanden sind. Aufgrund solcher Probleme verwenden viele Benutzer und Distributionen weiterhin den alten ntfs-3g-Treiber, der im Benutzermodus arbeitet.
Als Grundlage fĂŒr den ntfsplus-Treiber wurde der Code der aus dem Kernel entfernten klassischen ntfs-Treiber verwendet, der ĂŒberarbeitet, mit der FĂ€higkeit zur Datenaufzeichnung erweitert und erheblich verbessert wurde, um moderne Funktionen zu unterstĂŒtzen, wie die Verwendung von Memory Page Folios anstelle von buffer_head-Strukturen. Im neuen Treiber wurde eine verzögerte Blockzuweisung implementiert, die es ermöglicht, hohe Leistung SchreibvorgĂ€nge durchzufĂŒhren und die Fragmentierung zu reduzieren. FĂŒr gepufferte Lese-/SchreibvorgĂ€nge, direkten Eingabe-/Ausgabe, Extent-Mapping sowie Seiten-Lese-/SchreibvorgĂ€nge wird die Bibliothek iomap verwendet.
Im Gegensatz zum bestehenden ntfs3-Treiber, der von der Paragon Software entwickelt wurde, zeigt der ntfsplus-Treiber eine höhere Leistung und unterstĂŒtzt Funktionen wie iomap, verzögerte Blockzuweisung und die Zuordnung von Benutzeridentifikatoren beim Mounten (idmap). Nach der Annahme in den Hauptkernel plant man in ntfsplus die Implementierung einer vollstĂ€ndigen Protokollierung (im ntfs3 wird nur ein Replay-Protokoll erstellt, das in Tests nicht korrekt funktioniert). Der neue Treiber besteht erfolgreich 287 Tests aus dem Set xfstests und implementiert die erforderlichen Funktionen fĂŒr die DurchfĂŒhrung von Leistungstests mit Bonnie++ (der ntfs3-Treiber bestand 218 Tests von xfstests und fĂŒhrte zu Problemen beim Start von Bonnie++).
Bei den iozone-Tests erwies sich der ntfsplus-Treiber als 3-5% schneller als ntfs3 beim Schreiben im Einzelfadmodus und um 35-110% bei der Verwendung von 4 Threads. Die Lesegeschwindigkeit von ntfsplus und ntfs3 liegt ungefĂ€hr auf dem gleichen Niveau. Im Test zur Auflistung von Dateien (ls -lR) in Verzeichnissen mit 100/200/400 Tausend Dateien war ntfsplus um 12~14% schneller. Bei der Geschwindigkeit des Einbindens ist ntfsplus 5-6 Mal schneller. Die hohe Leistung von ntfsplus wird durch die Verwendung von asynchronen iomap-Operationen, verzögerter Blockzuweisung, Optimierung der Zuweisung neuer Cluster, Optimierung der FragmentzusammenfĂŒhrung, dem Hintergrundladen der Clusterbitmap sowie dem vorzeitigen Laden von Inode-Blöcken und Verzeichnisinformationen erreicht.
FĂŒr ntfsplus wurde ein Satz von Programmen namens ntfsprogs-plus entwickelt, die im Benutzerspace arbeiten und auf den ntfsprogs-Tools des ntfs-3g-Projekts basieren. Die Utilities ntfsclone, ntfscluster und ntfsinfo wurden aus ntfsprogs ĂŒbernommen. Das Projekt hat auch ein neues Utility namens ntfsck entwickelt, um beschĂ€digte NTFS-Partitionen zu ĂŒberprĂŒfen und wiederherzustellen.
Quelle: opennet.ru
