Problem with zpool remove of log device
Łukasz Wąsikowski
lukasz at wasikowski.net
Sat Jun 17 20:52:50 UTC 2017
W dniu 2017-06-15 o 13:54, Stephen McKay pisze:
> On Friday, 9th June 2017, lukasz at wasikowski.net wrote:
>
>> W dniu 2017-06-09 o 05:18, Stephen McKay pisze:
>>
>>> while :
>>> do
>>> date > foo
>>> fsync foo
>>> done
>>>
>>> With this running, my system does 600 writes per second to the log
>>> according to zpool iostat. That drops to zero once I kill the script.
>>
>> Zero, so no writes to log are performed during execution of this script.
>
> OK. I believe this means your log is in a "pending removal" state and
> has not been finally removed because ZFS thinks there's still data
> stored on it. I'm happy for true ZFS experts to confirm or deny this
> theory. Anybody?
>
>> I applied this patch to 11.1-PRERELASE, nothing changed. Still zpool
>> remove exits with errcode 0, but log device is still attached to pool.
>
> Thanks for trying this out, but I managed to leave out essential
> information.
>
> In my rush to do things before going away (see above), I didn't read my
> notes on this event. The patch has the safety feature of requiring the
> log to be offline. This means you will have to break the mirror (by
> detaching one disk from it), then offline the remaining disk, and finally,
> trigger the hack by attempting to remove the remaining disk.
>
> When I was stuck in this situation, I had already reduced my log to
> a single disk before discovering the accounting error problem, so I
> don't know if you can activate the patch code without first breaking
> the mirror. I don't think you can offline a mirror. I've not tried.
>
> I've now had time to review my notes (sorry I didn't do that first up).
> My pool had a data mirror-0 (gpt/data0 and gpt/data1) and a log mirror-1
> (gpt/log0 and gpt/log1). The sequence I did, minus most of the failed
> attempts at random stuff, status checks, and so forth, was:
>
> # zpool remove pool mirror-1 #Did nothing but should have worked.
> # zpool detach pool gpt/log1 #Broke the log mirror.
> # zpool remove pool gpt/log0 #Did nothing but should have worked.
> # zpool offline pool gpt/log0 #Just fiddling to change the state.
> # zpool remove pool gpt/log0 #Still nothing.
> ... Discovered plausible hack. Built and booted hacked kernel. ...
> # zpool remove pool gpt/log0 #Glorious success!
>
> So, my log was already down to one offline disk before I got hacky.
> That's why I forgot to mention it.
>
> You could break your mirror or you could modify the hack to remove the
> VDEV_STATE_OFFLINE check. If you have already saved all your important
> data then either would be fine as an experiment.
My tests was done after zpool remove pool mirror-1, zpool detach pool
gpt/log1. I don't remember if I offlined gpt/log0. It's possible that I
haven't done it. Bulit and booted hacked kernel, zpool remove pool
gpt/log0 didn't work.
Unfortunately, lease of this box ended 14.06, I zeroed drives on 13.06 :(
Again, thank you for your help!
--
best regards,
Lukasz Wasikowski
More information about the freebsd-fs
mailing list