Bug 231569 - ZFS per-disk status not showing "resilvering" during resilver
Summary: ZFS per-disk status not showing "resilvering" during resilver
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 11.2-RELEASE
Hardware: amd64 Any
: --- Affects Only Me
Assignee: freebsd-fs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-09-21 23:37 UTC by spork
Modified: 2020-07-20 20:58 UTC (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description spork 2018-09-21 23:37:34 UTC
I have some additonal background in the forums if there's any interest:

https://forums.freebsd.org/threads/weird-and-slow-zfs-resilver.67616/

Basically I got confused/worried about a resilver process because the data presented in "zpool status" did not report the correct information.  Narrowing it down, the problem is pretty simple:

In the configuration, where "zpool status" is showing me the warnings regrading mismatched sector size, there is no indication which drives are being resilvered:

[spork@trunk ~]$ zpool status
  pool: zroot
 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 Fri Sep 21 18:33:00 2018
	121M scanned out of 5.90T at 5.48M/s, 313h30m to go
        81.6M resilvered, 0.00% done
config:

	NAME            STATE     READ WRITE CKSUM
	zroot           ONLINE       0     0     0
	  mirror-0      ONLINE       0     0     0
	    gpt/zdisk0  ONLINE       0     0     0  block size: 512B configured, 4096B native
	    gpt/zdisk1  ONLINE       0     0     0  block size: 512B configured, 4096B native
	  mirror-1      ONLINE       0     0     0
	    gpt/zdisk2  ONLINE       0     0     0  block size: 512B configured, 4096B native
	    gpt/zdisk3  ONLINE       0     0     0  block size: 512B configured, 4096B native
	  mirror-3      ONLINE       0     0     0
	    gpt/zdisk5  ONLINE       0     0     0
	    gpt/zdisk4  ONLINE       0     0     0
	logs
	  gpt/zil0      ONLINE       0     0     0

errors: No known data errors

(label to device translation: zdisk0=ada0, zdisk1=ada1, zdisk2=ada2, zdisk3=ada3, zdisk4=ada4, zdisk5=ada5, zil0=da0)

In the above output, the main status line indicates resilvering is in progress.  This is correct - I have just replaced two drives, ada0 and ada3.  gstat shows activity that should mostly confirm that the resilver is in progress:

[spork@trunk ~]$ gstat -pb
dT: 1.009s  w: 1.000s
 L(q)  ops/s    r/s   kBps   ms/r    w/s   kBps   ms/w   %busy Name
    0    205    154   3257    8.0     51    761    0.3   56.8  ada1
    1    228      0      0    0.0    228   3817    0.9   20.6  ada0
    0      0      0      0    0.0      0      0    0.0    0.0  da1
    0    195    152   5740   12.4     43    761    0.3   76.1  ada2
    0    332      0      0    0.0    331   5846    1.0   40.5  ada3
    0     58     15     41    9.2     43    761    0.5    9.4  ada4
    0     55     12     17    8.6     42    761    0.1    7.1  ada5
    0     15      0      0    0.0      7     91    0.5    0.5  da0

As you can see, the "zpool status" output is not indicating which drive(s) are being resilvered.

Any ideas on debugging this?  I've never seen this behavior before.