Snapper - BTRFS snapshot management frontend

Updated: March 5, 2012

Snapper is as the title says, a tool that allows you to manage your BTRFS snapshots and rollback undesired system changes. At the moment, the tool is only available in openSUSE. Despite a rather underwhelming debut by openSUSE 12.1 and the early errors I experienced with Snapper, I decided to give the distro and the tool a second shot. This is why you are reading this tutorial.

After having mastered the basics of BTRFS, namely how to create subvolumes and snapshots and how to switch the default view between them as a way of rolling back and forth between data snapshots, we can now proceed and test the exact same functionality using a guided graphical wizard. Since we have the understanding, we can now comfortably choose which mode of work suits us best, command line or the noobend. Just joking. Or not. Follow me.

Teaser

Get Snapper

Snapper is available in the official openSUSE repositories. Install, then head into YaST and invoke. That should be the sum of your bother hopefully. Now, you can use the tool.

Install Snapper

YaST, Snapper

Using Snapper

The tool is fairly straightforward. The first time you launch it, it will tell you about existing snapshots, their type as well as when they were taken. You can also read the description to learn more. As you can see, we have periodic snapshots, labeled timeline, we have another snapshot created when we edited the proxy settings in YaST, as well as two pre and post snapshots during updates. Similar to Windows system restore, it seems.

Existing snapshots

Now, click any one to show changes. In the left pane, you can see the tree of all snapshotted directories, or rather subvolumes. Select any to view. In the right pane, you will be able to compare the snapshots to system or among themselves, as well as choose to restore if you want or need. You won't be able to see the difference for binary files, though.

Overview

Overview, more

Some questions

Basically, that's all. However, there's the question of how these snapshots can be used in a real production setup. How much extra space do you need for snapshots? Can snapshots be incremental, similar to svn and git version control? What do you do if your system is not bootable for some reason? How do you revert changes then?

Are snapshots deleted when you revert? Apart from the fairly technical view of things, how can one know what is a usable working set and what is a botched system configuration? Can human-readable descriptions and notes be added? Can these snapshots be password protected? Can frequency be changed or tweaked? Can specific volumes be added or removed? There's a lot more worked left to be done.

It will definitely be interesting to see how this tool evolves. At the moment, it seems like an interesting experimental feature for advanced users and system administrators.Finally, you may want to read the openSUSE lizards article on Snapper.

Conclusion

This short tutorial does not have any grand conclusion. Snapper seems like a useful tool, although it needs some functionality rework to make truly effective in the hands of users and administrators alike. I would like to see separation between user and system configurations. Moreover, an ability to create snapshots on demand would be great, too. Well, it sure bears watching. And now you know how to handle snapshots in BTRFS both from the command line and in GUI. Winning.

P.S. The thumbnail picture on the index page taken and adapted from Wikimedia and licensed under CC-BY 2.0.

Cheers.