So just to get some content going on Lemmy, and get contributing here, thought I'd write a bit about going to 6.12 RC with a ZFS pool and what I've done on my server to try and make use of that newfound ability...
Original configuration (pre 6.12):
- 17 unRAID array drives in XFS format
- dual parity
- 2 NVMEs (cache and appdata are separate) in XFS format
- XFS formatted
- Backed-up daily with rsync to a second unRAID server on my LAN.
New configuration 6.12 (currently RC8)
- 13 unRAID array drives in XFS format
- dual parity
- 4 x 8TB drives in a ZFS raidz1 pool
- 2 NVMEs (cache and appdata are separate) in ZFS format with compression enabled.
- Backed-up hourly with ZFS snapshots
Why the change?
- Going to ZFS for my "important data", which is to say, personal documents, family photos (yay babies!)
- Enables snapshots to help aid in the event of a "soft" data error (file being accidentally deleted, overwritten, or maliciously damaged by software, etc, bitrot, etc). Also enables extremely quick replications to my backup server.
- Faster access to those personal documents with data striped across 4 drives.
- Keeping main array as unRAID array drives for "easily replaceable data" (mostly media files, linux ISOs, etc.) so I can expand it easily by chucking another drive in my server or up-sizing an older drive easily.
Enhanced backups through ZFS:
- ZFS has some rather remarkable options for data backups that are enabled by the snapshot capability of the filesystem. Rather than sending individual files across the network and having to laboriously calculate the differences between each file on the dataset (part of the ZFS volume), you can essentially just send the "difference" between snapshots which can stream between servers in a very short time (usually only a couple of seconds in my case).
This means I have my system continually backed-up on an hourly basis, with saved snapshots every hour, and every day/month for half a year.
Plugins in use
The current unraid RC8 supports ZFS pools, however GUI support for managing ZFS pools is lacking. I'm using the following plugins and tools to accomplish everything (available through App installs):
- ZFS Master for Unraid, makes most ZFS operations a GUI interaction rather than terminal. I've heard rumblings that unRAID may acquire/in-house this plugin to add the functionality to the GUI. It would be worthwhile.
- Sanoid, automatically handles ZFS snapshots, as well as rotating snapshots based on the number of required snapshots per month and/or day. Enables sending ZFS snapshots to a backup server and rotating those snapshots as well to ensure continuity of data. Requires a bit of config file editing by hand to make it work, and setting-up a cron script but nothing difficult (it's well-documented) and was about 5 min to set up successfully.
Backup thoughts
RAID (of any type) is not backup. That said, I have part of the "3-2-1" backup strategy automatically enabled here, with my main server backing up the "important stuff" to a separate backup server also running unRAID. That covers having 2 copies of my data on separate devices, however it does not cover keeping one copy off-site as well.
I do have a removable drive in my backup system (currently in XFS format) that's mounted through unassigned devices that I will insert and sync my ZFS pools to twice a year, then go and put in a safe deposit box off-site to ensure it's reliably protected. I currently use XFS for this as it's easy to just plug into any system and get at my files. ZFS is still not as well supported on Windows and Mac systems, but I may go there in the future.
Unraid checking in. 150TB ish. Dual parity for media files on XFS drives. Can lose 2 drives before array data is at risk, and even then if a drive fails, I’d only lose the data on that drive not the entire array.
Important data is on ab encrypted ZFS array which is snapshotted and replicated hourly to a separate backup server and replicated one more time weekly to 3.5” archive drives which are swapped out to a safe deposit box every few months.
I used to use rsync to do it but snapshot replication with sanoid/syncoid does the same thing in a tiny fraction of the time by just sending snapshot deltas rather than having to compare each file.