Skip to content
Discussion options

You must be logged in to vote
  1. Normal reads do not read PQR columns if all data columns are available, only scrubs or error recovery do.
  2. Block checksums are calculated on top of RAIDZ, so they don't depend on the PQR details. But blocks storing the block checksums as part of block pointers are obviously also protected by their own PQR (or whatever redundancy is used by vdev where that block is stored).
  3. When ZFS detects block checksum mismatch, it reads all available parity columns and tries to find a combination of them, that would produce a valid block checksum. I don't think it can currently recover situation when all columns have some bit flips in different places, which I guess could possibly be done in some cases…

Replies: 1 comment 3 replies

Comment options

You must be logged in to vote
3 replies
@PPT1063
Comment options

@amotin
Comment options

amotin Jun 25, 2026
Collaborator

@PPT1063
Comment options

Answer selected by PPT1063
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants