Namjae Jeon, partecipante al progetto Samba, che supporta il driver EXFAT e il server KSMBD nel kernel Linux, ha proposto di includere nel kernel una nuova implementazione del file system NTFS — ntfsplus. Si prevede che un driver NTFS di qualità superiore e ben mantenuto migliori la compatibilità dei sistemi Linux con i dispositivi Windows e semplifichi il lavoro degli utenti.
Nell'attuale configurazione, il supporto NTFS in Linux è limitato a un vecchio driver NTFS, rimosso dal kernel Linux e che supportava solo la lettura, e all'attuale driver NTFS3, che presenta molti problemi rimasti irrisolti a causa di una scarsa manutenzione. A causa di tali problemi, molti utenti e distribuzioni continuano a utilizzare il vecchio driver ntfs-3g, che funziona nello spazio utente.
Il driver ntfsplus si basa su una versione rielaborata del driver ntfs classico, originariamente rimosso dal kernel. Questa nuova versione è stata ampliata per includere la possibilità di scrivere dati e significativamente migliorata per supportare funzioni moderne, come l'utilizzo di volumi di pagine di memoria (folios) al posto della struttura buffer_head. Il nuovo driver implementa l'allocazione ritardata dei blocchi, consentendo di raggiungere elevate prestazioni operazioni di scrittura e riduzione della frammentazione. Per le operazioni di scrittura/lettura in buffer, input/output diretto, mappatura degli estremi e operazioni di scrittura/lettura a pagina è stata utilizzata la libreria iomap.
A differenza dell'attuale driver ntfs3 sviluppato da Paragon Software, il driver ntfsplus mostra prestazioni superiori e supporta funzionalità come iomap, allocazione ritardata dei blocchi (delayed allocation) e mappatura degli identificatori utente al momento del montaggio (idmap). Dopo l'inclusione nel kernel principale, si prevede di implementare un completo journaling in ntfsplus (il ntfs3 crea solo un replay log, che nei test ha mostrato comportamenti errati). Il nuovo driver supera con successo 287 test del pacchetto xfstests e include le funzionalità necessarie per eseguire i test di prestazione Bonnie++ (il driver ntfs3 ha superato 218 test xfstests e ha causato problemi nell’esecuzione di Bonnie++).
Durante i test di iozone, il driver ntfsplus si è dimostrato più veloce del 3-5% rispetto a ntfs3 in modalità di scrittura monotasking e dal 35 al 110% quando si utilizzano 4 thread. La velocità di lettura di ntfsplus e ntfs3 è simile. Nel test di output della lista file (ls -lR) in directory con 100/200/400 mille file, ntfsplus è più veloce del 12~14%. In termini di velocità di montaggio, ntfsplus è più veloce di 5-6 volte. L'alta performance di ntfsplus è ottenuta attraverso l'uso di operazioni asincrone iomap, allocazione differita dei blocchi, ottimizzazione dell'allocazione di nuovi cluster, ottimizzazione della fusione dei frammenti, caricamento della bitmap dei cluster in background, caricamento proattivo dei blocchi inode e delle informazioni sulle directory.
Per ntfsplus è stato preparato un set di strumenti ntfsprogs-plus, che opera nello spazio utente ed è basato sugli strumenti ntfsprogs del progetto ntfs-3g. Gli strumenti ntfsclone, ntfscluster e ntfsinfo sono stati trasferiti da ntfsprogs. È stato inoltre sviluppato un nuovo strumento ntfsck per controllare e ripristinare le partizioni danneggiate con NTFS.
Fonte: opennet.ru
