Degraded zpool cannot detach old/bad drive
jhell at DataIX.net
Sun Nov 7 04:00:02 UTC 2010
On 10/31/2010 15:53, Rumen Telbizov wrote:
> Hi Artem, everyone,
> Here's the latest update on my case.
> I did upgrade the system to the latest stable: 8.1-STABLE FreeBSD 8.1-STABLE
> #0: Sun Oct 31 11:44:06 PDT 2010
> After that I did zpool upgrade and zfs upgrade -r all the filesystems.
> Currently I am running zpool 15 and zfs 4.
> Everything went fine with the upgrade but unfortunately my problem still
> persists. There's no difference in this aspect.
> I still have mfid devices. I also tried chmod-ing as you suggested /dev/mfid
> devices but zfs/zpool didn't seem to care and imported
> the array regardless.
> So at this point since no one else seems to have any ideas and we seem to be
> stuck I am almost ready to declare defeat on this one.
> Although the pool is usable I couldn't bring it back to exactly the same
> state as it was before the disk replacements took place.
> Disappointing indeed, although not a complete show stopper.
> I still think that if there's a way to edit the cache file and change the
> devices that might do the trick.
> Thanks for all the help,
> Rumen Telbizov
> On Fri, Oct 29, 2010 at 5:01 PM, Artem Belevich <fbsdlist at src.cx> wrote:
>> On Fri, Oct 29, 2010 at 4:42 PM, Rumen Telbizov <telbizov at gmail.com>
>>> FreeBSD 8.1-STABLE #0: Sun Sep 5 00:22:45 PDT 2010
>>> That's when I csuped and rebuilt world/kernel.
>> There were a lot of ZFS-related MFCs since then. I'd suggest updating
>> to the most recent -stable and try again.
>> I've got another idea that may or may not work. Assuming that GPT
>> labels disappear because zpool opens one of the /dev/mfid* devices,
>> you can try to do "chmod a-rw /dev/mfid*" on them and then try
>> importing the pool again.
The problem seems to be that its just finding the actual disk before it
finds the GPT labels. You should be able to export the pool and then
re-import the pool after hiding the disks that it is finding via
Try adding something like (WARNING: This will hide all devices mfi)
add path 'mfi*' hide
To your devfs ruleset before re-importing the pool and that should make
ZFS go wondering around /dev enough to find the appropriate GPT label
for the disk it is trying to locate.
It would seem to me that using '-d' in this case would not be effective
as ZFS would be looking for 'gpt/LABEL' within /dev/gpt/ if memory
serves correctly, and obviously path /dev/gpt/gpt/ would not exist. Also
even if it did find the correct gpt label then it would be assuming its
at a /dev path and not /dev/gpt/* and would fall back to finding the mfi
devices after the next boot again.
More information about the freebsd-stable