В състава на ядрото 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 ТБ дял 0.38 срещу 2.03 секунди).

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

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

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