• Bcachefs lämnar experimentstadiet – men bör fortfarande användas med eftertanke

    Bcachefs har tagit ett viktigt steg från experimentellt projekt till seriöst alternativ för Linuxlagring. Projektledaren Kent Overstreet meddelar att filsystemet inte längre betraktas som experimentellt, samtidigt som den nya versionen 1.38.6 bjuder på stora prestandaförbättringar, mognare stöd för erasure coding och fortsatt utveckling med Rust. Men trots framstegen bör Bcachefs fortfarande användas med eftertanke när det gäller viktig eller affärskritisk data.

    Filsystem är en av de där tekniska delarna av ett operativsystem som de flesta aldrig tänker på – förrän något går fel. Det är filsystemet som håller reda på var dina filer finns, hur de sparas, hur de skyddas och hur de kan återställas om något händer. Därför är nyheten att Bcachefs inte längre betraktas som experimentellt viktig för Linuxvärlden.

    Bcachefs är ett modernt filsystem för Linux. Det är byggt för att klara sådant som kryptering, komprimering, ögonblicksbilder, datakontroll och avancerad lagring över flera diskar. På många sätt är det tänkt att konkurrera med mer etablerade filsystem som Btrfs och ZFS.

    Projektets huvudutvecklare Kent Overstreet meddelar nu att Bcachefs har passerat en viktig gräns. Enligt honom är filsystemet inte längre experimentellt. Märkningen har redan tagits bort från projektets webbplats, och beskedet kommer i samband med version 1.38.6.

    Det betyder dock inte att alla omedelbart bör flytta sina viktigaste servrar till Bcachefs. Ett filsystem kan vara tekniskt moget utan att det för den skull är självklart i varje produktionsmiljö. När det handlar om lagring av viktig information måste förtroende byggas under lång tid, i många olika typer av datorer, belastningar och felsituationer.

    Vad är Bcachefs?

    Bcachefs började som en vidareutveckling av teknik bakom Bcache, som ursprungligen användes för att kombinera snabba SSD-diskar med långsammare hårddiskar. Med tiden växte det till ett helt eget filsystem.

    Ett modernt filsystem behöver göra mer än att bara spara filer. Det ska helst kunna upptäcka fel, skydda data mot skador, hantera flera diskar, skapa ögonblicksbilder och ibland även kryptera innehållet. Det är just den typen av funktioner Bcachefs försöker samla i ett och samma system.

    Det gör att Bcachefs ofta nämns i samma sammanhang som Btrfs och ZFS. Btrfs finns sedan länge i Linuxkärnan och används bland annat i flera Linuxdistributioner. ZFS är mycket uppskattat för dataintegritet och avancerad lagring, men har en mer komplicerad relation till Linux på grund av licensfrågor.

    Bcachefs vill erbjuda många av samma fördelar, men med en design som passar väl in i Linuxmiljön.

    Inte längre experimentellt

    Kent Overstreet skriver att han tog bort märkningen som experimentellt efter att buggrapporterna blivit färre, mindre allvarliga och lättare att hantera. Det är ett praktiskt sätt att bedöma mognad: inte bara genom funktionslistor, utan genom hur systemet beter sig i verklig användning.

    När utvecklare säger att ett filsystem inte längre är experimentellt betyder det i regel att de anser att det har nått en nivå där det kan användas mer seriöst. Men det är inte samma sak som att säga att det är riskfritt.

    Skillnaden är viktig. Ett experimentellt filsystem hör hemma hos utvecklare, testare och entusiaster som accepterar att saker kan gå fel. Ett icke-experimentellt filsystem kan vara redo för bredare användning, men den som lagrar viktig data måste fortfarande ha säkerhetskopior och förstå riskerna.

    Reconcile – bakgrundsarbetaren som håller ordning

    En av de viktiga nyheterna i den senaste utvecklingen är något som kallas Reconcile.

    Man kan se Reconcile som en sorts intern arbetsledare för filsystemet. Den håller reda på var data finns, var den borde finnas och vad som behöver ändras när inställningar eller diskar förändras.

    Det kan till exempel handla om att data ska flyttas från en disk till en annan, att fler kopior ska skapas, eller att lagringen ska ändras till en mer avancerad modell med så kallad erasure coding. Poängen är att Bcachefs i större utsträckning kan göra sådant arbete i bakgrunden, utan att användaren själv behöver flytta filer manuellt.

    För den som använder flera diskar är detta särskilt intressant. Ett filsystem som själv kan omorganisera data på ett kontrollerat sätt blir mer flexibelt och lättare att administrera.

    Erasure coding – mer effektivt skydd av data

    Även erasure coding räknas nu som en mogenare del av Bcachefs.

    Erasure coding är en teknik för att skydda data mot diskfel utan att behöva lagra fullständiga kopior av allt. I stället delas information upp och kompletteras med extra kontrollinformation. Om en disk går sönder kan datan återskapas med hjälp av den information som finns kvar.

    Tekniken påminner om det som används i RAID5 och RAID6. Bcachefs använder Reed-Solomon-kodning, en välkänd metod inom datalagring och felkorrigering.

    Ett klassiskt problem med RAID5 och RAID6 är det så kallade write hole-problemet. Det kan uppstå om skrivningar avbryts vid fel tillfälle, till exempel vid strömavbrott, så att data och paritetsinformation hamnar i osynk.

    Bcachefs försöker undvika detta genom att inte skriva om befintliga stripes direkt. Nya skrivningar sparas först på ett säkrare sätt och omvandlas sedan till stripes i bakgrunden. Det är en viktig designskillnad som gör att tekniken kan bli mer robust.

    Snabbare prestanda i version 1.38.6

    Version 1.38.6 handlar inte bara om stabilitet. Den innehåller också många prestandaförbättringar.

    Kent Overstreet beskriver hur arbetet med mätningar och profilering ledde till över 200 ändringar i centrala delar av filsystemet. Bland annat har kod för btree-strukturer, journalhantering och transaktioner förbättrats.

    Btree-strukturer används för att hålla reda på stora mängder metadata, alltså information om filerna snarare än själva filinnehållet. Journalen används för att hålla filsystemet konsekvent om något avbryts mitt i en operation.

    Bland förbättringarna finns snabbare hantering av transaktioner, mindre låskonflikter i btree-koden och en ny väg för journalflush som inte behöver lås på samma sätt som tidigare.

    I tester på en kraftfull AMD EPYC 9454-server med 48 kärnor uppges Bcachefs ha nått 16,5 GB/s i dbench på en enkel enhetskonfiguration. XFS nådde 16 GB/s i samma test. Med ytterligare patchar, som ännu inte ingick i versionen, ska Bcachefs ha nått 19 GB/s.

    I fio-tester med slumpmässiga 4K-skrivningar nådde Bcachefs omkring 700 000 IOPS, medan XFS nådde omkring 1 miljon IOPS på samma maskin.

    Det betyder inte att Bcachefs alltid är snabbare än XFS. Prestanda beror mycket på hårdvara, arbetslast och konfiguration. Men resultaten visar att Bcachefs nu kan konkurrera på allvar i vissa scenarier.

    Rust tar plats i projektet

    Ett annat intressant spår är att Bcachefs-projektet arbetar mer med Rust.

    Användarverktygen för Bcachefs har redan skrivits om i Rust. Nästa steg är att lägga till Rust-bindningar till DKMS-modulen. Till en början ska Rust användas för enhetstester och prestandatester, och vara ett frivilligt beroende.

    Det betyder inte att hela filsystemet plötsligt skrivs om i Rust. Men det visar att projektet vill använda moderna verktyg där det är praktiskt. Rust har blivit intressant i systemprogrammering eftersom språket kan minska vissa typer av minnesfel som annars är vanliga i C-program.

    Utanför Linuxkärnan – åtminstone just nu

    Bcachefs har haft en turbulent relation till Linuxkärnan. Efter konflikter mellan Kent Overstreet och Linus Torvalds är Bcachefs inte längre en inbyggd del av Linuxkärnan på samma sätt, utan distribueras som en DKMS-modul från och med Linux 6.18.

    DKMS innebär att en separat kärnmodul kan byggas och installeras för den Linuxkärna som systemet använder. Det ger flexibilitet, men är inte lika smidigt som att stödet finns direkt i kärnan.

    Projektets webbplats anger stöd för Linux 6.16 och senare, och det finns paketeringsinformation för flera distributioner, bland annat Gentoo, Void, NixOS, Arch, Debian, Ubuntu, Fedora och openSUSE.

    För vanliga användare innebär detta att installationen kan vara mer beroende av distributionens paketering och kärnversion. Det är alltså klokt att läsa dokumentationen noggrant innan man använder Bcachefs på en viktig maskin.

    Är Bcachefs stabilt nu?

    Det korta svaret är: stabilare än tidigare, men fortfarande något man bör använda med omdöme.

    Att märkningen “experimentell” är borta är en viktig signal. Det visar att projektet själv anser att Bcachefs har passerat en mognadsgräns. Det betyder att buggarna blivit färre och att de problem som rapporteras inte längre ser lika allvarliga ut som tidigare.

    Men filsystem bedöms inte bara efter vad utvecklarna säger. De bedöms efter år av praktisk användning, efter hur de klarar strömavbrott, trasiga diskar, fulla diskar, konstiga kontrollkort, virtuella maskiner, servrar, skrivbordsdatorer och oväntade fel.

    För testmaskiner, hemlabb, entusiaster och mindre kritiska system kan Bcachefs nu vara mycket intressant. För affärskritiska system eller oersättlig data bör man fortfarande vara försiktig, ha ordentliga säkerhetskopior och testa noggrant innan man byter.

    Ett viktigt steg för framtidens Linuxlagring

    Bcachefs 1.38.6 är mer än en vanlig uppdatering. Det är ett tecken på att projektet börjar lämna pionjärfasen och ta steget mot bredare användning.

    Det kombinerar många av de funktioner som moderna användare förväntar sig: snapshots, komprimering, kryptering, checksummor, avancerad hantering av flera diskar och nu även mognare stöd för erasure coding.

    Samtidigt återstår viktiga frågor. Hur väl fungerar det i stor skala? Hur snabbt byggs förtroende bland systemadministratörer? Kommer Bcachefs att återvända som inbyggt stöd i Linuxkärnan? Och hur kommer distributionerna att hantera paketering och support?

    Det är för tidigt att säga att Bcachefs är det självklara valet för alla. Men det är inte längre bara ett experiment för nyfikna utvecklare. Det har blivit ett seriöst alternativ i Linuxvärlden – och ett filsystem som många nu kommer att följa betydligt närmare.

    https://www.patreon.com/bcachefs/posts/1-38-6-release-161366372

    Faktaruta: Bcachefs

    Bcachefs är ett modernt filsystem för Linux som använder copy-on-write-teknik och är utvecklat för att erbjuda avancerade funktioner för lagring, säkerhet och dataintegritet.

    Filsystemet har stöd för bland annat kryptering, snapshots, komprimering, checksummor och hantering av flera lagringsenheter.

    • Typ: Modernt Linux-filsystem
    • Teknik: Copy-on-write
    • Funktioner: Kryptering, snapshots och komprimering
    • Dataskydd: Checksummor och erasure coding
    • Version: Bcachefs 1.38.6
    • Status: Inte längre experimentellt enligt projektet
    • Användning: Intressant för entusiaster, testmiljöer och avancerad Linuxlagring

    Även om Bcachefs inte längre räknas som experimentellt bör det fortfarande användas med eftertanke på system där viktig eller affärskritisk data lagras.

Etikett: COW

  • Bcachefs lämnar experimentstadiet – men bör fortfarande användas med eftertanke

    Bcachefs har tagit ett viktigt steg från experimentellt projekt till seriöst alternativ för Linuxlagring. Projektledaren Kent Overstreet meddelar att filsystemet inte längre betraktas som experimentellt, samtidigt som den nya versionen 1.38.6 bjuder på stora prestandaförbättringar, mognare stöd för erasure coding och fortsatt utveckling med Rust. Men trots framstegen bör Bcachefs fortfarande användas med eftertanke när…