Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 11 Jul 2010 22:59:37 GMT
From:      Stuart Morgan <stuart@stuartmorgan.net>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   amd64/148504: ZFS' zpool does not allow replacing drives to be offlined or removed
Message-ID:  <201007112259.o6BMxbFX016583@www.freebsd.org>
Resent-Message-ID: <201007112300.o6BN0IwZ030804@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         148504
>Category:       amd64
>Synopsis:       ZFS' zpool does not allow replacing drives to be offlined or removed
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-amd64
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jul 11 23:00:18 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Stuart Morgan
>Release:        8.1-PRERELEASE
>Organization:
>Environment:
FreeBSD vault.internal 8.1-PRERELEASE FreeBSD 8.1-PRERELEASE #4: Thu Jul  1 09:47:23 UTC 2010     root@vault.internal:/usr/obj/usr/src/sys/vault  amd64
>Description:
Consider the ZFSv14 array as shown below:

$ zpool status
  pool: vault
 state: DEGRADED
 scrub: none requested
config:

        NAME                       STATE     READ WRITE CKSUM
        vault                      DEGRADED     0     0     0
          mirror                   ONLINE       0     0     0
            da0.eli                ONLINE       0     0     0
            da8.eli                ONLINE       0     0     0
            ad4.eli                ONLINE       0     0     0
          mirror                   DEGRADED     0     0     0
            da1.eli                ONLINE       0     0     0
            replacing              UNAVAIL      0 32.0K     0  insufficient replicas
              176228571956779269   UNAVAIL      0 34.6K     0  was /dev/ad6.eli
              1650754158582652028  UNAVAIL      0 34.6K     0  was /dev/da99.eli
            da9.eli                ONLINE       0     0     0

errors: No known data errors


It is not possible to remove 176228571956779269 and 1650754158582652028.

[root@vault ~]# zpool offline vault 176228571956779269
zcannot offline 176228571956779269: no valid replicas
[root@vault ~]# zpool offline vault 1650754158582652028
cannot offline 1650754158582652028: no valid replicas

Other combinations of detach, replace etc do not work either. The problem seems to be that the zpool binary will not remove a replacing drive when the replacement drive is removed or cannot complete the replacement operation.

Output of zdb:

vault
    version=14
    name='vault'
    state=0
    txg=174072
    pool_guid=14228437791114878229
    hostid=4269824854
    hostname='vault.internal'
    vdev_tree
        type='root'
        id=0
        guid=14228437791114878229
        children[0]
                type='mirror'
                id=0
                guid=15203813302661836458
                metaslab_array=23
                metaslab_shift=34
                ashift=12
                asize=2000394125312
                is_log=0
                children[0]
                        type='disk'
                        id=0
                        guid=7238937831460639650
                        path='/dev/da0.eli'
                        whole_disk=0
                        DTL=51
                children[1]
                        type='disk'
                        id=1
                        guid=14125934351009663627
                        path='/dev/da8.eli'
                        whole_disk=0
                        DTL=53
                children[2]
                        type='disk'
                        id=2
                        guid=8553277371515810839
                        path='/dev/ad4.eli'
                        whole_disk=0
                        DTL=169
        children[1]
                type='mirror'
                id=1
                guid=14672070090293526603
                metaslab_array=118
                metaslab_shift=34
                ashift=12
                asize=2000394125312
                is_log=0
                children[0]
                        type='disk'
                        id=0
                        guid=4020825290461516758
                        path='/dev/da1.eli'
                        whole_disk=0
                        DTL=123
                children[1]
                        type='replacing'
                        id=1
                        guid=496235429895718168
                        whole_disk=0
                        children[0]
                                type='disk'
                                id=0
                                guid=176228571956779269
                                path='/dev/ad6.eli'
                                whole_disk=0
                                not_present=1
                                DTL=54
                        children[1]
                                type='disk'
                                id=1
                                guid=1650754158582652028
                                path='/dev/da99.eli'
                                whole_disk=0
                                not_present=1
                                DTL=168
                children[2]
                        type='disk'
                        id=2
                        guid=5694121814811722857
                        path='/dev/da9.eli'
                        whole_disk=0
                        DTL=120

>How-To-Repeat:
1) Create a pool
2) Create 2 mirrored vdevs
3) Replace one of the devices with another
4) Interrupt the replacement process so that both devices are now unavailable
5) Run zpool status and attempt to remove them.
>Fix:
N/A

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201007112259.o6BMxbFX016583>