Hello,
I am a ZFS noob planning to use it for the first time. Please forgive me if I do not use the correct terminology.
I have a few GBs of documents (plain text files, PDFs, etc.) that I want to store on an ODROID H3+.
The H3+ is populated with the following drives:
- 500GB NVMe - OS Drive
- 4TB HDD
- 4TB HDD
Using this ODROID and a cloud storage provider, I’d like to get as close as possible to 3-2-1 backups + bit rot protection. I’m shooting for an RTO of 2-weeks and an RPO of 1-day. Performance / throughput is not a concern.
Here is my plan:
Using NixOS or Ubuntu, I was going to put ZFS on all three drives. The 500GB NVMe would be in a zpool by itself and the two 4TB disks would be in a mirrored zpool like this:
zpool1
- 500GB NVMe - OS Drive
zpool2 - mirrored
- 4TB HDD
- 4TB HDD
To achieve bit rot protection, I am planning to save the ‘original’ documents to zpool1 and set copies=3
.
To achieve 3-2-1, I am planning to take frequent snapshots of the important directories on zpool1 and ‘send’ them to zpool2. Then, I will use Restic (or Borg?) to send encrypted backups to a cloud storage provider.
I’d be appreciative for any advice on how to optimize my ZFS usage, but here are some specific questions I have:
- Is it weird to send snapshots from one zpool to another on the same host?
- Will the size differences on the two pools cause problems when taking or restoring snapshots?
- If I go the snapshot route, do I need the
set copies=3
on the important directories in zpool1, or would any corruption be caught and corrected during the snapshot send to zpool2? - Instead of the snapshots, would it make more sense to
rsync
the files to zpool2 and take snapshots of zpool2? This should still protect against accidental deletion without needing to ‘send’ the snapshots.
Thanks in advance!