
r/bcachefs

Forward error correction
Is it possibe to add some forward error correction scheme in along with the encryption and compression algorithms? This way bitflips could be recovered from without going all the way to raid1 overhead.
suboptimal allocator behavior under heavy load with somehow asymmetric devices setup
Greetings everybody
Some troubles with my volume 3xNVME 3xHDD.
Device label Device State Size Used Use% Leaving
bhdd.seaJ6ER (device 24): sdc4 rw 15.8T 174G 1%
bhdd.tosh21F0 (device 13): sda4 rw 10.5T 3.21T 30% 4.25M
bhdd.tosh4310 (device 14): sdb4 rw 10.5T 2.96T 28%
bnvme.970evo (device 5): nvme2n1p6 rw 62.8G 61.8G 97% 27.8G
bnvme.990pro (device 23): nvme1n1p6 rw 387G 217G 57% 212G
bnvme.sn720 (device 11): nvme0n1p6 rw 74.0G 72.8G 97% 38.2G
nvme1 is substantially bigger (and faster) hdc is somehow bigger and added recently thus filled a little.
Now. Under heavy load iostat
avg-cpu: %user %nice %system %iowait %steal %idle
2.4% 0.0% 1.0% 38.4% 0.0% 58.2%
rkB/s rrqm/s %rrqm r_await rareq-sz Device
35.33 4.4M 37.53 51.5% 1.45 126.4k nvme0n1
16.80 1.0M 0.00 0.0% 0.79 63.6k nvme1n1
21.33 3.3M 33.40 61.0% 3.52 158.0k nvme2n1
163.00 15.2M 259.80 61.4% 229.71 95.7k sda
211.27 28.1M 582.67 73.4% 171.60 136.3k sdb
90.87 5.5M 27.60 23.3% 27.99 61.8k sdc
w/s wkB/s wrqm/s %wrqm w_await wareq-sz Device
30.60 2.9M 5.20 14.5% 0.59 98.7k nvme0n1
82.00 44.0M 67.80 45.3% 1.82 549.8k nvme1n1
23.67 2.3M 4.87 17.1% 2.46 98.7k nvme2n1
26.73 43.4M 119.40 81.7% 324.65 1.6M sda
5.20 2.5M 35.93 87.4% 381.90 498.4k sdb
3.80 136.5k 1.93 33.7% 4.18 35.9k sdc
d/s dkB/s drqm/s %drqm d_await dareq-sz Device
6.93 2.7M 3.87 35.8% 0.55 398.8k nvme0n1
3.80 5.2M 1.40 26.9% 0.81 1.4M nvme1n1
8.27 2.1M 0.00 0.0% 2.26 256.0k nvme2n1
0.00 0.0k 0.00 0.0% 0.00 0.0k sda
0.00 0.0k 0.00 0.0% 0.00 0.0k sdb
0.00 0.0k 0.00 0.0% 0.00 0.0k sdc
f/s f_await aqu-sz %util Device
3.40 0.25 0.07 0.6% nvme0n1
3.40 2.16 0.17 2.9% nvme1n1
3.40 2.08 0.16 2.7% nvme2n1
3.33 114.66 46.50 85.9% sda
3.33 90.46 38.54 85.3% sdb
3.33 3.84 2.57 6.7% sdc
As you can see sdc is used a little. Thus heavy sda/sdb use makes a bottle-neck.
The same hardware is used, by different partitions, to make another bcachefs volume that is used at the same time- for reading. One is simply data volume and the other I'm giving details- as backup. Data volume is somehow different but relatively similar to backup one I'm giving details now.
Is this a case for optimalization per parameters tuning or per sourcecode patching?
Any suggestions welcome
eBPF LSM runtime security agent for synchronous file/network denial — looking for technical feedback
I’m working on Aegis-BPF, an open-source Linux runtime security project built around eBPF LSM.
The goal is narrow: explore enforcement-first runtime security, where selected file and network operations can be denied before syscall completion, rather than only emitting post-event telemetry.
Current scope:
- BPF-LSM based file/network policy decisions
- cgroup-scoped policy
- OverlayFS/copy-up handling
- audit-mode fallback when enforcement is unavailable
- Prometheus metrics
- Kubernetes/Helm deployment path
I’m not claiming it is a production-ready replacement for Falco, Tetragon, or KubeArmor. I’m treating it as a focused enforcement model project and looking for criticism from people who understand eBPF, Linux security, or container runtime edge cases.
Main feedback I’m looking for:
- Are the hook choices reasonable?
- What enforcement edge cases am I probably missing?
- What would make the failure-mode model more trustworthy?
- What tests would you expect before taking this seriously?
- Are there obvious problems with cgroup-scoped policy or OverlayFS handling?
Repo:
https://github.com/ErenAri/Aegis-BPF
Technical criticism is more useful than general encouragement.
NASty v0.0.6
NASty is a NAS operating system built on NixOS and bcachefs. It turns commodity hardware into a storage appliance serving NFS, SMB, iSCSI, and NVMe-oF — managed from a single web UI, updated atomically, and rolled back when things go sideways.
Highlights of 0.0.6:
OIDC / Single Sign-On — Log in with Google, Authentik, Keycloak, or any OIDC provider. Configure from Access Control → Identity Providers.
Security hardening pass — Browser sessions moved to httpOnly cookies, per-IP login rate-limit with persisted lockouts, WebSocket origin validation, gated WS endpoints, legacy
?token=URL auth removed, tightened HTTP security headers,{@html}XSS sinks killed, compose deploys sandboxed, NFS exports hardened, secret files locked down.Network bridges — Linux bridges as a virtual switch for VMs (and apps), composable with bonds and VLANs (closes #27).
MTU configuration — Configurable MTU on physical interfaces, bonds, bridges, and VLANs from the WebUI — including jumbo frames (9000) for SMB / NFS workloads (closes #62).
Filesystem wizard upgrades — Drive model / serial / vendor / transport on the disk picker, usable-capacity estimate that matches the filesystems list, and a summary line on the filesystem card showing device count, erasure coding, and encryption.
Apps
allow_unsafeescape hatch — Deploy compose stacks (or simple apps) that need privileged options with explicit user opt-in, surfaced in the deploy form and app list. Internal port now editable on Apps.Background alert evaluation — Alerts fire from the engine's background notifier instead of waiting for a browser to be connected.
Test & CI footprint — fmt / clippy / svelte-check / test gates in CI, pinned Rust toolchain, integration nixosTest that drives JSON-RPC over the appliance, bcachefs smoke test, and unit tests across JSON-RPC framing, alert evaluation, sharing config, storage parsers, update rollback, the WebSocket client, the toast queue, and IO history.
Dependency refresh — rusqlite 0.34 → 0.39, openidconnect 3 → 4, vitest 3 → 4, plus major bumps to sha2 / rand / x509-parser / bollard / reqwest, nixpkgs to 549bd84 (2026-05-05), and bcachefs-tools to v1.38.2.
Smaller polish — SSH banner is now dismissible and renamed to "Configure SSH", banner buttons actually navigate, VM-detect loop fix, audit log rotation fix, dead
nft -f -spawn removed.