Mikuláš Patočka, unul dintre dezvoltatorii LVM și autor al mai multor , legate de optimizarea funcționării sistemelor de stocare, care lucrează la compania Red Hat, a anunțat pe lista de corespondență a dezvoltatorilor nucleului Linux un nou sistem de fișiere , destinat creării unui FS compact și rapid pentru cipurile de memorie nevolatilă (NVM, non-volatile memory, de exemplu NVDIMM), care combină performanța RAM-ului cu capacitatea de stocare permanentă a conținutului.
În dezvoltarea NVFS s-a luat în considerare experiența FS , creat în 2017 special pentru memoriile NVM, dar care nu a fost acceptat în nucleul Linux și suportul nucleelor Linux de la 4.13 până la 5.1.
Sistemul de fișiere propus NVFS este semnificativ mai simplu decât NOVA (4972 linii de cod față de 21459), oferă un utilitar fsck, are o performanță mai bună, suportă atribute extinse (xattrs), etichete de securitate, ACL și cote, dar nu suportă instantanee. NVFS este apropiată de
FS Ext4 și se integrează bine în modelul sistemelor de fișiere bazate pe subsistemul VFS, ceea ce permite minimizarea numărului de straturi și utilizarea unui modul care nu necesită patch-uri în nucleu.
NVFS utilizează interfața nucleului pentru acces direct la dispozitivele de memorie permanentă, ocolind cache-ul paginilor. Pentru optimizarea lucrului cu memoria NVM, în care se utilizează adresarea pe octeți, conținutul stocării este mapat în spațiul de adresă liniar al nucleului fără a utiliza nivelul tradițional al dispozitivelor bloc și cache-ul intermediar. Pentru stocarea conținutului directoarelor se folosește (radix tree), în care fiecare nume de fișier este hash-uit, iar valoarea hash-ului este utilizată la căutarea în arbore.
Integritatea datelor este asigurată prin intermediul mecanismului „” (așa cum este în UFS din FreeBSD și în FFS din OpenBSD) fără a utiliza jurnalizare. Pentru a exclude deteriorarea fișierelor în NVFS, operațiile de modificare a datelor sunt grupate astfel încât o cădere să nu poată duce la pierderea blocurilor sau inode-urilor, iar integritatea structurilor este restabilită prin intermediul utilitarului fsck. Utilitarul fsck funcționează în mod multiprocessor și oferă o performanță de 1,6 milioane inode pe secundă.
În NVFS a efectuat operațiunea de copiere a arborelui cu textele de bază Linux în memorie NVM cu aproximativ 10% mai repede decât NOVA, cu 30% mai repede decât ext4 și cu 37% mai repede decât XFS. În testul de căutare a datelor, FS NVFS s-a dovedit a fi mai rapid decât NOVA cu 3%, iar ext4 și XFS cu 15% (dar, cu un cache pe disc activ, NOVA a fost mai lentă cu 15%).
În testul a un milion de operațiuni cu directoare, NVFS a depășit NOVA cu 40%, ext4 cu 22% și XFS cu 46%. În simularea activității SGBD, sistemul de fișiere NVFS a depășit NOVA cu 20%, ext4 de 18 ori și XFS de 5 ori. În testul fs_mark, rezultatele NVFS și NOVA au fost aproximativ la același nivel, iar ext4 și XFS au rămas în urmă de aproximativ 3 ori.
Întârzierea sistemelor de fișiere tradiționale pe memoria NVM este cauzată de faptul că acestea nu sunt concepute pentru adresarea pe byte, utilizată în memoriile non-volatile, care arată ca o memorie RAM obișnuită. Citirea de pe unități obișnuite asigură atomicitatea operațiunii la nivelul citirii/scrierii sectorului, în timp ce memoria NVM permite accesul la nivelul cuvintelor mașinii individuale. În plus, sistemele de fișiere tradiționale încearcă să reducă intensitatea accesului la suport, care este considerat a fi în mod evident mai lent decât memoria RAM, și de asemenea încearcă să grupeze operațiunile pentru a asigura citirea secvențială atunci când se utilizează hard disk-uri, gestionează cozile de cereri, combate fragmentarea și separă prioritățile execuției diferitelor operațiuni. Pentru memoria NVM, astfel de complicații sunt inutile, deoarece viteza de acces la date este comparabilă cu RAM-ul, iar ordinea accesului nu contează.
Sursa: opennet.ro
