Bcachefs

Short description: Linux file system

BcachefsDeveloper(s)| Kent Overstreet

|

Introduced| 21 August 2015; 8 years ago (2015-08-21)
Structures
Directory contents| Hybrid B+ tree
File allocation| Extents
Bad blocks| None recorded
Features
Dates recorded| modification (mtime), attribute modification (ctime), access (atime), create (crtime)
Attributes| Extended attributes
File system permissions| POSIX (+ ACL in xattrs)
Transparent compression| Yes
Transparent encryption| Yes
Copy-on-write| Yes
Other
Supported operating systems| Linux
Website| bcachefs.org

Bcachefs is a copy-on-write (COW) file system for Linux-based operating systems. Its primary developer, Kent Overstreet, first announced it in 2015, and it was added to the Linux kernel beginning with 6.7.[1][2] It is intended to compete with the modern features of ZFS or Btrfs, and the speed and performance of ext4 or XFS. It self-describes as "stable", as of December 2022.[3]

## Contents

* 1 Features
* 2 History
* 3 References
* 3.1 Works cited
* 4 External links

## Features

Bcachefs is a copy-on-write (COW) file system for Linux-based operating systems.[4] Features include caching,[5] full file-system encryption using the ChaCha20 and Poly1305 algorithms,[6] native compression[5] via LZ4, gzip[7] and Zstandard,[8] snapshots,[5] CRC-32C and 64-bit checksumming.[4] It can span block devices, including in RAID configurations.[6]

Earlier versions of Bcachefs provided all the functionality of Bcache, a block-layer cache system for Linux, with which Bcachefs shares about 80% of its code.[9] As of December 2021, the block-layer cache functionality has been removed.[8]

On a data structure level, bcachefs uses B-trees like many other modern file systems, but with an unusually large node size defaulting to 256 KiB. These nodes are internally log-structured, forming a hybrid data structure, reducing the need for rewriting nodes on update.[10] Snapshots are not implemented by cloning a COW tree, but by adding a version number to filesystem objects.[11] The COW feature and the bucket allocator enables a RAID implementation with neither write hole nor IO fragmentation.[8]

## History

Primary development has been by Kent Overstreet, the developer of Bcache, which he describes as a "prototype" for the ideas that became Bcachefs. Overstreet intends Bcachefs to replace Bcache.[9] Overstreet has stated that development of Bcachefs began as Bcache's developers realized that its codebase had "been evolving ... into a full blown, general-purpose POSIX filesystem", and that "there was a really clean and elegant design" within it if they took it in that direction. Some time after Bcache was merged in 2013 into the mainline Linux kernel, Overstreet left his job at Google to work full-time on Bcachefs.[4]

After a few years' unfunded development, Overstreet announced Bcachefs in 2015, at which point he called the code "more or less feature complete", and called for testers and contributors. He intended it to be an advanced file system with modern features[12] like those of ZFS or Btrfs, with the speed and performance of file systems such as ext4 and XFS.[4] As of 2017 Overstreet was receiving financial support for the development of Bcachefs via Patreon.[6]

As of mid-2018, the on-disk format had settled.[9] Patches had been submitted for review to have Bcachefs included in the mainline Linux kernel, but had not yet been accepted.[5]

By mid-2019, the desired features of Bcachefs were completed and the associated patches to LKML were submitted for peer review.[13][14] In September 2023 the filesystem was merged in linux-next, a development tree of the Linux kernel where new features are tested before inclusion in the mainline tree.[15]

In October 2023 bcachefs was merged into the Linux 6.7 kernel,[16] which was released in January of 2024.[2]

## References

1. ↑ "kernel/git/torvalds/linux.git - Linux kernel source tree". https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9e87705289667a6c5185c619ea32f3d39314eb1b.
2. ↑ 2.0 2.1 Larabel, Michael (2024-01-07). "Linux 6.7 Released With Bcachefs, Intel Meteor Lake In Good Shape & Nouveau GSP Support" (in en). https://www.phoronix.com/news/Linux-6.7-Released.
3. ↑ "bcachefs". https://bcachefs.org.
4. ↑ 4.0 4.1 4.2 4.3 Larabel 2015.
5. ↑ 5.0 5.1 5.2 5.3 Larabel 2018.
6. ↑ 6.0 6.1 6.2 Baader 2017.
7. ↑ "Options — bcachefs documentation". https://bcachefs-docs.readthedocs.io/en/latest/options.html#compression-types.
8. ↑ 8.0 8.1 8.2 Overstreet, Kent (18 Dec 2021). "bcachefs: Principles of Operation". https://bcachefs.org/bcachefs-principles-of-operation.pdf.
9. ↑ 9.0 9.1 9.2 Edge 2018.
10. ↑ "Architecture". https://bcachefs.org/Architecture/.
11. ↑ "Snapshots". https://bcachefs.org/Snapshots/.
12. ↑ Jackson 2015.
13. ↑ LKML 2021.
14. ↑ LKML 2022.
15. ↑ "Bcachefs Merged Into Linux-Next" (in en). https://www.phoronix.com/news/Bcachefs-In-Linux-Next.
16. ↑ "Bcachefs Merged Into The Linux 6.7 Kernel" (in en). https://www.phoronix.com/news/Bcachefs-Merged-Linux-6.7.

### Works cited

* Baader, Hans-Joachim (2017-03-17). "Neue Version von Bcachefs bringt Verschlüsselung" (in de). Pro-Linux (de). https://www.pro-linux.de/news/1/24562/neue-version-von-bcachefs-bringt-verschlÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¼sselung.html.
* Edge, Jake (2018-05-23). "An update on bcachefs". LWN.net. https://lwn.net/Articles/755276/.
* Jackson, Joab (2015-08-21). "Former Google engineer revs up a new Linux filesystem". PC World. https://www.pcworld.com/article/2974489/ex-google-revs-up-a-new-linux-filesystem.html.
* Larabel, Michael (2015-08-21). "A New Linux File-System Aims For Speed While Having ZFS/Btrfs-Like Features". Phoronix. https://www.phoronix.com/scan.php?page=article&item=bcache-fs-linux&num=1.
* Larabel, Michael (2018-05-09). "Bcachefs File-System Is Working On Going Upstream In The Linux Kernel". Phoronix. https://www.phoronix.com/scan.php?page=news_item&px=Bcachefs-Linux-Upstream-Start.
* LKML (2019-06-10). "bcachefs status update (it's done cooking; let's get this sucker merged)". Linux Kernel Mailing List. https://lkml.org/lkml/2019/6/10/762.
* LKML (2021-11-04). "bcachefs status update - current and future work". Linux Kernel Mailing List. https://lkml.org/lkml/2021/11/4/715.
* LKML (2022-02-16). "bcachefs". Linux Kernel Mailing List. https://lkml.org/lkml/2022/2/16/130.

## External links

* Official website

* v
* t
* e

File systems

* Comparison of file systems
* distributed
* Unix filesystem

Disk|

* ADFS
* AdvFS
* Amiga FFS
* Amiga OFS
* APFS
* AthFS
* bcachefs
* BFS
* Be File System
* Boot File System
* Btrfs
* CVFS
* CXFS
* DFS
* EFS
* Encrypting File System
* Extent File System
* Episode
* ext
* ext2
* ext3
* ext3cow
* ext4
* FFS/FFS2
* FAT
* exFAT
* Files-11
* Fossil
* HAMMER
* HAMMER2
* HFS
* HFS+
* HPFS
* HTFS
* IBM Spectrum Scale
* JFS
* LFS
* MFS
* Macintosh File System
* TiVo Media File System
* MINIX
* NetWare File System
* Next3
* NILFS
* NILFS2
* NSS
* NTFS
* OneFS
* PFS
* QFS
* QNX4FS
* ReFS
* ReiserFS
* Reiser4
* Reliance
* Reliance Nitro
* RFS
* SFS
* SNFS
* Soup (Apple)
* Tux3
* UBIFS
* UFS
* soft updates
* WAPBL
* VxFS
* WAFL
* Xiafs
* XFS
* Xsan
* zFS
* ZFS

Optical disc|

* HSF
* ISO 9660
* ISO 13490
* UDF

Flash memory and SSD|

* APFS
* FAT
* exFAT
* CHFS
* TFAT
* EROFS
* FFS2
* F2FS
* HPFS
* JFFS
* JFFS2
* JFS
* LogFS
* NILFS
* NILFS2
* NVFS
* YAFFS
* UBIFS

Distributed|

* CXFS
* GFS2
* Google File System
* OCFS2
* OrangeFS
* PVFS
* QFS
* Xsan
* more...

NAS|

* AFS (OpenAFS)
* AFP
* Coda
* DFS
* Google File System
* IBM Spectrum Scale
* Lustre
* NCP
* NFS
* POHMELFS
* Hadoop
* SMB (CIFS)
* SSHFS
* more...

Specialized|

* Aufs
* AXFS
* Boot File System
* CDfs
* Compact Disc File System
* cramfs
* Davfs2
* EROFS
* FTPFS
* FUSE
* Lnfs
* LTFS
* NOVA
* MVFS
* SquashFS
* UMSDOS
* OverlayFS
* UnionFS
* WBFS

Pseudo and virtual|

* configfs
* devfs
* debugfs
* kernfs
* procfs
* specfs
* sysfs
* tmpfs
* WinFS

Encrypted|

* eCryptfs
* EncFS
* EFS
* Rubberhose
* SSHFS
* ZFS

Types|

* Clustered
* Global
* Grid
* Self-certifying
* Flash
* Journaling
* Log-structured
* Object
* Record-oriented
* Semantic
* Steganographic
* Synthetic
* Versioning

Features|

* Case preservation
* Copy-on-write
* Data deduplication
* Data scrubbing
* Execute in place
* Extent
* File attribute
* Extended file attributes
* File change log
* Fork
* Links
* Hard
* Symbolic

Access control|

* Access control list
* Filesystem-level encryption
* Permissions
* Modes
* Sticky bit

Interfaces|

* File manager
* File system API
* Installable File System
* Virtual file system

Lists|

* Cryptographic
* Default
* Log-structured

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/Bcachefs. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Bcachefs&oldid=3373562"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template