winnielinnie
MVP
- Joined
- Oct 22, 2019
- Messages
- 3,641
In regards to ZFS, I was always under the impression that scheduled scrubs would detect data corruption and bit rot, and attempt to fix it.
My assmption so far...
Upon reading the (corrupted) record, if the generated checksum doesn't match the expected checksum, it is marked as a checksum error (i.e, "corrupted"). However, as long as there is some level of redundancy of the underlying devices, an automatic repair is possible, correct? For instance, if it's a mirrored vDev, there's a good copy of the record on the other devices(s), with which ZFS can use to re-write the record on the drive in question.
Yet, according to this blog post by Jody Bruchon (originally written in 2017, updated in 2020),
Why would RAID-Z be mandatory for this auto repeair feature? What am I misunderstanding about this process? Does a scrub only detect corruption without being able to fix it, unless your pool is made of RAID-Z vDevs? For what it's worth, I have only ever used mirrored vDevs for my pools.
My assmption so far...
Upon reading the (corrupted) record, if the generated checksum doesn't match the expected checksum, it is marked as a checksum error (i.e, "corrupted"). However, as long as there is some level of redundancy of the underlying devices, an automatic repair is possible, correct? For instance, if it's a mirrored vDev, there's a good copy of the record on the other devices(s), with which ZFS can use to re-write the record on the drive in question.
Yet, according to this blog post by Jody Bruchon (originally written in 2017, updated in 2020),
I strongly advocate for people using what fits their specific needs, and two years ago, there was a strong ZFS fanatical element on r/DataHoarder that was aggressively pushing ZFS as a data integrity panacea that all people should use, but leaving out critical things like RAID-Z being required for automatic repair capabilities.
[...]
If you use ZFS, you have to use RAID-Z, otherwise you will get none of the advertised protection that ZFS offers other than detecting degraded data
[...]
It’s the same exact issue as ZFS without RAID-Z: you have ZFS checksums that can detect an integrity error but you have no way to fix it, so the data is still lost and backups are your only salvation.
[...]
My main point is that a lot of the information kicking around the internet about ZFS is misleading or lacking some critical points, i.e. RAID-Z being a requirement for ZFS automatic self-healing, arguably one of the most severe omissions in most ZFS evangelism, because what good is detecting bit rot if the rotten data is permanently lost anyway?
Why would RAID-Z be mandatory for this auto repeair feature? What am I misunderstanding about this process? Does a scrub only detect corruption without being able to fix it, unless your pool is made of RAID-Z vDevs? For what it's worth, I have only ever used mirrored vDevs for my pools.
Last edited: