- Joined
- May 17, 2014
- Messages
- 3,611
Over the years there have been some discussions of using ZFS without any redundancy. Either single disk pools or as a pool of striped disks. Both are reasonable, in certain circumstances. One recent discussion devolved a bit. There were good points, but we should describe how to do it, and why someone might do it, for future reference. And many of the pitfalls. (Without all the sillyness of "just don't do it".)
Here are some reasons why people might want to use ZFS without redundancy;
So, what benefits would ZFS give without redundancy?
Because of how ZFS stripes all data across all vDevs, if each vDev is a single disk, then a configuration of single disk vDev pools would reduce the potential data loss & increase the longevity over multiple single disk vDevs in a striped pool.
The conclusion for a non-redundant ZFS configuration, is that single disk vDev pools are preferred.
Use "copies=2", (or 3), for critical user data files. And have good, tested & monitored backups.
Note: There is OpenZFS work intended to allow both import of a damaged pool, and recovery of what data can be recovered. This is a long term project, and is not yet available. And may never be completed.
Here are some reasons why people might want to use ZFS without redundancy;
- Some people think that redundancy costs too much money
- They think they can detect when a hard disk drive is going to fail, and pre-emptively replace it
- The data is basically R/O, but available from another source, (like DVD or Blu-ray)
- The data is R/W, but good backups are available.
- How much money or time lost to recover any lost data? (If it can even be recovered!)
- Occasionally hard drives simply loose a data block completely, without any possibility of recovery. It's just gone.
The hard disk drive's built in error detection and correction code tried to repair, but their were too many bad bits.
On rare occasions, (but I have personally and professionally seen it), a hard drive dies completely, all dead, all data gone. - See answer 1. I once extracted my DVD collection to MP4 Simple CODEC. That took many days. Then found out that the
MP4 Advanced CODEC would give me better compression, (upto twice what the simple did). So I re-did my DVD collection.
More of my time setting up the extract and changing optical discs, (using the much slower MP4 Advanced CODEC). - Data can be lost between failure and last good backup.
Note that backups CAN and DO fail. Either file damaged in backup stream. Or the scheduled backup simply did not run!
In some cases, restoration can take many hours, even days.
This can be acceptable, under certain circumstances.
So, what benefits would ZFS give without redundancy?
- Automatic metadata repair on read failure, (all metadata has at least 2 copies, even without redundancy)
- Scrubbing to detect when metadata needed to be repaired, (but not read recently)
- Scrubbing to detect when file data has lost block(s), so you can restore it
- Built in compression
- Management, (ZFS datasets, zVols, sharing, attributes)
- Snapshots & clones
- Critical user data files can have 2 or 3 ZFS managed copies, even on single disk vDev pools
- OpenZFS is soon to have dataset / zVol encryption
- And if used for OS, alternate boot environments
Because of how ZFS stripes all data across all vDevs, if each vDev is a single disk, then a configuration of single disk vDev pools would reduce the potential data loss & increase the longevity over multiple single disk vDevs in a striped pool.
The conclusion for a non-redundant ZFS configuration, is that single disk vDev pools are preferred.
Use "copies=2", (or 3), for critical user data files. And have good, tested & monitored backups.
Note: There is OpenZFS work intended to allow both import of a damaged pool, and recovery of what data can be recovered. This is a long term project, and is not yet available. And may never be completed.