1

One of the disks died in zpool so after replacing it and resilvering started, an error message popped up in zfs status -v output.

  pool: backup
 state: ONLINE
status: One or more devices is currently being resilvered.  The pool will
    continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
  scan: resilver in progress since Thu Oct 17 15:41:38 2019
    40.0G scanned out of 2.59T at 24.0M/s, 30h58m to go
    6.67G resilvered, 1.51% done
config:

    NAME                                 STATE     READ WRITE CKSUM
    backup                               ONLINE       0     0     1
      raidz1-0                           ONLINE       0     0     2
        ata-ST3000DM007-1WY10G_WFN0GA7C  ONLINE       0     0     0
        ata-ST3000DM007-1WY10G_WFN0GA32  ONLINE       0     0     0
        ata-ST3000DM007-1WY10G_WFN0G8VM  ONLINE       0     0     0
        ata-ST3000DM007-1WY10G_WFN0G8MJ  ONLINE       0     0     0
        sdb                              ONLINE       0     0     0  (resilvering)
        ata-ST3000DM007-1WY10G_WFN0G7L6  ONLINE       0     0     0

errors: Permanent errors have been detected in the following files:

        <0xb73>:<0x42ced>

So I've googled around and all I've found are errors like mine should actually point to poolname:filename<or>inode but not both values in HEX or whatever it is. Advices on those mentions was to scrub the pool. I will do that as soon as resilvering is finished but could it actually help? Why doesn't it show the pool name like it should? I understand about file name if it's not mentioned that the file was probably deleted, but why doesn't it show the pool name?

This is running on CentOS 7.6.1810, zfs version 0.7.13 from zfs CentOS repo.

1

This can be caused by a large number of things. Believe it or not a memory failure could cause it (by causing a bad checksum). It could be that the file is from a dataset that was previously removed. You could have another failed disk. You could have a bad RAID controller.

You should definitely run a scrub once the resilvering is finished.

Each error indicates only that an error occurred at a given point in time. Each error is not necessarily still present on the system. Under normal circumstances, this is the case. Certain temporary outages might result in data corruption that is automatically repaired after the outage ends. A complete scrub of the pool is guaranteed to examine every active block in the pool, so the error log is reset whenever a scrub finishes. If you determine that the errors are no longer present, and you don't want to wait for a scrub to complete, reset all errors in the pool by using the zpool online command.

https://docs.oracle.com/cd/E19253-01/819-5461/gbbwl/index.html

So if the errors disappear after the scrub they are old and no longer active. If they persist you have an issue that needs attention (likely some sort of hardware failure).
My company has ~9000 servers running ZFS on smartOS and we see this very rarely, but if it's not resolved by replacing the failed disk/scrubbing the pool we usually end up RMAing the chassis/RAID controller/motherboard, etc.

  • Thanks for your answer, greatly appreciated ! On this specific server we didn't use raid controller, but drives are connected directly to MB. It's one of the old Supermicro servers that has both, SATA drives and RAID controller. But anyway, error message disappeared after resilvering was complete. So i don't know should i be alarmed. But the pools shows no errors any more, thank goodness – Marko Todoric Oct 20 '19 at 11:32
  • @MarkoTodoric: Thanks for the update! If the errors disappeared after the scrub it almost certainly means they are no longer relevant. I think you can safely forget about this error at this point. Good luck! – jesse_b Oct 20 '19 at 12:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.