Bcachefs
Bcachefs | |
---|---|
Hersteller | Kent Overstreet |
Erstveröffentlichung | 21. August 2015 () |
Technische Umsetzung | |
Verzeichnisse | hybrider B+-Baum |
Dateien | Extents |
Eigenschaften | |
Dateirechte-Verwaltung | POSIX, ACLs |
Transparente Komprimierung | ja |
Transparente Verschlüsselung | ja |
Copy-On-Write | ja |
Unterstützende Betriebssysteme | Linux (ab Kernel 6.7) |
Bcachefs ist ein Copy-On-Write-Dateisystem für Linux, das aus der Entwicklung von bcache hervorgegangen ist und so wie dieses von Kent Overstreet seit 2015 hauptverantwortlich entwickelt wird. Es steht, wie der Linux-Kernel, unter der GPL und konkurriert vom Umfang der Funktionen her direkt mit den Dateisystemen ZFS und Btrfs, will aber in Punkto Geschwindigkeit die Dateisysteme ext4 und XFS übertreffen.[1] Es galt bereits früh als stabil, hatte aber nur eine eingeschränkte Nutzergemeinde.[2] Seit 2022 wurde an der Aufnahme in den Hauptentwicklerzweig des Linux-Kernels gearbeitet,[3] wo es in Version 6.7 vom Januar 2024 aufgenommen wurde.[1]
Entwicklung
[Bearbeiten | Quelltext bearbeiten]Bei der Entwicklung von bcache erkannte dessen Entwickler Kent Overstreet, dass dieses bereits viele Grundelemente eines Dateisystems aufweist, woraufhin er beschloss, bcache – was für block device cache steht – in ein vollwertiges Dateisystem auszubauen. Im August 2015 stellte er sein nunmehr bcachefs (für bcache + fs für englisch file system) genanntes Dateisystem auf LKML.org den Kernel-Entwicklern vor.[4] Das Dateisystem bietet neben Copy-On-Write (CoW) auch Prüfsummen für Daten und Metadaten, Caching, Kompression, Verschlüsselung und Snapshots.[5]
Seit Linux-Kernel 6.7 vom 7. Januar 2024 ist bcachefs im Mainline-Kernel integriert.[1][6]
Suspendierung
[Bearbeiten | Quelltext bearbeiten]Für die Linux-Kernel-Version 6.13 hatte Linus Torvalds Kent Overstreet vorübergehend suspendiert, was bedeutete, dass er keine Patches von Overstreet annahm. Dem vorausgegangen waren Beleidigungen von Overstreet, auch gegenüber angesehenen langjährigen Kernel-Entwicklern. Das dafür zuständige CoC-Komitee, das einen selbst auferlegten Verhaltenskodex für alle Linux-Entwickler vorgibt, stellte schließlich fest, dass Overstreet die Grenzen guten Benehmens überschritten hatte. Da zu diesem Zeitpunkt noch keine Sanktionen festgelegt waren, wurden diese im Rahmen des Regelwerks erarbeitet und am 15. November 2024 zur Dokumentation des Linux-Kernels hinzugefügt.[7][8] Zusätzlich gab es aber auch allgemeine Befürchtungen über zu wenig Tests der Patches von Overstreet, was für den Hauptentwicklerzweig von Linux deshalb problematisch ist, weil dieser stets stabil sein soll.[9]
Kent Overstreet hatte sich danach über seinen Patreon-Auftritt an seine Unterstützer gewandt, sich aber nicht entschuldigt. In einem rund 36.000 Zeichen langen Text bezeichnete er die Zukunft und Weiterentwicklung von Bcachefs im Linux-Kernel als ungewiss.[7][8]
Eigenschaften
[Bearbeiten | Quelltext bearbeiten]Das Dateisystem ist auf Robustheit ausgelegt. Das im Kernel aufgenommene bcachefs gilt als feature-complete und sticht gegenüber den klassischen Linux-Dateisystemen ext und XFS heraus, weil es von Haus aus Checksumming und die Unterstützung mehrerer Datenträger bietet und u. a. keinen Logical Volume Manager benötigt. Wie andere moderne Dateisysteme, etwa ZFS und Btrfs, bietet bcachefs Caching und Snapshots, sowie Replikation im Stil von RAID1 und RAID10.[1]
Bcachefs ist ein Copy-On-Write (COW) Dateisystem für Linux-basierte Betriebssysteme. Funktionen umfassen Caching, vollständige Dateisystem-Verschlüsselung mit den Algorithmen ChaCha20 und Poly1305, native Kompression über LZ4, gzip[10] und Zstandard,[11] snapshots, CRC-32C und 64-Bit-Prüfsummeming. Sie kann Blockgeräte überspannen, auch in RAID-Konfigurationen.
Auf der Ebene der Datenstruktur verwendet bcachefs B-Baume wie viele andere moderne Dateisysteme, jedoch mit einer ungewöhnlich großen Knotengröße von standardmäßig 256 KiB. Diese Knoten sind intern log-structured und bilden eine hybride Datenstruktur, wodurch die Notwendigkeit des Neuschreibens von Knoten bei der Aktualisierung reduziert wird.[12] Snapshots werden nicht durch Klonen eines COW-Baums implementiert, sondern durch Hinzufügen einer Versionsnummer zu Dateisystemobjekten.[13] Die COW-Funktion und der Bucket Allocator ermöglichen eine RAID-Implementierung, von der behauptet wird, dass sie weder unter dem Schreibloch noch unter IO-Fragmentierung leidet.[11]
Siehe auch
[Bearbeiten | Quelltext bearbeiten]Weblinks
[Bearbeiten | Quelltext bearbeiten]Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ a b c d Oliver Müller: Linux 6.7 bringt bcachefs. In: Heise online. 9. Januar 2024. Abgerufen am 17. März 2024.; Zitat: „Das schon mehrfach für die Integration vorgesehene Dateisystem bcachefs schaffte es nun endlich ins Kernel-Release.“.
- ↑ Jack Wallen: An Introduction to New Linux Filesystem bcachefs. In: The New Stack. 17. September 2019, abgerufen am 17. März 2024 (englisch): „Although bcachefs is relatively new, it’s quite stable, and already has a growing community of users.“
- ↑ Jake Edge: Bringing bcachefs to the mainline. In: LWN.net. 17. Mai 2022, abgerufen am 17. März 2024 (englisch).
- ↑ Kent Overstreet: [ANNOUNCE] bcachefs – a general purpose COW filesystem. In: LKML.org. 20. August 2015, abgerufen am 17. März 2024 (englisch).
- ↑ Ferdinand Thommes: Bcachefs: erneuter Anlauf zur Aufnahme in den Kernel. In: LinuxNews. 12. Mai 2023, abgerufen am 17. März 2024.
- ↑ Niklas Dierking, Linux 6.7 führt bcachefs ein, c’t 3/2024, S. 45
- ↑ a b Senthilkumar Palani: Bcachefs Future In Linux Kernel Uncertain After Code Of Conduct Dispute; Linux Kernel Controversy: Bcachefs Developer's Clash with CoC. In: OSTechNix. 23. November 2024, abgerufen am 14. Dezember 2024 (englisch): „Kent Overstreet, the lead developer of the Bcachefs file system, has publicly announced that the future of Bcachefs in the Linux kernel is uncertain due to an ongoing dispute with the Linux Kernel Code of Conduct (CoC) committee.“
- ↑ a b Thorsten Leemhuis: Linus Torvalds suspendiert Bcachefs-Entwickler wegen Code-of-Conduct-Verletzung. In: Heise online. 21. November 2024. Abgerufen am 14. Dezember 2024.; Zitat: „Kent Overstreet wird nach verbalen Ausfällen gegenüber anderen Entwicklern sanktioniert – ein Novum bei der als ruppig geltenden Entwicklung des Linux-Kernels“.
- ↑ Michael Larabel: Bcachefs Fixes Pull Once Again Frustrates Linus Torvalds – Two Choices Offered. In: Phoronix. 5. Oktober 2024, abgerufen am 14. Dezember 2024 (englisch).
- ↑ Options - bcachefs documentation.
- ↑ a b Kent Overstreet: bcachefs: Principles of Operation. 18. Dezember 2021, abgerufen am 10. Mai 2023.
- ↑ Architektur. In: bcachefs.org.
- ↑ Snapshots. In: bcachefs.org.