Red Hat развівае новую ФС NVFS, эфектыўную для NVM-памяці

Мікулаш Патачка (Mikuláš Patočka), адзін з распрацоўшчыкаў LVM і аўтар шэрагу вынаходстваў, звязаных з аптымізацыяй працы сістэм захоўвання, які працуе ў кампаніі Red Hat, прадставіў у спісе рассылання распрацоўнікаў ядра Linux новую файлавую сістэму NVFS, накіраваную на стварэнне кампактнай і хуткай ФС для чыпаў энерганезалежнай памяці (NVM, non-volatile memory, напрыклад NVDIMM), якія спалучаюць прадукцыйнасць АЗП з магчымасцю сталага захоўвання змесціва.

Пры распрацоўцы NVFS улічаны досвед ФС NEW, у 2017 годзе створанай спецыяльна для NVM-памяці, але не прынятай у склад ядра Linux і абмежаванай падтрымкай ядраў Linux з 4.13 па 5.1.
Прапанаваная ФС NVFS значна прасцей NOVA (4972 радкоў кода супраць 21459), падае ўтыліту fsck, валодае больш высокай прадукцыйнасцю, падтрымлівае пашыраныя атрыбуты (xattrs), пазнакі бяспекі, ACL і квоты, але не падтрымлівае снапшоты. Архітэктура NVFS блізкая да
ФС Ext4 і добра ўкладваецца ў мадэль файлавых сістэм на аснове падсістэмы VFS, што дазваляе звесці да мінімум лік праслоек і абыйсціся модулем, не патрабавальным занясенні патчаў у ядро.

NVFS выкарыстоўвае інтэрфейс ядра DAX для прамога доступу да прылад сталай памяці ў абыход старонкавага кэша. Для аптымізацыі працы з памяццю NVM, у якой ужываецца байтавае адрасаванне, змесціва назапашвальніка адлюстроўваецца ў лінейную адрасную прастору ядра без ужывання традыцыйнага ўзроўня блокавых прылад і прамежкавага кэша. Для захоўвання змесціва каталогаў выкарыстоўваецца базіснае дрэва (radix tree), у якім кожнае імя файла прахэшавана і значэнне хэша выкарыстоўваецца пры пошуку ў дрэве.

Цэласнасць дадзеных забяспечваецца пры дапамозе механізмуsoft updates» (як у UFS з FreeBSD і ў FFS з OpenBSD) без ужывання часопісавання. Для выключэння пашкоджання файлаў у NVFS аперацыі змены дадзеных групуюцца такім чынам, што крах не можа прывесці да страты блокаў ці inode, а цэласнасць структур аднаўляецца пры дапамозе ўтыліты fsck. Утыліта fsck працуе ў шматструменным рэжыме і забяспечвае прадукцыйнасць на ўзроўні перабору 1.6 млн inode у секунду.

В тэстах прадукцыйнасці NVFS выканала аперацыю капіявання дрэва з зыходнымі тэкстамі ядра Linux на NVM-памяці прыкладна на 10% хутчэй NOVA, на 30% хутчэй ext4 і на 37% хутчэй XFS. У тэсце на пошук дадзеных ФС NVFS апынулася хутчэй NOVA на 3%, а ext4 і XFS на 15% (але пры актыўным дыскавым кэшы NOVA апынулася павольней на 15%).
У тэсце на мільён аперацый з каталогамі NVFS апярэдзіла NOVA на 40%, ext4 на 22%, а XFS на 46%. Пры сімуляцыі актыўнасці СКБД файлавая сістэма NVFS апярэдзіла NOVA на 20%, ext4 у 18 разоў і XFS у 5 разоў. У тэсце fs_mark паказчыкі NVFS і NOVA апынуліся прыкладна на адным узроўні, а ext4 і XFS адсталі прыкладна ў 3 разы.

Адставанне традыцыйных ФС на NVM-памяці абумоўленае тым, што яны не разлічаны на байтавае адрасаванне, якая ўжываецца ў энерганезалежнай памяці, якая выглядае як звычайнае АЗП. Чытанне са звычайных назапашвальнікаў забяспечвае атамарнасць аперацыі на ўзроўні чытання/запісы сектара, у той час як NVM-памяць забяспечвае доступ на ўзроўні асобных машынных слоў. Акрамя таго, традыцыйныя ФС спрабуюць зменшыць інтэнсіўнасць звароту да носьбіта, які разглядаецца як загадзя больш павольны, чым аператыўная памяць, а таксама спрабуюць групаваць аперацыі для забеспячэння паслядоўнага чытання пры ўжыванні цвёрдых дыскаў, апрацоўваць чэргі запытаў, дужацца з фрагментацыяй і падзяляць прыярытэты выканання розных аперацый. . Для NVM-памяці падобныя ўскладненні залішнія, бо хуткасць звароту да дадзеных супастаўная з АЗП, а парадак доступу не мае значэння.

Крыніца: opennet.ru

Дадаць каментар