diff --git a/content/log/2024/bcachefs.md b/content/log/2024/bcachefs.md new file mode 100644 index 0000000..c3951a0 --- /dev/null +++ b/content/log/2024/bcachefs.md @@ -0,0 +1,47 @@ +--- +title: "bcachefs" +date: 2024-04-04T10:32:22+03:00 +draft: True +--- + +Once bcachefs got [merged][1] to Linux 6.7, I was excited to try it out. Who +wouldn't? It intrigues me for a combination of features not readily available +on other file systems: + +- *Tiered storage*: I want generally "fast" storage and "lots" of it (by my + standards). Ideally, I would have a HDD with "cold" storage and SSD with + "warm" storage (including writeback for fast writes). Currently all + homeserver files are in a 2TB SSD drive. I would like to get an HDD and have + a smaller (cheaper) SSD. +- *Compression*: compression ratio for homeserver files is `1.07x`, but over 2x + for `/nix`. Compression ratio for `/home` on my personal laptop is `1.23x`. + +Part 1: + +``` +$ bcachefs fsck /dev/mapper/luksroot +< over 1 million lines like this ... > +error validating btree node at btree rebalance_work level 0/1 + u64s 11 type btree_ptr_v2 53920:1262:U32_MAX len 0 ver 0: seq 914ce76a78ae3f22 written 281 min_key 0:19871775:1 durability: 1 ptr: 0:16177:0 gen 10 + node offset 141 bset u64s 94: invalid bkey: snapshot == 0 + u64s 5 type deleted 0:21863357:0 len 0 ver 0, fixing +error validating btree node at btree rebalance_work level 0/1 + u64s 11 type btree_ptr_v2 53920:1262:U32_MAX len 0 ver 0: seq 914ce76a78ae3f22 written 281 min_key 0:19871775:1 durability: 1 ptr: 0:16177:0 gen 10 + node offset 141 bset u64s 92: invalid bkey: snapshot == 0 + u64s 5 type deleted 0:21863362:0 len 0 ver 0, fixing +btree_node_read_work: rewriting btree node at btree=rebalance_work level=0 53920:1262:U32_MAX due to error + done +journal_replay... done +check_alloc_info... done +check_lrus... done +check_btree_backpointers... done +check_backpointers_to_extents... done +check_extents_to_backpointers... done +check_alloc_to_lru_refs... done +check_snapshot_trees... done +*** buffer overflow detected ***: terminated +Aborted +``` + + +[1]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9e87705289667a6c5185c619ea32f3d39314eb1b