Bcachefs 1.33: Avancerad diagnostik, realtidsmätvärden och Btree-optimering

Nyckelord:
  • Detaljerade felmeddelanden: förklara orsak, typ (svĂĄr/mjuk) och lösning.
  • bcachefs fs top visar nu överföringshastigheter i realtid.
  • Asynkron sammanslagning av Btree-noder för att förbättra prestanda under belastning
  • Nya alternativ mount_trusts_udev och writeback_timeout.
  • Massiv minskning av goto i koden (frĂĄn 2500 till 600) som förberedelse för Rusts ankomst.
bcachefs

Bcachefs är ett kopiera-på-skriv-filsystem för Linux-baserade operativsystem.

För några dagar sedan tillkännagav Kent Overstreet lanseringen av Bcachefs 1.33.0 , en ny version av filsystemet som introducerar djupgående strukturella förändringar i datahantering och arkitekturen för dess källkod.

Den här uppdateringen ser ut att bli en av de viktigaste under de senaste två åren, med fokus på metadataintegritet och modernisering av C-kodbasen.

"Avstäm": En ny era för dataintegritet

Den mest anmärkningsvärda nya funktionen, som beskrivs som den viktigaste förändringen under de senaste två åren, är införandet av avstämningsfunktionen (rebalance_v2) . Denna nya mekanism ersätter det gamla "ombalanserings"-systemet och åtgärdar en av dess största begränsningar: systemet kan nu hantera och flytta inte bara användardata utan även metadata för filsystemet.

Rebalance_v2 agerar proaktivt och automatiskt. Om en ny disk läggs till i en array eller redundansalternativ ändras, börjar Bcachefs omedelbart replikera och korrigera eventuella försämrade data eller metadata, med hjälp av separata index för att prioritera kritiska operationer. Detta säkerställer att systemintegriteten upprätthålls även under intensiva underhållsoperationer.

Kodrensning och rostbehandling

Under huven medför version 1.33.0 en massiv omstrukturering av C-koden för att göra den säkrare och mer kompatibel med en framtida implementering i RustUtvecklaren har utfört en djupgående rensning, vilket minskar antalet uttalanden. goto från 2 500 till bara 600, vilket avsevärt förenklar programmets logiska flöde.

Dessutom har nya makron introducerats, t.ex. DARRAY() y try()Dessa är utformade för att efterlikna det dynamiska vektorbeteendet och felhanteringen i Rust och C++. Detta moderniserar inte bara den nuvarande koden utan kommer också att underlätta portabilitet och minska minnesfelytan i framtiden.

Förbättrad diagnostik och lagringsflexibilitet

Med tanke på systemadministration förbättrar den här versionen tydligheten i felmeddelanden drastiskt . Bcachefs kan nu urskilja och kommunicera om ett fel beror på en programvarubugg eller ett fysiskt hårdvaruproblem, och till och med föreslå nödvändiga återställningssteg. Detta är viktigt för att undvika feldiagnoser där filsystemet skylls för en trasig disk.

Denna transparens sträcker sig till flera nivåer:

  • Detaljerade I/O-fel: När blocklagret rapporterar ett fel, överför Bcachefs nu den specifika koden (t.ex. BLK_STS_IOERR), vilket hjälper till att identifiera om den fysiska disken är boven i dramat.
  • Monteringsfel: Om enheter saknas för att sätta ihop en volym, indikerar systemet nu exakt vilken enhet som saknas, och visar dess namn och modell baserat pĂĄ när den senast sĂĄgs.
  • Felfrekvensgränser: Gränserna för "mjuka" (programvaru-) och "hĂĄrda" (hĂĄrdvaru-) fel har separerats, vilket säkerställer att en flod av mindre fel inte maskerar ett kritiskt diskfel.

Dessutom kommandot bcachefs fs top Det har förbättrats. De interna räknarna visar nu dataöverföringshastigheter istället för bara statiska siffror, vilket gör det mycket enklare att korrelera händelser (som till exempel data_update_fail) med prestandaminskningar i realtid.

Optimeringar i Btrees och nya monteringsalternativ

Under huven förbättras prestandan vid tung belastning tack vare förändringar i B-trädhanteringen. Sammanslagning av tomma noder sker nu asynkront, vilket eliminerar flaskhalsar i skrivbufferten. Dessutom har ett valfritt återställningspass lagts till. merge_btree_nodes, för att manuellt optimera trädstrukturen om det behövs.

En annan mycket praktisk extrafunktion är möjligheten att starta ett filsystem med konfigurationen replicas=2 på en enda skivaDetta gör det möjligt för användare att börja med en enda hårddisk i vetskap om att systemet "måste" ha redundans; så snart en andra hårddisk är ansluten replikerar Bcachefs automatiskt data utan att kräva komplex manuell intervention.

Slutligen är det värt att nämna att den nya versionen, som redan är tillgänglig för distributioner som Debian, Fedora, Arch Linux och NixOS, kräver en Linuxkärna 6.16 eller högre och distribueras i två grundläggande paket: kärnmodulen (bcachefs-kernel-dkms) och användarverktygen (bcachefs-tools).


Lägg till som prioriterad källa i Google