Red Hat udvikler et nyt filsystem NVFS, effektivt til NVM-hukommelse

Mikuláš Patočka, en af udviklerne af LVM og forfatter til en række opfindelser, der er relateret til optimering af lagersystemers funktionalitet, arbejder hos Red Hat, den i mailinglisten for Linux-kerneludviklere præsenterede han et nyt filsystem NVFS, der sigter mod at skabe et kompakt og hurtigt filsystem til chips med ikke-flygtig hukommelse (NVM, non-volatile memory, som f.eks. NVDIMM), der kombinerer RAM-ydeevne med muligheden for permanent datalagring.

Ved udviklingen af NVFS er erfaringerne fra filsystemet NOVA, der blev skabt i 2017 specielt til NVM-hukommelse, men ikke blev accepteret i Linux-kernen og begrænset understøttelse af kerner fra Linux 4.13 til 5.1.
Det foreslåede filsystem NVFS er betydeligt enklere end NOVA (4972 kodelinjer mod 21459), tilbyder et fsck-værktøj, har højere ydeevne, understøtter udvidede attributter (xattrs), sikkerhedsmarkører, ACL og kvoter, men understøtter ikke snapshots. Arkitekturen NVFS ligner
filsystemet Ext4 og passer godt ind i modellen for filsystemer baseret på VFS-subsystemet, hvilket minimerer antallet af lag og gør det muligt at fungere med et modul, der ikke kræver patching af kernen.

NVFS bruger kernegrænsefladen DAX til direkte adgang til enheder med ikke-flygtig hukommelse uden at gå gennem sidecache. For at optimere arbejdet med NVM-hukommelse, hvor byteadressering anvendes, afspejles indholdet af lageret i kerne-adresseområdet uden brug af det traditionelle blokenhedsniveau og mellemliggende cache. For at lagre katalogindholdet anvendes et radix-træ, hvor hvert filnavn hashes, og hash-værdien bruges til at søge i træet.

Dataintegriteten sikres ved hjælp af mekanismen "soft updates" (som i UFS fra FreeBSD og i FFS fra OpenBSD) uden brug af journaling. For at undgå filskader grupperes dataændringsoperationer således, at et systemnedbrud ikke kan føre til tab af blokke eller inode, og integriteten af strukturer gendannes ved hjælp af værktøjet fsck. Værktøjet fsck kører i multithreaded tilstand og leverer en ydeevne på 1,6 millioner inode pr. sekund under ydeevnetests.

I ydelsestests NVFS har udført en kopieringsoperation af samtidig træ med kernen i Linux-tekster i NVM-hukommelsen omkring 10% hurtigere end NOVA, 30% hurtigere end ext4 og 37% hurtigere end XFS. I testen for datalæsning var FS NVFS 3% hurtigere end NOVA, og 15% hurtigere end ext4 og XFS (men under aktiv diskbuffer var NOVA 15% langsommere).
I testen med en million operationer med kataloger overgik NVFS NOVA med 40%, ext4 med 22% og XFS med 46%. Under simuleringen af DB-aktivitet overgik filsystemet NVFS NOVA med 20%, ext4 med 18 gange og XFS med 5 gange. I fs_mark testen var resultaterne for NVFS og NOVA på omtrent samme niveau, mens ext4 og XFS lå omkring 3 gange bagud.

Forsinkelsen af traditionelle filsystemer i NVM-hukommelsen skyldes, at de ikke er designet til byteadressering, som anvendes i ikke-flygtig hukommelse, der opfører sig som almindelig RAM. Læsning fra almindelige lagringsenheder sikrer atomicitet i operationer på niveauet for læsning/skrivning af sektorer, mens NVM-hukommelse giver adgang på niveauet for individuelle maskinord. Derudover forsøger traditionelle filsystemer at reducere intensiteten af adgangen til mediet, som betragtes som generelt langsommere end RAM, samt prøver at gruppere operationer for at muliggøre sekventiel læsning ved anvendelse af harddiske, behandle anmodningskøer, bekæmpe fragmentering og opdele prioriteterne for forskellige operationer. For NVM-hukommelse er sådanne kompleksiteter unødvendige, da hastigheden for dataadgang er sammenlignelig med RAM, og rækkefølgen af adgang er ligegyldig.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster