• DAXFS – ett nytt Linux-filsystem som läser direkt ur minnet

    DAXFS är ett nytt experimentellt filsystem för Linux som vill göra något ovanligt: låta systemet läsa filer direkt ur delat fysiskt minne, utan omvägen via den traditionella lagringsstacken. Genom att bygga på Direct Access kan samma skrivskyddade data delas mellan flera kernelinstanser och till och med ligga kvar i minne som kommer från GPU:er, FPGA:er eller CXL-enheter. Idén kan minska både latens och RAM-förbrukning i allt från containermiljöer till framtida minnespooler och acceleratorbaserade system.

    Linuxvärlden har fått ett nytt, ovanligt tillskott. Kernelutvecklaren Cong Wang på företaget Multikernel har presenterat ett experimentellt filsystem med namnet DAXFS – ett filsystem som helt hoppar över den traditionella vägen via hårddiskar, block-I/O och sidcache, och istället läser data direkt ur fysiskt minne.

    Det kan låta som en detalj för specialister, men DAXFS pekar mot hur framtidens system kan dela data snabbare, snålare och smartare, särskilt i miljöer med containrar, acceleratorer och delat minne.

    Vad är DAX – och varför är det intressant?

    Namnet DAXFS kommer från DAX (Direct Access), en funktion i Linuxkärnan som gör det möjligt för program att komma åt lagringsmedia som om det vore vanligt RAM-minne. Istället för att läsa data i block, kopiera dem till sidcache och sedan vidare till programmet, kan DAX läsa direkt från minnesadressen.

    Resultatet blir lägre fördröjning, färre minneskopior och lägre RAM-förbrukning. DAX används redan i dag tillsammans med så kallat persistent memory, men DAXFS tar idén ännu längre.

    Hur skiljer sig DAXFS från RAMFS och TMPFS?

    Linux har länge haft minnesbaserade filsystem som RAMFS och TMPFS. De är snabba, men de använder fortfarande sidcache och allokerar minne separat för varje instans.

    DAXFS fungerar annorlunda. Det mappar sammanhängande fysiskt minne direkt till filsystemet, filinnehåll läses via direkta minnesläsningar och samma data kan delas mellan flera system utan att kopieras.

    Man kan likna det vid att flera datorer läser ur samma uppslagna bok, istället för att var och en gör sin egen kopia av sidorna.

    Delat minne från GPU:er, FPGA:er och CXL

    En av de mest intressanta egenskaperna är att DAXFS kan använda minne som inte nödvändigtvis sitter på CPU:n.

    Via Linux-gränssnittet dma-buf kan filsystemet exponera GPU-minne, FPGA-minne och CXL-anslutet minne. Allt detta kan presenteras som vanliga filer, utan att data kopieras.

    Det möjliggör zero-copy-åtkomst till stora, statiska dataset, effektiv delning mellan CPU och acceleratorer samt minskad belastning på systemets vanliga RAM. Åtkomsten är medvetet skrivskyddad, vilket förenklar designen och ökar säkerheten.

    Medvetet minimalistiskt

    DAXFS är inte tänkt att ersätta traditionella filsystem som ext4 eller XFS. I stället är det byggt för ett smalt användningsområde och är därför avsiktligt enkelt.

    Filsystemet är endast läsbart, använder ett självständigt image-format, saknar dynamisk minnesallokering, har ingen avancerad metadatahantering och innehåller ingen komplex enhetshantering.

    Denna enkelhet gör filsystemet lättare att förstå, granska och experimentera med.

    Vad kan man använda DAXFS till?

    DAXFS riktar sig till specifika men växande användningsområden.

    Inom container- och molnmiljöer kan samma container- eller Docker-basimage delas mellan flera Linuxkärnor. Genom att kombinera DAXFS med OverlayFS kan man få skrivbara containrar med minimal RAM-åtgång.

    I CXL-baserade system kan delat minne användas istället för långsamma nätverksöverföringar, där data läses direkt från en gemensam minnespool.

    För acceleratorer möjliggörs zero-copy-åtkomst till statiska AI-modeller och effektiv dataåtkomst i HPC- och AI-system.

    Experimentellt – men lovande

    Koden finns öppet tillgänglig på GitHub och utvecklaren betonar att DAXFS är ett experimentellt förslag. Om filsystemet någon gång inkluderas i Linuxkärnan avgörs av diskussioner och granskning i utvecklargemenskapen.

    Oavsett framtiden visar DAXFS hur Linux fortsätter att utforska nya sätt att hantera minne, lagring och delning av data i takt med modern hårdvara.

    Förklarade begrepp

    DAX (Direct Access)
    En Linux-teknik som gör det möjligt att läsa data direkt från minne utan att gå via sidcache eller block-I/O. Det minskar latens och minnesanvändning.

    Sidcache (Page Cache)
    En del av RAM-minnet där Linux lagrar nyligen lästa filer för att snabba upp framtida åtkomst. Effektivt, men kan leda till att samma data lagras flera gånger i minnet.

    Block-I/O
    Det traditionella sättet att läsa och skriva data i fasta block från lagringsenheter som hårddiskar och SSD:er.

    RAMFS och TMPFS
    Minnesbaserade filsystem i Linux. TMPFS kan begränsas i storlek och använda swap, medan RAMFS växer obegränsat och kan orsaka minnesbrist.

    dma-buf
    Ett Linux-API som gör det möjligt att dela minnesbuffertar mellan olika enheter, till exempel mellan GPU och CPU, utan kopiering.

    GPU (Graphics Processing Unit)
    En processor specialiserad på parallella beräkningar, ofta använd för grafik, AI och maskininlärning.

    FPGA (Field-Programmable Gate Array)
    En programmerbar hårdvarukomponent som kan anpassas för specifika beräkningar efter tillverkning.

    CXL (Compute Express Link)
    En modern anslutningsteknik som gör det möjligt att dela minne mellan CPU:er och externa enheter med låg latens.

    OverlayFS
    Ett Linux-filsystem som kombinerar ett skrivskyddat lager med ett skrivbart, ofta använt i containerteknik.

    Zero-copy
    En teknik där data inte kopieras mellan olika minnesområden, vilket sparar både tid och minne.

    FAKTA: DAXFS
    Vad är det? Ett experimentellt, läsbart Linux-filsystem byggt på Direct Access (DAX).
    Nyckelidé Filer mappas direkt mot sammanhängande fysiskt minne, vilket ger direkta minnesläsningar.
    Varför? Mindre RAM-överhead när många system/containrar annars hade duplicerat samma skrivskyddade data i minnet.
    Vad skiljer det från tmpfs? Tmpfs/ramfs använder sidcache och allokerar per instans; DAXFS pekar mot delat fysiskt minne.
    Stöd för acceleratorminne Kan använda device-backat minne (t.ex. GPU/FPGA/CXL) via dma-buf för skrivskyddad åtkomst.
    Designval Minimalistiskt: read-only image, ingen runtime-allokering, enkel metadata.
    Typiska use cases Delad container-basimage mellan kernelinstanser, DAXFS + OverlayFS för containrar, CXL-minnespoolning, zero-copy statiska data.

Etikett: zero-copy

  • DAXFS – ett nytt Linux-filsystem som läser direkt ur minnet

    DAXFS är ett nytt experimentellt filsystem för Linux som vill göra något ovanligt: låta systemet läsa filer direkt ur delat fysiskt minne, utan omvägen via den traditionella lagringsstacken. Genom att bygga på Direct Access kan samma skrivskyddade data delas mellan flera kernelinstanser och till och med ligga kvar i minne som kommer från GPU:er, FPGA:er…