Broken gmirror: why /dev/ufs is empty when geom_mirror is not loaded?

Ivan Voras ivoras at freebsd.org
Mon Jan 17 13:31:00 UTC 2011


On 13/01/2011 19:37, Lev Serebryakov wrote:
> Hello, Freebsd-geom.
> You wrote 13 января 2011 г., 18:24:18:
>
>>    I have mirrored PARTITION (/dev/ad4s1d + /dev/ad6s1d) with UFS with
>> label on it. This label is shown in /dev/ufs when geom_mirror is
>> loaded.
>
>>    When geom_mirror is NOT loaded both ad4s1d and ad6s1d are valid,
>> complete, clean filesystems, but here is no /dev/ufs entries for them,
>> and kernel can not mount FSes at all.
>    And even worse: it sees ONE of all FSes and when "geom_mirror" is
>    loaded, it puck up one of components from "/dev/ufs/home" instead of
>    device node and everything hangs up due to loop (?)...

Yes, gmirror and glabel are known to interact badly because of such edge 
cases - since glabel presents the whole underlying device in pretty much 
the same way as the original device entry, gmirror cannot distinguish 
between the two. You could use the "-h" argument to "gmirror create" to 
get around this.

Since this is so common and has also bitten me in the past, I wonder if 
some kind of avoidance detection mechanism could be created in gmirror?

I'm thinking of making glabel expose a GEOM property like "fslabel" 
meaning "this device entry comes from a file system label, not a device 
or native glabel label" and making gmirror search for this property and 
skip tasting for devices having it?

Pawel?



More information about the freebsd-geom mailing list