Btrfs Snapshot Integration in KDE

I have been working on integrating Btrfs snapshots into KDE software. The central part of this work has been realized in the form of KIO Snapshot, which has just been released. Here I want to discuss what it is, how it works, how it was developed, and the surrounding work across KDE.


This is a companion discussion topic for the original entry at https://bharadwajraju.com/posts/btrfs-snapshots-in-kde
23 Likes

This is tremendous, thank you!

4 Likes

This sounds great. Well done! Can it replace BTRFS Assistant or is it an accompaniment to it? My impression is the latter ie. that I’d use BTRFS Assistant for managing BTRFS and Snapper and KIO Snapshot for looking at file snapshots.

The latter is correct – it can’t take or manage snapshots, it’s just an interface to view them in Dolphin etc.

1 Like

Should at least have the ability to delete them. Then we have a physical way of seeing that they were deleted instead of relying on BTRFS Assistant saying they’re deleted without actual proof.

I would like to recommend to keep this integration filesystem agnostic. Right now, btrfs is the main filesystem that supports snapshots, but there’s no reason for the same integration not to work with LVM snapshots for example, or maybe bcachefs or ZFS

Individual support for each filesystem would probably need to be added separately but the point is to keep the design of the app expandable.

That’s the plan for the integration. btrfs is by far more mature (documentation, user-space lbraries), at least on the desktop. It had to start somewhere.

This illustrates well Where bugfixes and new features come from – Adventures in Linux and KDE

Contribution by those using or needing those filesystem are welcome.
Code is quite tight to brtfs ATM though and will some refactoring unfortunately.

1 Like

Yes, as Méven said. In principle if someone wants to contribute support for other filesystems, it is feasible to implement it within this project itself. Some refactoring will be required, but nothing too difficult.

1 Like

I haven’t used LVM much, but my understanding is that it supports snapshots similar to btrfs. Is it applicable here?