Kent Overstreet hat die Version 1.38.6 des Dateisystems Bcachefs veröffentlicht und die offizielle Entfernung des experimentellen Entwicklungsstatus bekannt gegeben. In letzter Zeit haben die Meldungen ĂŒber Probleme abgenommen und die entdeckten Fehler sind weniger gravierend und komplex geworden.
Die Veröffentlichung umfasst zwei Pakete: bcachefs-kernel-dkms mit dem Kernel-Modul, das mit Hilfe des DKMS-Systems (Dynamic Kernel Module Support) erstellt wird, und bcachefs-tools mit dem im Userspace laufenden Tool bcachefs, das Befehle zum Erstellen (mkfs), Einbinden, Wiederherstellen und PrĂŒfen des FS bereitstellt. Die Pakete sind fĂŒr Debian, Ubuntu und Arch Linux verfĂŒgbar und werden fĂŒr Fedora, openSUSE und NixOS erwartet. Das DKMS-Modul unterstĂŒtzt Kernel-Versionen von Linux ab 6.16.
Trotz der unscheinbaren Versionsnummer, bedingt durch das Fehlen von Ănderungen im Festplattenspeicherformat, bringt Version 1.38.6 eine Reihe von bedeutenden Leistungsoptimierungen mit sich. Im Code fĂŒr die Arbeit mit btree-Datenstrukturen, Protokollierung und der FunktionalitĂ€t des Dateisystems wurden rund 200 Ănderungen vorgenommen, die die Leistung erhöhen. Die Logik zur BestĂ€tigung von Transaktionen wurde auf 4 KB Maschinencode reduziert, und es wurden Optimierungen vorgenommen, um das Auftreten von Lock Contention beim Arbeiten mit btree zu vermeiden; der Prozess zum ZurĂŒcksetzen des Journals (journal flush) lĂ€uft nun vollstĂ€ndig ohne Locking ab.
Auf Server Mit einem 48-Kern-AMD-CPU konnte bei Bcachefs eine Durchsatzrate von 16,5 GB/s erreicht werden, wĂ€hrend 48 dbench-Clients gestartet wurden (zum Vergleich: XFS erzielte 16 GB/s). Es wurden Patches vorbereitet, die jedoch auf die nĂ€chste Version verschoben wurden, um die Leistung in dbench-Tests auf 19 GB/s zu steigern (diese Patches erfordern zusĂ€tzliche Tests oder eine Ănderung des Festplattenformats). Bei einem Test mit dem Tool fio erreichte Bcachefs 700 Operationen pro Sekunde bei der DurchfĂŒhrung von zufĂ€lligen SchreibvorgĂ€ngen mit 4-Kilobyte-Blöcken (XFS demonstriert in diesem Test eine Million Operationen pro Sekunde, wobei XFS durch das Remapping von Blöcken begrenzt ist, wĂ€hrend Bcachefs den gesamten CoW-Zyklus (Copy-on-Write) mit PrĂŒfziffern und Aktualisierung der btree-Struktur verarbeitet.)
Neben den Optimierungen in der Version Bcachefs 1.38.6 wurde die UnterstĂŒtzung fĂŒr den Anschluss von bis zu 255 GerĂ€ten an ein Dateisystem implementiert. Im Repository apt.bcachefs.org werden Pakete fĂŒr Ubuntu 26.04 erstellt. Die Infrastruktur fĂŒr die kontinuierliche Integration und automatisierte Tests wurde auf die ĂberprĂŒfung von Builds auf DKMS-Basis umgestellt. In den nĂ€chsten Monaten wird der Fokus auf der Optimierung der Dateisystemleistung mit mehreren SpeichergerĂ€ten liegen.
DarĂŒber hinaus wird die Arbeit an der Neuschreibung des Codes in der Programmiersprache Rust fortgesetzt. Es wird festgestellt, dass die UnterstĂŒtzung von Rust im Kernel einen Meilenstein erreicht hat â alle bedeutenden Distributionen haben bei der Erstellung von Paketen mit Kernel 7.0 standardmĂ€Ăig die Konfiguration CONFIG_RUST fĂŒr den Kernel-Build mit Rust-UnterstĂŒtzung aktiviert. Im Bcachefs-Projekt wurden bereits eine Reihe von Dienstprogrammen in Rust neu geschrieben.
bcachefs-Tools, die im Benutzerspeicher ausgefĂŒhrt werden, einschlieĂlich der API-Implementierung fĂŒr die Arbeit mit BĂ€ume-Strukturen. Im nĂ€chsten Release ist geplant, vorbereitete Wrapper in Rust in das DKMS-Modul des Kernels zu integrieren und mit der Neuschreibung des Basiscodes von Bcachefs zu beginnen. Es wird erwartet, dass die Verwendung von Rust die FlexibilitĂ€t, StabilitĂ€t und Benutzerfreundlichkeit des Codes erhöht, das Projekt fĂŒr junge Ingenieure interessanter macht und in Zukunft eine formale Verifizierung der ZuverlĂ€ssigkeit ermöglicht.
Das Projekt Bcachefs entwickelt ein Dateisystem, das darauf abzielt, die erweiterte FunktionalitĂ€t von Btrfs und ZFS mit der Leistung, ZuverlĂ€ssigkeit und Skalierbarkeit von XFS zu kombinieren. Bcachefs unterstĂŒtzt Funktionen wie die Einbindung mehrerer GerĂ€te in ein Volume, mehrschichtige Speicheranordnungen (eine untere Schicht mit hĂ€ufig verwendeten Daten auf schnellen SSDs und eine obere Schicht mit weniger hĂ€ufig genutzten Daten von Festplatten), Replikation (RAID 1/10), Caching, transparente Datenkompression (LZ4-, gzip- und ZSTD-Modi), ZustandsschnappschĂŒsse, IntegritĂ€tsprĂŒfung ĂŒber PrĂŒfziffern, Fehlerkorrekturcodes und die Speicherung von Informationen in verschlĂŒsselter Form (unter Verwendung von ChaCha20 und Poly1305).
Unter den bedeutenden Neuerungen, die in den letzten Monaten zu Bcachefs hinzugefĂŒgt wurden, sind:
- Der Mechanismus âreconcileâ (rebalance_v2) ermöglicht im Gegensatz zum Modus ârebalanceâ nicht nur das Rebalancieren von Daten (zum Beispiel das Replizieren mehrerer Kopien auf unterschiedliche Speicher), sondern auch von Metadaten im Dateisystem (zum Beispiel zum Ăbertragen von Metadaten nach der HinzufĂŒgung eines zusĂ€tzlichen Speichers zum Pool). Reconcile kann fĂŒr alle Eingabe-/Ausgabebetriebe verwendet werden und nicht nur fĂŒr Hintergrundkopier- und Komprimierungsoperationen. Ănderungen an den GerĂ€teeinstellungen werden automatisch berĂŒcksichtigt, und degradierte Daten sowie Metadaten werden sofort erneut repliziert.
- UnterstĂŒtzung von Fehlerkorrekturcodes, die es ermöglichen, beschĂ€digte Daten Ă€hnlich wie bei RAID 5/6 wiederherzustellen. Die Implementierung basiert auf dem Reed-Solomon-Coding, das in der Lage ist, bis zu N Fehler in einem Stripe zu korrigieren, wenn N redundante Blöcke verfĂŒgbar sind. Die automatische Wiederherstellung degradierter Stripes ist sichergestellt. Die Anwendung von Wiederherstellungscodes ist in Konfigurationen mit Speichern unterschiedlicher GröĂen möglich.
Quelle: opennet.ru
