Namjae Jeon, ein Mitglied des Samba-Projekts, das den EXFAT-Treiber und den KSMBD-Server im Linux-Kernel unterstützt, hat vorgeschlagen, eine neue Implementierung des NTFS-Dateisystems – ntfsplus – in den Kernel aufzunehmen. Es wird erwartet, dass ein verbesserter und gepflegter NTFS-Treiber die Kompatibilität von Linux-Systemen mit Windows-Geräten verbessert und die Benutzerfreundlichkeit erleichtert.
Derzeit ist die Unterstützung für NTFS in Linux auf den alten NTFS-Treiber beschränkt, der aus dem Linux-Kernel entfernt wurde und nur Lesezugriff unterstützte, sowie auf den aktuellen NTFS3-Treiber, der viele ungelöste Probleme aufweist aufgrund schlechter Wartung. Aufgrund dieser Probleme verwenden viele Benutzer und Distributionen weiterhin den alten Treiber ntfs-3g, der im Benutzerspeicherraum arbeitet.
Die Basis des ntfsplus-Treibers beruht auf dem Code der aus dem Kernel entfernten klassischen ntfs-Treiberversion. Dieser wurde überarbeitet und um die Fähigkeit zur Datenschreibung erweitert, um moderne Funktionen zu unterstützen, wie die Verwendung von Seitenfolien (folios) anstelle der Struktur buffer_head. Der neue Treiber implementiert die verzögerte Zuweisung von Blöcken, was zu Hochleistungsmodus erhöhten Schreiboperationen und einer Verringerung der Fragmentierung führt. Für die gepufferten Lese-/Schreiboperationen, den Direct I/O, die Extent-Mapping und die Seitenlese-/schreiboperationen wird die iomap-Bibliothek verwendet.
Im Gegensatz zum bestehenden ntfs3-Treiber, der von der Paragon Software entwickelt wurde, bietet der ntfsplus-Treiber eine höhere Leistung und unterstützt Funktionen wie iomap, verzögerte Blockzuteilung (delayed allocation) und die Identitätszuordnung bei der Montage (idmap). Nach der Annahme in den Hauptkern von ntfsplus ist die Implementierung eines vollwertigen Journals geplant (während im ntfs3 nur ein Replay-Journal erstellt wird, das in Tests fehlerhaft funktioniert). Der neue Treiber besteht erfolgreich aus 287 Tests des xfstests-Sets und implementiert die Funktionen, die erforderlich sind, um die Leistungsprüfung mit Bonnie++ durchzuführen (während der ntfs3-Treiber nur 218 xfstests-Tests bestand und Probleme bei der Ausführung von Bonnie++ verursachte).
Bei den iozone-Tests erwies sich der ntfsplus-Treiber als 3-5% schneller als ntfs3 beim Schreiben im Einzelthreadbetrieb und sogar 35-110%, wenn vier Threads verwendet werden. Die Leseleistung 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 Montagegeschwindigkeit ist ntfsplus 5-6 Mal schneller. Höhere Leistung wird bei ntfsplus durch die Verwendung asynchroner iomap-Operationen, verzögerten Blockzuteilungen, Optimierung der Zuteilung neuer Cluster, Optimierung der Fragmentverschmelzung, Hintergrundladung der Clusterbitmap sowie vorzeitiger Blockladung von Inode- und Verzeichnisinformationen erreicht.
Für ntfsplus wurde ein Satz von Dienstprogrammen namens ntfsprogs-plus entwickelt, die im Benutzerspace arbeiten und auf den ntfsprogs-Dienstprogrammen des ntfs-3g-Projekts basieren. Aus ntfsprogs wurden die Dienstprogramme ntfsclone, ntfscluster und ntfsinfo übernommen. Zusätzlich wurde ein neues Dienstprogramm namens ntfsck entwickelt, das zur Überprüfung und Wiederherstellung beschädigter NTFS-Partitionen dient.
Quelle: opennet.ru
