В ядрото на Linux 7.1 е приет нов драйвер за NTFS

Линус Торвальдс е включил в ядрото на Linux 7.1, чиято версия се очаква в средата на юни, набор от пачове с нова реализация на файловата система NTFS, развивана под името ntfsplus. Новият драйвер е включен под името „ntfs“, което по-рано се използваше за отдалечаването на стария драйвер от ядрото, работещ в режим само на четене. Драйверът ntfsplus е разработен от Намджэ Чон (Namjae Jeon), участник в проекта Samba, който поддържа драйвера EXFAT и сървъра KSMBD в ядрото на Linux.

Разработката на ntfsplus започна през 2022 година след публикуването на доклад за проблемите с поддръжката на драйвера NTFS3, разработен от компанията Paragon Software и предоставян от ядрото 5.15 вместо стария изоставен драйвер NTFS. От ноември 2021 година до юни 2022 година разработчиците на ntfs3 спряха да комуникират и да разглеждат изпращаните пачове, но след това възобновиха поддръжката и публикуваха набор от корекции, който бе включен в ядрото 5.19. Оттогава измененията за новите версии на ядрото се издават редовно и, наред с другото, съществува значителен набор от подобрения и корекции, който бе приет в ядрото 7.0.

Като мотивация за внедряване в ядрото на новия драйвер ntfsplus се посочва, че по-качественият и поддържан NTFS-драйвер ще подобри съвместимостта на Linux системите с Windows устройства и ще улесни работата на потребителите. Беше заявено, че настоящият драйвер NTFS3 има нерешени проблеми, поради които много потребители и дистрибуции продължават да използват стария драйвер ntfs-3g, работещ в потребителското пространство. При преминаване на тестовия пакет xfstests, драйверът ntfsplus успешно преминава 326 теста (41.4%) от 787, а ntfs3 — 273 (34.6%).

Драйверът ntfsplus е основан на кодовата база на отдалеченото от ядрото класическо устройство ntfs, което е преработено, разширено с възможността за запис на данни и съществено подобрено за поддръжка на съвременни функции, като например използването на странични страници в паметта (folios) вместо структура buffer_head. В новия драйвер е реализирано отложено разпределение на блоковете, което е позволило постигане на висока производителност на операциите по запис и намаляване на фрагментацията. За буферизираните операции по запис/четене, директен вход/изход, мапинг на екстенти и операции по страничен запис/четене е използвана библиотеката iomap.

В сравнение с ntfs3, новият драйвер поддържа функции като iomap, отложено разпределение на блокове (delayed allocation) и мапинг на идентификационни номера на потребителите при монтиране (idmap). След приемането му в основния състав на ядрото, в ntfsplus планират разработването на пълно журнализиране (ntfs3 поддържа създаването на replay журнал).

В ntfsplus също така успяха да повишат производителността, благодарение на използването на асинхронни iomap операции, отложено разпределение на блокове, оптимизация на разпределението на нови клъстери, оптимизация на сливането на фрагменти, зареждане на битова карта на клъстерите във фонов режим и предварително зареждане на inode блокове и информация за директории. В тестовете, проведени през ноември миналата година, драйверът ntfsplus показа 3-5% по-бързо записване от ntfs3 в еднонишков режим и с 35-110% при използване на 4 нишки. Скоростта на четене на ntfsplus и ntfs3 е приблизително на едно ниво. При теста на изброяване на файлове (ls -lR) в директории с 100/200/400 хиляди файла, ntfsplus е по-бърз с 12-14%. По скорост на монтиране ntfsplus е по-бърз 5-6 пъти (за 1 TB раздел, 0.38 срещу 2.03 секунди).

На базата на утилитите ntfsprogs от проекта ntfs-3g, за ntfsplus е подготвен собствен набор от утилити ntfsprogs-plus, работещи в потребителското пространство и включващи приложенията ntfsclone, ntfscluster и ntfsinfo. Проектът също така разработи нова утилита ntfsck за проверка и възстановяване на повредени NTFS дялове.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster