Namjae Jeon, participante del proyecto Samba, que acompaña al controlador EXFAT y al servidor KSMBD en el núcleo de Linux, ha propuesto incluir en el núcleo una nueva implementación del sistema de archivos NTFS: ntfsplus. Se espera que un controlador NTFS de mayor calidad y mantenido correctamente mejore la compatibilidad de los sistemas Linux con dispositivos Windows y simplifique el trabajo de los usuarios.
En su forma actual, el soporte para NTFS en Linux está limitado por un antiguo controlador NTFS que ha sido eliminado del núcleo de Linux y que solo admitía lectura, además del actual controlador NTFS3, que tiene muchos problemas no resueltos debido a un mal mantenimiento. Debido a estos problemas, muchos usuarios y distribuciones siguen utilizando el antiguo controlador ntfs-3g, que funciona en el espacio de usuario.
La base de código del controlador ntfsplus se deriva del antiguo controlador NTFS que fue eliminado del núcleo, el cual fue reestructurado, ampliado para permitir la escritura de datos y significativamente mejorado para soportar capacidades modernas, como el uso de folios de páginas de memoria en lugar de la estructura buffer_head. En el nuevo controlador se implementó la asignación diferida de bloques, lo que permitió lograr un alto rendimiento en operaciones de escritura y reducir la fragmentación. Para operaciones de lectura/escritura en búfer, entrada/salida directa, mapeo de extensión y operaciones de lectura/escritura por página, se utiliza la biblioteca iomap.
A diferencia del controlador existente ntfs3, desarrollado por Paragon Software, el controlador ntfsplus muestra un rendimiento superior y admite características como iomap, asignación diferida de bloques y mapeo de identificadores de usuario al montar. Después de ser aceptado en el núcleo principal, se planea implementar un registro completo en ntfsplus (en ntfs3 solo se crea un registro de reproducción que no funciona correctamente en las pruebas). El nuevo controlador pasa exitosamente 287 pruebas de la colección xfstests, y también implementa las capacidades necesarias para realizar pruebas de rendimiento con Bonnie++ (el controlador ntfs3 pasaba 218 pruebas de xfstests y causaba problemas al ejecutar Bonnie++).
Al realizar pruebas con iozone, el controlador ntfsplus demostró ser entre un 3-5% más rápido que ntfs3 en escritura en modo de un solo hilo y entre un 35-110% al utilizar 4 hilos. La velocidad de lectura de ntfsplus y ntfs3 está aproximadamente al mismo nivel. En la prueba de listado de archivos (ls -lR) en directorios con 100/200/400 mil archivos, ntfsplus es más rápido en un 12~14%. En cuanto a la velocidad de montaje, ntfsplus es más rápido de 5 a 6 veces. Este alto rendimiento se logra en ntfsplus gracias a la aplicación de operaciones asíncronas iomap, asignación diferida de bloques, optimización en la asignación de nuevos clústeres, optimización en la fusión de fragmentos, carga de mapas de bits de clústeres en segundo plano, pre-carga de bloques de inode e información de directorios.
Se ha preparado un conjunto de utilidades ntfsprogs-plus específicamente para ntfsplus, que funcionan en el espacio de usuario y están basadas en las utilidades ntfsprogs del proyecto ntfs-3g. Se han transferido utilidades como ntfsclone, ntfscluster y ntfsinfo desde ntfsprogs. Además, el proyecto ha desarrollado una nueva utilidad ntfsck para la verificación y recuperación de particiones dañadas con NTFS.
Fuente: opennet.ru
