Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Nov 2009 12:09:22 +0100
From:      Arnaud Houdelette <arnaud.houdelette@tzim.net>
To:        Scot Hetzel <swhetzel@gmail.com>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: Can't use gpt labels re-importing pool
Message-ID:  <4B0E61E2.7070509@tzim.net>
In-Reply-To: <790a9fff0911260200kf07d6d2nf7cf9eb9d2c07bcf@mail.gmail.com>
References:  <4B0E3ABA.3030606@tzim.net>	 <790a9fff0911260040i1456d7c0j4f8327d24d2966cf@mail.gmail.com>	 <4B0E43B1.6050802@tzim.net> <790a9fff0911260200kf07d6d2nf7cf9eb9d2c07bcf@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Scot Hetzel wrote:
> On 11/26/09, Arnaud Houdelette <arnaud.houdelette@tzim.net> wrote:
>   
>> Scot Hetzel wrote:
>>
>>     
>>> On 11/26/09, Arnaud Houdelette <arnaud.houdelette@tzim.net> wrote:
>>>
>>>
>>>       
>>>> I just upgraded from 7.2 to 8.0.
>>>>  Under 7.2 the pool was like :
>>>>       NAME           STATE     READ WRITE CKSUM
>>>>       tank           ONLINE       0     0     0
>>>>         raidz1       ONLINE       0     0     0
>>>>           ad6p1     ONLINE       0     0     0
>>>>           ad10p1     ONLINE       0     0     0
>>>>           ad8p1     ONLINE       0     0     0
>>>>           ad4p1  ONLINE       0     0     0
>>>>
>>>>  I'd like to use gpt labels or gptids reimporting the pool.
>>>>  # ls /dev/gpt
>>>>  disk1 disk2 disk3 disk4
>>>>  # ls /dev/gptid
>>>>  0902db4e-d462-11de-96bd-001d923bc7a0
>>>> 9fb111f8-d426-11de-99bc-001d923bc7a0
>>>>  1be29091-d9dc-11de-9f4a-001d923bc7a0
>>>> ffb4e96a-d497-11de-96bd-001d923bc7a0
>>>>
>>>>  I did # zpool import -d /dev/gpt tank
>>>>  and I got
>>>>       tank           ONLINE
>>>>         raidz1       ONLINE
>>>>           ada1p1     ONLINE
>>>>           ada3p1     ONLINE
>>>>           ada2p1     ONLINE
>>>>           gpt/disk4  ONLINE
>>>>
>>>>  Now, how to force zpool import to only use gpt labels (or uuids) ? Or
>>>>         
>> at
>>     
>>>> least get back to coherent situation ( zpool export tank /  zpool import
>>>> gives the same now. and zpool import -d /dev, as zpool import -d
>>>>         
>> /dev/gptid
>>     
>>>> gives nothing ) ?
>>>>
>>>>
>>>>
>>>>         
>>> Use 'zpool replace' to change the zfs pool to use the gpt names:
>>>
>>> zpool replace tank ada1p1 gpt/disk1
>>> zpool replace tank ada2p1 gpt/disk2
>>> zpool replace tank ada3p1 gpt/disk3
>>>
>>> NOTE: make sure you use the correct gpt names for each partition, as
>>> the above assumes that ada1p1 is labeled as disk1.
>>>
>>> Scot
>>>
>>>
>>>       
>>  Mmmh, zpool replace will resilver the drive, won't it ?
>>     
>
> Yes, it will resilver the drive, but it shouldn't take as long as it
> will recognize that it is the same drive.  Just wait for the resilver
> process to finish before changing the next drive.
>
>   
>>  Moreover, I can't use replace as when adaXp1 is used, the corresponding
>> /dev/gpt entry disapears.  Unless you mean that I can use replace before
>> import ?
>>
>>     
>
> There was a discussion about this back in July:
>
> http://lists.freebsd.org/pipermail/freebsd-current/2009-July/009440.html
>
> In that discussion, they had used glabel to label each drive, and then
> use zpool replace on the active pool to change it to use the label.
>
> Just make sure that you use the gpt name that you assigned to ada1p1,
> when replacing it.
>
> Scot
>   
That does not work or there's something I'm doing wrong.
# uname -a
FreeBSD carenath.tzim.net 8.0-RELEASE FreeBSD 8.0-RELEASE #26: Wed Nov 
25 23:43:22 CET 2009     
tzim@carenath.tzim.net:/usr/obj/usr/src/sys/CARENATH  amd64

As I said, the label is not present in /dev/gpt while used with adaXp1 ( 
here ada1p1 has label HD753LJ-1)  :
# ls /dev/gpt
HD753LJ-4 zfs-boot
# zpool replace  tank ada1p1 gpt/HD753LJ-1
cannot open 'gpt/HD753LJ-1': no such GEOM provider

If I offline the drive first, I get another error :
# zpool offline tank ada1p1
# zpool replace tank ada1p1 gpt/HD753LJ-1
invalid vdev specification
use '-f' to override the following errors:
/dev/gpt/HD753LJ-1 is part of active pool 'tank'
# zpool replace -f tank ada1p1 gpt/HD753LJ-1
invalid vdev specification
the following errors must be manually repaired:
/dev/gpt/HD753LJ-1 is part of active pool 'tank'

I know there is the solution of cleaning the disk and resilvering, but 
if I could avoid this ?

Arnaud



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