Kent Overstreet hat die Version 1.33.0 des Dateisystems Bcachefs veröffentlicht. Die Veröffentlichung umfasst zwei Pakete: bcachefs-kernel-dkms mit einem Kernel-Modul, das mit Hilfe des DKMS-Systems (Dynamic Kernel Module Support) erstellt wird, und bcachefs-tools mit dem im Benutzerraum ausgeführten bcachefs-Tool, das Befehle zum Erstellen (mkfs), Mounten, Wiederherstellen und Überprüfen des Dateisystems bereitstellt. Die Pakete sind für Debian, Ubuntu, Fedora, openSUSE, NixOS und Arch Linux verfügbar. Das DKMS-Modul unterstützt Kernel-Versionen von Linux 6.16 und höher.
In der neuen Version wurde die Funktionalität "reconcile" (rebalance_v2) hinzugefügt, die als die bedeutendste Änderung im Dateisystem der letzten zwei Jahre gilt. Im Gegensatz zum zuvor verfügbaren Modus "rebalance" ermöglicht der Mechanismus "reconcile" nicht nur die Rebalancierung von Daten (z. B. das Replizieren mehrerer Kopien auf verschiedene Speichergeräte), sondern auch von Metadaten im Dateisystem (z. B. zum Verschieben von Metadaten nach der Hinzufügung eines zusätzlichen Speichermediums zum Pool). Darüber hinaus ist "reconcile" nun für alle Eingabe-/Ausgabeoptionen anwendbar, nicht nur für Hintergrundkopie- und Komprimierungsoperationen. Änderungen an Optionen oder Geräteeinstellungen werden in "reconcile" automatisch berücksichtigt, und degradierte Daten sowie Metadaten werden sofort neu repliziert.
In reconcile werden separate Indizes für folgende Zwecke verwendet: hochpriorisierte Operationen, Optimierung der Datenverarbeitung auf Festplattenspeichern und Daten, die für eine Verarbeitung geplant sind, die derzeit nicht ausgeführt werden kann (z. B. aufgrund von Speichermangel). Unterstützt wird die Erstellung von Dateisystemen auf einem Datenträger im Modus der doppelten Replikation (replicas=2) — in dieser Konfiguration führt die Hinzufügung eines zweiten Speichers zur automatischen Replikation der Daten auf die hinzugefügte Festplatte, ohne dass der Benutzer Maßnahmen ergreifen muss.
Unter den weiteren Änderungen:
- Die Befehle „reconcile status“ und „reconcile wait“ wurden hinzugefügt. Es wurden die Montageoptionen „mount_trusts_udev“ und „writeback_timeout“ hinzugefügt. Die Befehle „data rereplicate“ und „data job drop_extra_replicas“ wurden als veraltet gekennzeichnet.
- Der Wiederherstellungsmodus „merge_btree_nodes“ wurde hinzugefügt, der alle Knoten in btree-Strukturen überprüft, die unter Zusammenführungsoperationen fallen.
- Der Code wurde für den Übergang zur Verwendung der Programmiersprache Rust vorbereitet. Die Anzahl der im Code verwendeten goto-Operationen wurde von 2500 auf 600 reduziert. Statt fest kodierter Vektoren wird das Makro DARRAY() verwendet, das ähnliche Funktionen wie die dynamischen Arrays von C++ und Rust bietet. Zur Fehlerbehandlung kommt das Makro try() zum Einsatz, das von Rust übernommen wurde.
- In der Ausgabe des Befehls „bcachefs fs usage“ wird nun korrekt über degradierte Daten informiert.
- Die Verarbeitung der Zähler, die durch den Befehl „bcachefs fs top“ angezeigt werden, wurde überarbeitet. Die Hinzufügung neuer Zähler wurde vereinfacht, und es wurde die Möglichkeit implementiert, Tracepoints in Ausgabe-Puffer (printbufs) umzuwandeln.
- Die Qualität der Fehlermeldungen wurde verbessert, die nun Informationen über Fehlertypen (Software- oder Hardwarefehler), Maßnahmen zur Behebung des Fehlers (z.B. Start eines Wiederherstellungsprozesses) und vom Blockgerät erhaltene Fehlercodes (E/A-Fehlercodes), sowie über fehlende Geräte enthalten. Bei der Durchsuchung von B-Baum-Strukturen wird nun die Möglichkeit zur Wiederherstellung problematischer Knoten angezeigt.
- Beim Protokollieren wurde die Möglichkeit hinzugefügt, die Grenzwerte für die Intensität der Ausgabe verschiedener Fehlertypen getrennt festzulegen. Solche Grenzwerte helfen, den Verlust von Meldungen über sporadische Hardwareprobleme vor dem Hintergrund zahlreicher Meldungen über Softwarefehler zu verhindern.
- Für alle Wiederherstellungsphasen wurden Fortschrittsanzeigen hinzugefügt.
Das Projekt Bcachefs entwickelt ein Dateisystem, das darauf abzielt, die erweiterte Funktionalität von Btrfs und ZFS mit dem Leistungsniveau, der Zuverlässigkeit und der Skalierbarkeit von XFS zu kombinieren. Bcachefs unterstützt Funktionen wie die Einbindung mehrerer Geräte in eine Partition, mehrschichtige Speicher-Layouts (eine untere Schicht mit häufig verwendeten Daten auf schnellen SSDs und eine obere Schicht mit weniger nachgefragten Daten von Festplatten), Replikation (RAID 1/10), Caching, transparente Datenkompression (Modi LZ4, gzip und ZSTD), Zustandsschnappschüsse (Snapshots), Integritätsprüfung durch Prüfziffern, die Möglichkeit zur Speicherung von Reed-Solomon Fehlerkorrekturcodes (RAID 5/6) und die Speicherung von Informationen in verschlüsselter Form (unter Verwendung von ChaCha20 und Poly1305). In Bezug auf die Leistung übertrifft Bcachefs Btrfs und andere Dateisysteme, die auf dem Copy-on-Write-Mechanismus basieren, und zeigt Geschwindigkeiten, die mit Ext4 und XFS vergleichbar sind.
Quelle: opennet.ru
