zfs: affected by geom_(mbr|bsd) => geom_part_(mbr|bsd) ?
Andriy Gapon
avg at icyb.net.ua
Wed Nov 26 13:22:48 PST 2008
on 18/11/2008 21:49 Marcel Moolenaar said the following:
>
> On Nov 18, 2008, at 9:29 AM, Andriy Gapon wrote:
>
>> I just remembered that I saved old zpool.cache file before "migrating"
>> the pool.
>> I looked at the diff of hexdumps and there are a number of differences,
>> it's hard to understand them because the file is binary (actually it
>> seems to contain serialized name-value pairs), but one difference is
>> prominent:
>> ...
>> 00000260 64 65 76 69 64 00 00 00 00 00 00 09 00 00 00 01
>> |devid...........|
>> ...
>> -00000270 00 00 00 15 61 64 3a 47 45 41 35 33 34 52 46 30
>> |....ad:GEA534RF0|
>> -00000280 54 4b 33 35 41 73 31 73 33 00 00 00 00 00 00 28
>> |TK35As1s3......(|
>> ...
>> +00000270 00 00 00 11 61 64 3a 47 45 41 35 33 34 52 46 30
>> |....ad:GEA534RF0|
>> +00000280 54 4b 33 35 41 00 00 00 00 00 00 28 00 00 00 28
>> |TK35A......(...(|
>> ...
>>
>> It looks like old "devid" value is "ad:GEA534RF0TK35As1s3" and new one
>> is "ad:GEA534RF0TK35A". Just a reminder: actual zpool device is ad6s2d.
>>
>> The new value is what is reported by diskinfo:
>> $ diskinfo -v ad6
>> ad6
>> ...
>> ad:GEA534RF0TK35A # Disk ident.
>>
>> $ diskinfo -v ad6s2
>> ad6s2
>> ...
>> ad:GEA534RF0TK35A # Disk ident.
>>
>> $ diskinfo -v ad6s2d
>> ad6s2d
>> ...
>> ad:GEA534RF0TK35A # Disk ident.
>>
>> Hmm, "indent" is reported to be the same for all three entities.
>>
>> I don't remember what diskinfo reported with pre-gpart kernel, but I
>> suspect that it was something different.
>> Could anybody please check this? (on 7.X machine without GEOM_PART).
>>
>> I quickly glimpsed through sources and it seems that this comes from
>> DIOCGIDENT GEOM ioctl i.e. "GEOM::ident" attribute. It seems that
>> geom_slice.c code has some special handling for that.
>
> Interesting. Can you try the attached patch to GPart:
>
Marcel,
unfortunately the patch caused a panic.
Unfortunately, again, I wasn't able to catch a proper dump, but I
remembered that the panic was in g_part_done+0x16.
In general, I am not sure if anything is really needed in this direction.
First, I think that pjd has recently committed changes to trunk ZFS, so
that it doesn't need device ids anymore and uses some metadata in the
devices.
Second, there is a migration path that I used - export/import of a pool.
So unless this detail of backward compatibility is really needed
somewhere else...
--
Andriy Gapon
More information about the freebsd-fs
mailing list