Red Hat utvecklar ett nytt NVFS-filsystem, effektivt för NVM-minne

Mikuláš Patočka, en av utvecklarna av LVM och författare till ett antal uppfinningar, relaterade till optimering av lagringssystems prestanda, som arbetar på Red Hat, år i utvecklarlistan för Linux-kärnan en ny filsystem NVFS, som syftar till att skapa ett kompakt och snabbt filsystem för chip av energibesparande minne (NVM, non-volatile memory, till exempel NVDIMM), som kombinerar RAM-prestanda med möjligheten för permanent lagring av innehållet.

Vid utvecklingen av NVFS togs erfarenheten från filsystemet NOVA, som skapades 2017 specifikt för NVM-minne, men som inte antogs i Linux-kärnan och begränsad stödet i Linux-kärnor från 4.13 till 5.1.
Det föreslagna NVFS-filsystemet är betydligt enklare än NOVA (4972 rader kod mot 21459), det erbjuder ett fsck-verktyg, har högre prestanda, stöder utökade attribut (xattrs), säkerhetsmärken, ACL och kvoter, men stöder inte snapshots. Arkitekturen NVFS är nära besläktad med
filsystemet Ext4 och passar bra in i modellen för filsystem baserade på VFS-subsystemet, vilket minimerar antalet lager och gör det möjligt att klara sig med en modul som inte kräver patchning av kärnan.

NVFS använder kärnans gränssnitt DAX för direkt åtkomst till permanenta minnesenheter utan sidcache. För att optimera arbetet med NVM-minnet, där byteadressering används, visas innehållet på enheten i kärnans linjära adressutrymme utan att använda den traditionella blockenhetens nivå och mellanliggande cache. För lagring av kataloginnehåll används ett radixträd, där varje filnamn hash-kodats och hash-värdet används vid sökning i trädet.

Dataintegriteten säkerställs genom mekanismen "soft updates" (som i UFS från FreeBSD och i FFS från OpenBSD) utan att använda journaling. För att utesluta filskador i NVFS grupperas dataändringsoperationer på ett sådant sätt att ett krasch inte kan leda till förlust av block eller inode, och strukturerna återställs vid hjälp av fsck-verktyget. Fsck-verktyget arbetar i flertrådsläge och ger en prestanda på upp till 1,6 miljoner inode per sekund.

I i prestandatester. NVFS har genomfört en kopieringsoperation av träd med källtexter från Linux-kärnan på NVM-minne cirka 10% snabbare än NOVA, 30% snabbare än ext4 och 37% snabbare än XFS. I data söktestet visade filsystemet NVFS sig vara snabbare än NOVA med 3%, och än ext4 och XFS med 15% (men med aktiv diskcache var NOVA 15% långsammare).
I testet med en miljon katalogoperationer överträffade NVFS NOVA med 40%, ext4 med 22% och XFS med 46%. Vid simulering av databashanterarens aktivitet överträffade NVFS NOVA med 20%, ext4 18 gånger och XFS 5 gånger. I fs_mark-testet var NVFS och NOVA på ungefär samma nivå, medan ext4 och XFS låg tre gånger efter.

Fördröjningen hos traditionella filsystem på NVM-minne beror på att de inte är utformade för byteadresssering, som används i icke-flyktigt minne, vilket uppträder som vanligt RAM. Läsning från vanliga enheter säkerställer atomisk operation på nivån av att läsa/skriva sektorer, medan NVM-minnet ger åtkomst på nivån av enskilda maskinord. Dessutom försöker traditionella filsystem minska intensiteten av åtkomsten till lagringsmedia, som betraktas som avsevärt långsammare än RAM, och försöker också gruppera operationer för att säkerställa sekventiell läsning vid användning av hårddiskar, samt hantera förfrågningsköer, bekämpa fragmentering och dela upp prioriteten för olika operationer. För NVM-minne är sådana kompliceringar onödiga, eftersom hastigheten av dataåtkomst är jämförbar med RAM, och åtkomstordningen spelar ingen roll.

Källa: opennet.ru

Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster