Das Dateisystem Bcachefs hat offiziell den experimentellen Status verlassen.

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

Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы 🔥 Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы | ProHoster