Намджэ Чон (Namjae Jeon), участник проекта Samba, предлагащият драйвер EXFAT и сървър KSMBD в ядрото на Linux, предложи нова реализация на файловата система NTFS — ntfsplus, която да бъде включена в ядрото. Очаква се по-качественият и поддържан NTFS-драйвер да подобри съвместимостта на Linux системите с Windows устройства и да улесни работата на потребителите.
В текущия си вид поддръжката на NTFS в Linux е ограничена от стария NTFS-драйвер, който беше премахнат от ядрото на Linux и поддържаше единствено четене, както и от настоящия драйвер NTFS3, който има много проблеми, оставащи нерешени поради лошото поддържане. Поради подобни проблеми много потребители и дистрибуции продължават да използват стария драйвер ntfs-3g, който работи в пространството на потребителя.
Като основа за драйвера ntfsplus е използвана кодовата база на премахнатия от ядрото класически драйвер ntfs, който беше преработен, разширен с възможности за запис на данни и значително подобрен, за да поддържа съвременни функции, като използването на странични фолианти (folios) вместо структурата buffer_head. В новия драйвер е реализирано отложено разпределение на блокове, което позволява на висока производителност операции за запис и намаляване на фрагментацията. За буферирани операции по запис/четене, директен вход/изход, мапинг на екстенти и операции по странично записване/четене е използвана библиотеката iomap.
В отличие от съществуващия драйвер ntfs3, разработен от компанията Paragon Software, драйверът ntfsplus демонстрира по-висока производителност и поддържа функции като iomap, отложено разпределение на блокове и мапинг на идентификатори на потребители при монтиране (idmap). След приемането в основния състав на ядрото в ntfsplus планират да реализират пълно журнализиране (в ntfs3 се създава само replay журнал, който в тестовете работи неправилно). Новият драйвер успешно преминава 287 теста от набора xfstests, както и реализира функции, необходими за изпълнението на тестовете за производителност Bonnie++ (драйверът ntfs3 премина 218 теста xfstests и предизвика проблеми при стартиране на Bonnie++).
При тестовете на iozone, драйверът ntfsplus се оказа с 3-5% по-бърз от ntfs3 при запис в еднопоточен режим и с 35-110% при използване на 4 потока. Скоростта на четене на ntfsplus и ntfs3 е приблизително на едно ниво. В теста за извеждане на списък с файлове (ls -lR) в директории с 100/200/400 хиляди файла, ntfsplus е по-бърз с 12~14%. По отношение на скоростта на монтиране, ntfsplus е по-бърз от 5 до 6 пъти. Високата производителност на ntfsplus се постига чрез използването на асинхронни операции iomap, отложено разпределение на блокове, оптимизация на разпределението на нови клъстери, оптимизация на обединяването на фрагменти, зареждане на битовата карта на клъстерите във фонов режим, предварително зареждане на inode блокове и информация за директории.
Отделно за ntfsplus е подготвен комплект инструменти ntfsprogs-plus, работещи в пространството на потребителя и основани на инструментите ntfsprogs от проекта ntfs-3g. Инструментите ntfsclone, ntfscluster и ntfsinfo са пренесени от ntfsprogs. Проектът също така е разработил нов инструмент ntfsck за проверка и възстановяване на повредени дялове с NTFS.
Източник: opennet.ru
