Bcachefs er et kopi-på-skriv-filsystem til Linux-baserede operativsystemer.
For et par dage siden annoncerede Kent Overstreet udgivelsen af Bcachefs 1.33.0 , en ny version af filsystemet, der introducerer dybtgående strukturelle ændringer i datahåndtering og arkitekturen af dets kildekode.
Denne opdatering tegner til at blive en af de mest betydningsfulde i de sidste to år, med fokus på metadataintegritet og modernisering af C-kodebasen.
"Afstem": En ny æra for dataintegritet
Den mest bemærkelsesværdige nye funktion, beskrevet som den mest betydningsfulde ændring i de sidste to år, er introduktionen af afstemningsfunktionen (rebalance_v2) . Denne nye mekanisme erstatter det gamle "rebalanceringssystem" og adresserer en af dets største begrænsninger: systemet kan nu administrere og flytte ikke kun brugerdata, men også filsystemets metadata.
Rebalance_v2 agerer proaktivt og automatisk. Hvis en ny disk tilføjes til et array, eller redundansindstillinger ændres, vil Bcachefs straks begynde at replikere og korrigere eventuelle forringede data eller metadata ved hjælp af separate indekser til at prioritere kritiske operationer. Dette sikrer, at systemintegriteten opretholdes, selv under intensiv vedligeholdelse.
Kodeoprydning og rustforberedelse
Under motorhjelmen bringer version 1.33.0 en massiv omstrukturering af C-koden for at gøre den mere sikker og kompatibel med en fremtidig implementering i RustUdvikleren har udført en dybdegående oprydning, hvilket reducerer antallet af statements. goto fra 2.500 til blot 600, hvilket i høj grad forenkler programmets logiske flow.
Derudover er der introduceret nye makroer, som f.eks. DARRAY() y try()Disse er designet til at efterligne den dynamiske vektoradfærd og fejlhåndtering i Rust og C++. Dette moderniserer ikke kun den nuværende kode, men vil også fremme portabilitet og reducere hukommelsesfejloverfladen i fremtiden.
Forbedret diagnosticering og lagringsfleksibilitet
Med systemadministration i tankerne forbedrer denne version tydeligheden af fejlmeddelelser drastisk . Bcachefs kan nu skelne og kommunikere, om en fejl skyldes en softwarefejl eller et fysisk hardwareproblem, og endda foreslå de nødvendige gendannelsestrin. Dette er afgørende for at undgå fejldiagnoser, hvor filsystemet får skylden for en fejlende disk.
Denne gennemsigtighed strækker sig over flere niveauer:
- Detaljerede I/O-fejl: Når bloklaget rapporterer en fejl, sender Bcachefs nu den specifikke kode (f.eks.
BLK_STS_IOERR), der hjælper med at identificere, om den fysiske disk er synderen. - Samlingsfejl: Hvis der mangler enheder til at samle et volumen, angiver systemet nu præcis, hvilken enhed der mangler, og viser dens navn og model baseret på sidste gang, den blev set.
- Fejlrategrænser: Grænserne for "bløde" (software) og "hårde" (hardware) fejl er blevet adskilt, hvilket sikrer, at en strøm af mindre fejl ikke maskerer en kritisk diskfejl.
Derudover kommandoen bcachefs fs top Det er blevet forbedret. De interne tællere viser nu dataoverførselshastigheder i stedet for blot statiske tal, hvilket gør det meget nemmere at korrelere hændelser (f.eks. data_update_fail) med præstationsfald i realtid.
Optimeringer i Btrees og nye monteringsmuligheder
Under motorhjelmen er ydeevnen ved tung belastning forbedret takket være ændringer i B-træstyring. Sammenfletning af tomme noder sker nu asynkront, hvilket eliminerer flaskehalse i skrivebufferen. Derudover er der tilføjet et valgfrit gendannelsespas. merge_btree_nodes, for manuelt at optimere træstrukturen, hvis det er nødvendigt.
En anden meget praktisk tilføjet funktion er muligheden for at starte et filsystem med konfigurationen replicas=2 på en enkelt diskDette giver brugerne mulighed for at starte med et enkelt drev, velvidende at systemet "skal" have redundans; så snart et andet drev er tilsluttet, replikerer Bcachefs automatisk dataene uden at kræve kompleks manuel indgriben.
Endelig er det værd at nævne, at den nye version, som allerede er tilgængelig til distributioner som Debian, Fedora, Arch Linux og NixOS, kræver en Linux-kerne 6.16 eller højere og distribueres i to grundlæggende pakker: kernemodulet (bcachefs-kernel-dkms) og brugerværktøjerne (bcachefs-tools).