Problem with zpool remove of log device

Freddie Cash fjwcash at gmail.com
Fri May 26 15:36:23 UTC 2017


On Fri, May 26, 2017 at 4:10 AM, Łukasz Wąsikowski <lukasz at wasikowski.net>
wrote:

> W dniu 2017-05-26 o 12:46, Karli Sjöberg pisze:
> >
> >
> > Den 26 maj 2017 12:43 em skrev Łukasz Wąsikowski <lukasz at wasikowski.net
> >:
> >
> >     W dniu 2017-05-26 o 12:37, Karli Sjöberg pisze:
> >
> >     > Den 26 maj 2017 12:30 em skrev Łukasz Wąsikowski :
> >     >
> >     > W dniu 2017-05-26 o 12:20, Karli Sjöberg pisze:
> >     > >
> >     > >
> >     > > Den 26 maj 2017 11:47 fm skrev Łukasz Wąsikowski :
> >     > >
> >     > > Hi,
> >     > >
> >     > > I cant remove log device from pool - operation ends ok, but log
> >     device
> >     > > is still in the pool (bug?).
> >     > >
> >     > > # uname -a
> >     > > FreeBSD xxx.yyy.com 11.0-STABLE FreeBSD 11.0-STABLE #0 r316543:
> >     > Thu Apr
> >     > > 6 08:22:43 CEST 2017 root at xxx.yyy.com:/usr/obj/usr/src/sys/YYY
> amd64
> >     > >
> >     > > # zpool status tank
> >     > > pool: tank
> >     > > state: ONLINE
> >     > > status: One or more devices are configured to use a non-native
> block
> >     > > size.
> >     > > Expect reduced performance.
> >     > > action: Replace affected devices with devices that support the
> >     > > configured block size, or migrate data to a properly configured
> >     > > pool.
> >     > > scan: scrub repaired 0 in 22h21m with 0 errors on Thu May 25
> >     > > 02:26:36 2017
> >     > > config:
> >     > >
> >     > > NAME STATE READ WRITE CKSUM
> >     > > tank ONLINE 0 0 0
> >     > > mirror-0 ONLINE 0 0 0
> >     > > ada2p3 ONLINE 0 0 0
> >     > > ada3p3 ONLINE 0 0 0
> >     > > logs
> >     > > mirror-1 ONLINE 0 0 0
> >     > > gpt/tankssdzil0 ONLINE 0 0 0 block size:
> >     > > 512B configured, 4096B native
> >     > > gpt/tankssdzil1 ONLINE 0 0 0 block size:
> >     > > 512B configured, 4096B native
> >     > >
> >     > > errors: No known data errors
> >     > >
> >     > > When I try to remove log device operation ends without errors:
> >     > >
> >     > > # zpool remove tank mirror-1; echo $?
> >     > > 0
> >     > >
> >     > >
> >     > > You are missing the actual disk you want to remove from the
> mirror:
> >     > > # zpool remove tank gpt/tankssdzil1
> >     >
> >     > # zpool remove tank gpt/tankssdzil0
> >     > cannot remove gpt/tankssdzil0: operation not supported on this type
> >     > of pool
> >     >
> >     >
> >     > Yeah, that's because you're booting off of it right? Boot from CD
> or
> >     > whatev, should work. Or if it was the "bootfs" zpool option, can't
> >     > remember, but it's something along those lines. Really silly, but
> >     anyway...
> >
> >     Yes, it's root-on-zfs. But as I said on other box with similar
> >     configuration it works. Strange.
> >
> >     It's production box so boot from CD is not an easy option. I'll
> check it
> >     during next service window. Thank you for your help.
> >
> >
> > AFAIR you just need to null the bootfs zpool option, remove the log disk
> > and then reset bootfs to what it was before.
>
> No luck.
>
> # zpool get bootfs
> NAME       PROPERTY  VALUE          SOURCE
> tank       bootfs    tank/ROOTFS    local
> tankssd    bootfs    -              default
>
> # zpool set bootfs='' tank
>
> # zpool get bootfs tank
> NAME    PROPERTY  VALUE   SOURCE
> tank    bootfs    -       default
>
> # zpool remove tank mirror-1; echo $?
> 0
>
> # zpool status tank
>   pool: tank
>  state: ONLINE
> status: One or more devices are configured to use a non-native block size.
>         Expect reduced performance.
> action: Replace affected devices with devices that support the
>         configured block size, or migrate data to a properly configured
>         pool.
>   scan: scrub repaired 0 in 22h21m with 0 errors on Thu May 25 02:26:36
> 2017
> config:
>
>         NAME                   STATE     READ WRITE CKSUM
>         tank                 ONLINE       0     0     0
>           mirror-0             ONLINE       0     0     0
>             ada2p3             ONLINE       0     0     0
>             ada3p3             ONLINE       0     0     0
>         logs
>           mirror-1             ONLINE       0     0     0
>             gpt/tankssdzil0  ONLINE       0     0     0  block size:
> 512B configured, 4096B native
>             gpt/tankssdzil1  ONLINE       0     0     0  block size:
> 512B configured, 4096B native
>
> errors: No known data errors
>
>
> # zpool remove tank gpt/tankssdzil0; echo $?
> cannot remove gpt/tankssdzil0: operation not supported on this type of pool
> 1
>

​You have your log devices in a mirror vdev.  First you need to "break" the
mirror:

# zpool detach tank ​gpt/tankssdzil1

That will make the log vdev into a single-disk vdev, and then you can
remove it:

# zpool remove tank ​gpt/tankssdzil0

After that, you should be able to re-enable the bootfs option and reboot to
make sure everything is still working.

-- 
Freddie Cash
fjwcash at gmail.com


More information about the freebsd-fs mailing list