ZFS resilver/replace changed vdev names from da(4) to gptid

Nikolay Denev ndenev at gmail.com
Tue Nov 17 04:10:54 UTC 2009


Hello,

Something strange happened while resilvering a 6 disk raidz1 array with one failed drive.
I've initially put the new disk and issued :

  zfs replace tank da1p2

But the resilver process found unrecoverable errors in one snapshot and after resilvering for 7 hours
it still showed da1p2/old and the new da1p2 and shortly after this after issuing another zfs scrub command
the machine livelocked.
The strange thing happened after I rebooted the machine and restarted the zfs scrub.
This time ZFS picked up the new device not by da(4) name, but by gptid, this pass also failed and I was forced to
destroy a snapshot containing the unrecoverable errors and restart the scrub again.
This time it completed normally and the pool is now ONLINE but even more strangely this time it replaced another vdev
with it's gptid, and this is not the vdev that was being resilvered... and now the pool looks like this :

  pool: tank
 state: ONLINE
 scrub: resilver completed after 7h18m with 0 errors on Tue Nov 17 00:16:20 2009
config:

	NAME                                            STATE     READ WRITE CKSUM
	tank                                            ONLINE       0     0     0
	  raidz1                                        ONLINE       0     0     0
	    da0p2                                       ONLINE       0     0     0  4.55G resilvered
	    gptid/b8baba94-d068-11de-a6d5-003048c1b5fa  ONLINE       0     0     0  63.2G resilvered
	    gptid/c00174b1-d068-11de-a6d5-003048c1b5fa  ONLINE       0     0     0  4.55G resilvered
	    da3p2                                       ONLINE       0     0     0  4.21G resilvered
	    da4p2                                       ONLINE       0     0     0  4.55G resilvered
	    da5p2                                       ONLINE       0     0     0  4.21G resilvered

errors: No known data errors


P.S.: This also makes me wonder how I can safely make all of the other vdevs use gptid, as I plan to replace
the SATA controller with a new one that probably is going to export the devices as ad(4) or ada(4).

--
Regards,
Nikolay Denev






More information about the freebsd-fs mailing list