Red Hat разработва нова файловa система NVFS, оптимизирана за NVM памет

Микулаш Паточка (Mikuláš Patočka), един от разработчиците на LVM и автор на редица изобретения, свързани с оптимизацията на работата на системи за съхранение, работещ в компанията Red Hat, представи в списъка на разработчиците на ядрото на Linux нова файловата система NVFS, насочена към създаването на компактна и бърза ФС за чипове с ненарушима памет (NVM, non-volatile memory, напр. NVDIMM), съчетаваща производителността на ОЗУ с възможността за постоянно съхранение на съдържанието.

При разработването на NVFS е взет предвид опитът на ФС NOVA, създадена през 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-паметта е резултат от това, че те не са проектирани за байтова адресация, използвана в енергонезависимата памет, която изглежда като обикновена RAM. Четенето от обикновени носители осигурява атомарност на операцията на ниво четене/запис на сектор, докато NVM-паметта осигурява достъп на ниво отделни машинни думи. Освен това традиционните файлови системи се стремят да намалят интензивността на достъпа до носителя, който се разглежда като по-бавен от оперативната памет, и се опитват да групират операции за осигуряване на последователно четене при работа с твърди дискове, да обработват опашки от запитвания, да се борят с фрагментацията и да разделят приоритетите на различни операции. За NVM-паметта подобни усложнения са излишни, тъй като скоростта на достъп до данни е сравнима с тази на RAM, а редът на достъпа няма значение.

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

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