Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Zfs Pool Status

Featured Replies

HI all,
Happy New Year!

I see this message under the disks tab

pool: disk2

state: ONLINE

status: One or more devices has experienced an error resulting in data

corruption. Applications may be affected.

action: Restore the file in question if possible. Otherwise restore the

entire pool from backup.

see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-8A

config:

NAME STATE READ WRITE CKSUM

disk2 ONLINE 0 0 0

md2p1 ONLINE 0 0 28

errors: 35 data errors, use '-v' for a list

I did a -v and checked the files it says are damaged - the files work fine.


There is a button saying SCRUB - what does it do?

What should I do at this point?

Thank you

Daytona

Solved by bmartino1

  • Community Expert
  • Solution

This is a very common ZFS situation, and the wording of the message is scarier than what’s usually going on....

From your output:

state: ONLINE
status: One or more devices has experienced an error resulting in data corruption.
...
md2p1 ONLINE 0 0 28
errors: 35 data errors

Key facts:

  • The pool is ONLINE

  • There are no read or write errors

  • There are checksum (CKSUM) errors

  • ZFS detected 35 blocks whose checksums did not match

  • ZFS cannot silently fix them because this is a single-disk pool

This is detection, not failure — and ZFS is doing exactly what it is supposed to do.

Why the files “work fine”

ZFS errors are block-level, not file-level.

That means:

  • A corrupted block might be:

    • unused padding

    • metadata that isn’t currently read

    • part of a compressed block that still decompresses

    • part of a file that hasn’t been touched yet

  • Many apps do not notice minor corruption immediately

  • ZFS never guesses — if a checksum mismatches, it records it permanently

So “the file opens” ≠ “the data is correct”.

ZFS is more strict than most filesystems — that’s a feature.

What the SCRUB button does (important)

A scrub:

  • Reads every block in the pool

  • Verifies every checksum

  • If redundancy exists (mirror / RAID-Z):

    • Automatically repairs bad blocks

  • If redundancy does NOT exist (single disk):

    • Confirms and logs corruption

    • Cannot repair

A scrub does not:

  • delete data

  • rewrite files

  • fix corruption without redundancy

Think of scrub as a full audit, not a repair tool.

What you should do — step by step

*Run a scrub (yes, press the button)

Or from CLI:

zpool scrub disk2

Check progress:

zpool status disk2

This confirms:

  • whether the error count increases

  • whether corruption is stable or ongoing

  • As you may have a bad disk inteh zfs setup that needs replaced...

List exactly which files ZFS thinks are bad

You already ran -v, but for completeness:

zpool status -v disk2

You’ll see paths like:

/mnt/disk2/some/path/file.ext

If the same files reappear after scrub → confirmed corruption.

If the files are non-critical

If you don’t care about those files:

rm /mnt/disk2/path/to/file
zpool clear disk2

Then scrub again.

This often resolves the warning permanently.

If the files matter

ZFS cannot repair without redundancy.

Your options are:

  • Restore the affected files from backup

  • Re-copy them from a known good source

  • If unsure → delete and re-ingest

After replacement:

zpool clear disk2
zpool scrub disk2

What zpool clear actually does

zpool clear disk2

This:

  • clears the error counters

  • does not erase history

  • does not hide future errors

  • is safe to run after addressing the cause

If corruption still exists, it will reappear.

Important diagnostic checks (do these)

*SMART check (very important)

smartctl -a /dev/sdX

Look for:

  • Reallocated sectors

  • Pending sectors

  • CRC errors

  • Read errors

Checksum errors often come from:

  • marginal sectors

  • bad SATA cables

  • power instability

  • RAM errors (ECC strongly recommended)

see openzfs docs:
https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-8A/

more info on the scrub:
https://openzfs.github.io/openzfs-docs/man/v2.4/8/zpool-scrub.8.html

Bottom line

  • SCRUB = full integrity scan

  • Single-disk ZFS cannot repair, only detect

  • “Files work” does not mean “no corruption”

  • ZFS is behaving correctly

  • This is not panic-level unless errors grow

  • Potential bad disk needs replacement

  • Community Expert

ultimately this tells me that you set a zfs in the unriad array where zfs should be added to unraid as pool devices.

image.png

as you don't have parity, zfs nor a good setup fo zfs implementations on unraid...

  • Community Expert

Good idea to run memtest, since that's the #1 reason for data corruption.

  • Author

Thanks folks Appreciate all the help.
Shall run memtest as well.

I had the old XFS file system and converted to ZFS one disk at a time. Had no idea I should have done some other stuff.
Can someone please point me to the best practice when using ZFS?

I have a 2 parity drive UNRAID Version 6.12.4 2023-08-31 with 13 data drives.
image.png

  • Community Expert
9 hours ago, daytona235 said:

Can someone please point me to the best practice when using ZFS?

Nothing extra typically needs to be done; you can scrub the disks to confirm all is good, but that should only be needed if there are sync errors after doing a parity check.

  • Community Expert

so this is wrong.
image.png

if all theses 12 disks (2 parity) ... each disk made there own zfs zpool with 1 disk. you lose all the zfs benefits such as rad z mirroring, raidz 1 (equivalent to raid 5 miror and parity stripe)
parity done't fuction as it should when the disk is lost.

usualy you would pare mutiple disk togetr in a zpool 3 disk min to make a raidz1 which strip[es for speed and mirors for redundacny/protection. you can lose 1 disk and still maintain all your data.
or do a raidz2 same strip and mirror, but cand lose 2 disk and keep all your data. (min of 5 disks)

see the zfs docs:
https://docs.unraid.net/unraid-os/advanced-configurations/optimize-storage/zfs-storage/

and a few youtube videos:
https://www.youtube.com/watch?v=XQC6lXOXGT4
https://www.youtube.com/watch?v=UR5RCItyCsw

and forum post:

  • Community Expert

I highly recommend fixing your storage by pulling 3 disk of equivalent size and making a zfs raidz1 reformatting them to make a zfs pool

the hybrid approach ( the setup your currently using)

*The hybrid ZFS-in-array approach is helpful for specific backup or replication scenarios but is not a replacement for a full ZFS pool. ZFS disks in the array are managed individually; you do not get the combined performance, redundancy, or self-healing of a true multi-disk ZFS pool. For full ZFS functionality, always use dedicated ZFS pools.

https://unraid.net/blog/zfs-guide?srsltid=AfmBOor7XJrR8tcD76hGK2pYvWyDKAUcGg1gvI3YkL3jsHH2N01zatXq

Edited by bmartino1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.