SakeTami
bcachefs
bcachefs

patreon


Snapshots are working!

They're still in a very early state, and nothing but the bare minimum is complete - but they're up, for people to look at and try out. You'll need to use the snapshots branch from both the kernel and tools repositories.

Caveats:

 - I haven't finished the compat code, you'll have to make a new filesystem (using the snapshots branch from tools). Also, I am definitely going to be adding things to the subvolume and snapshots keys and I'm not going to write compat code for that - the on disk format is definitely not finalized for that part.

- The code isn't optimized yet, there's some performance regressions (not major ones, but I need to add a percpu read lock mode to SIX locks for the subvolume keys).

- There's no fsck yet, and no rebalance or copygc either. Updating the data move path (used by rebalance and copygc) for snapshots won't be too hard, fsck is going to take some work.

- Normal subvolumes can be deleted with rmdir, but there's no way to delete snapshots yet.

- There's no per-snapshot disk space accounting yet - I'm going to have to do a major rework of the disk space accounting stuff to make that practical.

The user interface is similar to btrfs's - bcachefs-tools now has tools for creating subvolumes and snapshots. Both can be used by non root users: subvolume creation works anywhere mkdir would, and snapshot creation additionally just requires that the user own the root inode of the subvolume being snapshotted.

Looking forward to getting performance numbers - I expect it to scale into the millions of snapshots.


Comments

Very excited to hear this. Can't wait for mainlining so I get to play with it without need of recompilation ;)

Excellent progress. Seems that is a very easy thing to test till destruction

veritanuda

Awesome! At this pace, I hope bcachefs gets feature-complete and stable (minus test of time) by 2024!

brunoais

Wonderful news, especially the scaling to millions of snapshots part. I'm still trying to wrap my head around using versioning instead of keeping root nodes around, but slowly it's starting to make sense,


More Creators