Hi there, I've been meaning to go get more serious about my data. I have minimal backups, and some stuff is not backed up at all. I'm begging for disaster.
Here's what I've got:
2 8tb drives almost full in universal external enclosures
A small formfactor PC as a server, with one 8tb drive connected.
An unused raspberry pi.
No knowledge of how to properly use zfs.
Here's what I want:
I've decided I don't need raid. I don't want the extra cost of drives or electricity, and I don't need uptime. I just need backups.
I want to use what drives I have, and an additional 16tb drive I'll buy.
My thought was that I would replace the 8tb drive with a 16tb one, format it with zfs (primarily to avoid bit rot. I'll need to learn how to check for this), then back it up across the two 8tb drives as a cold backup. Either as two separate drives somehow? Btrfs volume extension? Or a jbod connected to the raspberry pi, that I leave unplugged except for when it's time to sync the new data?
Or do you have a similarly cheap solution that's less janky?
I just want to back up my data, with an amount of rot protection, cheaply.
I understand that it might make sense to invest in something a bit more robust right now, and fill it with drives as needed.
But the thing I keep coming to is the cold backup. How can you keep cold backups over several hard drives, without an entire second server to do the work?
I got an external ORICO USB hard drive dock and two 3.5" hard drive cases (also by Orico). Every month or so, I plug them in and rsync files over. I'm lucky that one specific folder is about the size of one drive, so I just manually split them. There's probably a better way to do that if you don't have an obvious split.
Then the 3.5" drives in their colorful cases go into a fireproof safe in the basement. I also added another pair for semiannual backups that go to my inlaws.
Rsync will compare the contents of the source directory with the target directory. If it finds a match, it won't copy the files, if there's no match, it copies.
If your goal is to have 1:1 copies, you can use the --delete flag to remove extraneous files in the target directory that aren't in the source directory.
If you use the -a flag, it'll maintain all of your permissions.
You can literally rsync a linux installation from one machine to another. While the source machine is running. Pretty nuts.
If you rsync over a network, you need to be careful. While you might sude rsync -a to maintain file ownership on the sending side, the receiving side will not be a superuser and therefore will be unable to make files owned by other users.
If you add "--rsync-path "sudo rsync" in the ssh version of the command, it'll tell the receiving side to use sudo which will allow it to maintain file ownership when storing the files.