ZFS raidz device replacement problem

Barry Pederson bp at barryp.org
Sat Apr 14 04:06:39 UTC 2007


I've been playing with ZFS (awesome stuff, thanks PJD) and noticed 
something funny when replacing a device under a raidz pool.  It seems 
that even though ZFS says resilvering is complete, you still need to 
manually do a "zpool scrub" to really get the pool into a good state.

 From what I've read in the "Solaris ZFS Administration Guide", it 
doesn't seem that that step should be required.  Is there some kind of 
auto-scrub being missed?

I've tried to show this below with some md devices, creating 4 of them, 
putting 3 into a raidz and then replacing one.  This is with a world and 
kernel csupped and built earlier today (2007-04-13)


-------------------
# truncate -s 128m /tmp/foo0
# truncate -s 128m /tmp/foo1
# truncate -s 128m /tmp/foo2
# truncate -s 128m /tmp/foo3

# mdconfig -a -t vnode -f /tmp/foo0
md0

# mdconfig -a -t vnode -f /tmp/foo1
md1

# mdconfig -a -t vnode -f /tmp/foo2
md2

# mdconfig -a -t vnode -f /tmp/foo3
md3

# zpool create mypool raidz md0 md1 md2

# zpool status mypool
   pool: mypool
  state: ONLINE
  scrub: none requested
config:

         NAME        STATE     READ WRITE CKSUM
         mypool      ONLINE       0     0     0
           raidz1    ONLINE       0     0     0
             md0     ONLINE       0     0     0
             md1     ONLINE       0     0     0
             md2     ONLINE       0     0     0

errors: No known data errors

# zpool replace mypool md2 md3

# zpool status mypool
   pool: mypool
  state: ONLINE
  scrub: resilver completed with 0 errors on Fri Apr 13 22:43:19 2007
config:

         NAME           STATE     READ WRITE CKSUM
         mypool         ONLINE       0     0     0
           raidz1       ONLINE       0     0     0
             md0        ONLINE       0     0     0
             md1        ONLINE       0     0     0
             replacing  ONLINE       0     0     0
               md2      ONLINE       0     0     0
               md3      ONLINE       0     0     0

errors: No known data errors


# zpool status mypool
   pool: mypool
  state: ONLINE
  scrub: resilver completed with 0 errors on Fri Apr 13 22:43:19 2007
config:

         NAME        STATE     READ WRITE CKSUM
         mypool      ONLINE       0     0     0
           raidz1    ONLINE       0     0     0
             md0     ONLINE       0     0     0
             md1     ONLINE       0     0     0
             md3     ONLINE       0     0     0

errors: No known data errors

# zpool scrub mypool

# zpool status mypool
   pool: mypool
  state: ONLINE
status: One or more devices has experienced an unrecoverable error.  An
         attempt was made to correct the error.  Applications are 
unaffected.
action: Determine if the device needs to be replaced, and clear the errors
         using 'zpool clear' or replace the device with 'zpool replace'.
    see: http://www.sun.com/msg/ZFS-8000-9P
  scrub: scrub completed with 0 errors on Fri Apr 13 22:43:46 2007
config:

         NAME        STATE     READ WRITE CKSUM
         mypool      ONLINE       0     0     0
           raidz1    ONLINE       0     0     0
             md0     ONLINE       0     0     0
             md1     ONLINE       0     0     0
             md3     ONLINE       0     0     5

errors: No known data errors
--------------------------------

	Barry


More information about the freebsd-fs mailing list