Btrfs as a home user - why?

Bear with me here.

I am looking into Btrfs and so far it seems good, but impractical and the opposite of what is needed for me?

  1. Auto-healing? Good.
  2. Snapshots are not incremental? REALLY bad.
  3. Must put snapshot on the same drive as the data it takes snapshot of? Then what is the point?

Basically as a home user what I am interested in is backing up my /home, while i couldn’t care less about my / directory. The exact opposite of what Btrf snapshots do by default and the lack of incremental backups (as I understand it) is that I need enormous storage empty to handle the 300 or so GB in my home folder for snapshots?

I see a lot of people praising this but again, as a home user I see the backing up of everything BUT the home directory as directly pointless; it takes me 12 minutes to reinstall Linux, while my home data is irreplaceable, so why would any home user use snapshots for / only?

Can someone help me with this? I have not seen a single argument for Btrfs for home users that doesn’t overly complicate things or assume you have all your media files on a NAS somewhere and only us say a 20Gb locally so you can fit your 10 or so Snapshots on a 500Gb partition…

Snapshots != Backups

IMO btrfs is most useful on / (root), together with automatic snapshots it gives you the possibility to easily roll back, for example after a bad update.

8 Likes

Umm…no, that is good. Keep in mind a filesystem snapshot is nothing like a timeshift snapshot. You would never want filesystem snapshots to be incremental, there would be no benefit to it. Filesystem snapshots are pointers to the preserved data locations within the filesystem. Usually at the block level. They are extremely storage efficient. Unless you have a massive amount of data changing constantly your snapshots will take very little space as long as you keep them for a reasonable period of time. The incremental space they take is minimal so even you take 100’s of snapshots per day they won’t consume much space.

snapshots are not backups. The purpose of snapshots is to be able to access the filesystem in a previous state. The fact that they are in the same storage space is why they take such little space. The machine I am using right now has over 2,200 snapshots on it.

You can use snapshots for backups using snapshot replication. This makes a copy of your data in another location. It can be on the same machine or another machine. This gives you a way to have fast incremental backups.

This is completely not the case.

Accessing a snapshot is instant and also allows you to go back and forth seamlessly. Want to boot into your system from yesterday, then into your system from last week and then back into today’s system? No problem.

Snapshots have all kinds of other useful features. Ever edit a config file and then not know what you did? No problem, with a snapshot you can pull up old copies of the config file over time. You don’t even need a restore to do it, you can access the config in the snapshot directly.

Old versions of important documents? Again, no problem.

8 Likes

To be complete, here’s the documentation concerning incremental backups:
https://btrfs.wiki.kernel.org/index.php/Incremental_Backup

Wow :slight_smile: I never have more than 10 from the same mountpoint :wink:

1 Like

To be fair, that across more than 50 datasets but many of my datasets such as the ones in /home have a substantial retention period.

I usually keep hourly snapshots for 48 hours, daily snapshots for 10 days, weekly snapshots for 5 weeks, monthly snapshots for a year.

Important datasets like the ones containing critical documents I usually keep my annual snapshots indefinitely.

Less important snapshots or snapshots locations with a massive rate of change I may stop at weekly.

1 Like

Ah yes okay, that explains it. I don’t usually make snapshots on /home, only on root via timeshift, maximum keep duration 1 month.

For me, there is no reason not to take some degree of snapshots in every volume. A few days of hourly snapshots will use almost no storage space and have no other downsides. But they are there if I need them. I take snapshots in /home even though I also back it up with borg.

1 Like

One more thing I would add about snapshots is that if you think of snapshots in terms of timeshift, you are substantially limiting your thinking.

snapshots are much more flexible and powerful than what is available to you in timeshift.

I’m fully aware of the capabilities of snapshots.
I simply don’t need them often. The reason why I am limiting them is more a psychological one. For the same reason, I never have more than 10 tabs open in a browser. Too much for me to handle :wink:
Currently I use them for systemd containers and for temporary filesystems via tmpfiles.d.

2 Likes

I know, that wasn’t directed at you specifically. :wink:

My impression is that BTRFS snapshots are intended for your operating system files not as backups for your documents and personal data. The idea is that you can revert to a snapshot when your system plays up.

btrfs snapshots are intended to take snapshots of your subvolumes. It doesn’t matter if they are operating system files, documents or temporary data. How you use them is entirely up to you.

You can absolutely use them as backups via snapshot replication. It is one of the most efficient ways to do backups.

3 Likes

@Beardedgeek72
Your initial points 2 and 3 are actually moot, :wink:
As @dalto already correctly implied, snapshots aren’t necessarily restricted to the same device.

[Discussion]

With btrfs’s send and receive commands you can replicate a snapshot on a different filesystem. The command operates in two modes: full and incremental. In the incremental mode, previously sent snapshots that are available on both the sending and receiving side can be used to reduce the amount of information that has to be sent to reconstruct the sent snapshot on a different filesystem; much like rsync in non-btrfs Timeshift.

It’s just a btrfs feature that Timeshift doesn’t make use of. But you could still send/receive snapshots created by Timeshift manually if you wanted to.

2 Likes

In addition there are several tools that help you with backups of snapshots (see my link above) if you don’t want to use btrfs send | btrfs receive manually.

1 Like

It still seems overly complicated and only backs up (yes, a snapshot is a backup, but not all backups are snapshots) the least important part of my system.

The thing is I am interested in a good backup of all my data to an external drive taking a little time as possible.

Can I do this with Btrfs via Timeshift or similar program or do I have to set things up manually, which quite frankly seems far more work than to just run ext4 with rsync thru Timeshift?

I do NOT need bootable snapshots in Grub, or snapshots eating up all my / space etc.

I have never had a need for anything like that but have you tried buttermanager?

Just chiming in to say that snapshots from /home are even more useful to me than from /.

Everything in / is behind root/sudo, but it’s so easy to accidentally overwrite or delete something in /home. With snapshots I know worst case I’ll lose an hour of work.

Or sometimes I’m working on a problem, code changes while searching for a solution, and suddenly I want to reuse five lines I discarded four hours ago.

3 Likes

Oh, I’ve been in this situation many times. Your post almost makes me want to try btrfs. :rofl:

1 Like

No I have not, but I have only run Btrfs when installing openSuse…