Basically title. I’m in the process of setting up a proper backup for my configured containers on Unraid and I’m wondering how often I should run my backup script. Right now, I have a cron job set to run on Monday and Friday nights, is this too frequent? Whats your schedule and do you strictly backup your appdata (container configs), or is there other data you include in your backups?
I run Borg nightly, backing up the majority of the data on my boot disk, incl docker volumes and config + a few extra folders.
Each individual archive is around 550gb, but because of the de-duplication and compression it’s only ~800mb of new data each day taking around 3min to complete the backup.
Borgs de-duplication is honestly incredible. I keep 7 daily backups, 3 weekly, 11 monthly, then one for each year beyond that. The 21 historical backups I have right now RAW would be 10.98tb of data. After de-duplication and compression it only takes up 407.98gb on disk.
With that kind of space savings, I see no reason not to keep such frequent backups. Hell, the whole archive takes up less space than one copy of the original data.
Thanks for sharing the details on this, very interesting!
+1 for borg
Original size Compressed size Deduplicated size
This archive: 602.47 GB 569.64 GB 15.68 MB All archives: 16.33 TB 15.45 TB 607.71 GB
Unique chunks Total chunks
Chunk index: 2703719 18695670
Once every 24 hours.
Yep. Even if the data I’m backing up doesn’t really change that often. Perhapas I should start to back up files from my laptop and workstation too. Nothing too important is stored only on those devices, but reinstalling and reconfiguring everything back is a bit of a chore.
Backups???
Raid is a backup.
That is what the B in RAID stands for.
Just like the “s” in IoT stands for “security”
🤣
What’s the second B stand for?
Beets.
Or bears.
Or buttsex.
It’s context dependent, like “cool”.
cool
If Raid is backup, then Unraid is?
I do not as I cannot afford the extra storage required to do so.
Daily backups here. Storage is cheap. Losing data is not.
Proxmox servers are mirrored zpools, not that RAID is a backup. Replication between Proxmox servers every 15 minutes for HA guests, hourly for less critical guests. Full backups with PBS at 5AM and 7PM, 2 sets apiece with one set that goes off site and is rotated weekly. Differential replication every day to zfs.rent. I keep 30 dailies, 12 weeklys, 24 monthly and infinite annuals.
Periodic test restores of all backups at various granularities at least monthly or whenever I’m bored or fuck something up.
Yes, former sysadmin.
This is very similar to how I run mine, except that I use Ceph instead of ZFS. Nightly backups of the CephFS data with Duplicati, followed by staggered nightly backups for all VMs and containers to a PBS VM on a the NAS. File backups from unraid get sent up to CrashPlan.
Slightly fewer retention points to cut down on overall storage, and a similar test pattern.
Yes, current sysadmin.
I would like to play with ceph but I don’t have a lot of spare equipment anymore, and I understand ZFS pretty well, and trust it. Maybe the next cluster upgrade if I ever do another one.
And I have an almost unhealthy paranoia after see so many shitshows in my career, so having a pile of copies just helps me sleep at night. The day I have to delve into the last layer is the day I build another layer, but that hasn’t happened recently. PBS dedup is pretty damn good so it’s not much extra to keep a lot of copies.
I use Duplicati for my backups, and have backup retention set up like this:
Save one backup each day for the past week, then save one each week for the past month, then save one each month for the past year.
That way I have granual backups for anything recent, and the further back in the past you go the less frequent the backups are to save space
Every hour, automatically
Never on my Laptop, because I’m too lazy to create a mechanism that detects when it’s possible.
I just tell it to back up my laptops every hour anyway. If it’s not on, it just doesn’t happen, but it’s generally on enough to capture what I need.
Nextcloud data daily, same for the docker configs. Less important/rarely changing data once per week. Automatic sync to NAS and online storage. Irregular and manual sync to an external disk.
7 daily backups, 4 weekly backups, “infinite” monthly backups retained (until I clean them up by hand).
Boils down to how much are you willing to lose? Personally I do weekly
If you haven’t tested your backups, you ain’t got a backup.
Right now, I have a cron job set to run on Monday and Friday nights, is this too frequent?
Only you can answer this. How many days of data are you prepared to lose? What are the downsides of running your backup scripts more frequently?
Local zfs snap every 5 mins.
Borg backups everything hour to 3 different locations.
I’ve blown away docker folders of config files a few times by accident. So far I’ve only had to dip into the zfs snaps to bring them back.
Try ZFS send if you have ZFS on the other side. It’s insane. No file IO, just snap and time for the network transfer of the delta.
I would but the other side isn’t zfs so I went with borg instead
No backup for my media. Only redundacy.
For my nextcloud data, anytime i made major changes.
Timeshift creates a btrfs snapshot on each boot for me. And my server gets nightly borg backups.
Just a friendly reminder that BTRFS snapshots are not backups.
You’re correct and probably the person you’re responding to is treating one as an alternative as another.
However, theoretically filesystem snapshotting can be used to enable backups, because they permit for an instantaneous, consistent view of a filesystem. I don’t know if there are backup systems that do this with btrfs today, but this would involve taking a snapshot and then having the backup system backing up the snapshot rather than the live view of the filesystem.
Otherwise, stuff like drive images and database files that are being written to while being backed up can just have a corrupted, inconsistent file in the backup.
btrbk works that way essentially. Takes read-only snapshots on a schedule, and uses btrfs send/receive to create backups.
There’s also snapraid-btrfs which uses snapshots to help minimise write hole issues with snapraid, by creating parity data from snapshots, rather than the raw filesystem.
and uses btrfs send/receive to create backups.
I’m not familiar with that, but if it permits for faster identification of modified data since a given time than scanning a filesystem for modified files, which a filesystem could potentially do, that could also be a useful backup enabler, since now your scan-for-changes time doesn’t need to be linear in the number of files in the filesystem. If you don’t do that, your next best bet on Linux – and this way would be filesystem-agnostic – is gonna require something like having a daemon that runs and uses inotify to build some kind of on-disk index of modifications since the last backup, and a backup system that can understand that.
looks at btrfs-send(1) man page
Ah, yeah, it does do that. Well, the man page doesn’t say what time it runs in, but I assume that it’s better than linear in file count on the filesystem.
Absolutely, my backup solution is actually based on BTRFS snapshots. I use btrbk (already mentioned in another reply) to take the snapshots and copy them to another drive. Then a nightly restic job backs up the latest snapshot to B2.
Yes. That’s why I sync my important files to my nextcloud.
That’s good. You can also check out btrbk - it’s a tool which can take snapshots for you, like Timeshift, but also back them up to somewhere.