burnt again by gmirror

Pawel Jakub Dawidek pjd at FreeBSD.org
Tue Oct 31 21:17:30 UTC 2006


On Tue, Oct 31, 2006 at 03:00:51PM -0600, Eric Anderson wrote:
> On 10/31/06 14:46, Rick C. Petty wrote:
> >On Tue, Oct 31, 2006 at 02:10:03PM -0600, Eric Anderson wrote:
> >>You probably need to do a gmirror forget, then a gmirror remove (on
> >>ad8), then re-insert it.
> >The forget seemed to fix it.  FYI:
> ># gmirror remove gm0 ad8
> >No such provider: ad8.
> >I'm not sure if that step was even necessary.  At least now both ad4 and   ad8 are listed and are of the same size.  I was worried gmirror would try  to allocate its 
> >metadata on ad8 twice.  I don't know why I thought that,   because gmirror would treat the ad8 as a provider and overwrite any previous metadata when doing a "gmirror 
> >insert".
> >>gmirror probably kicked it out because of errors?
> >I guess that's what my question was really trying to get at.  What caused  the error, what was the error, and why did gmirror both not recognize ad8  and also think there 
> >was a missing disk.  I guess if it was expecting a    specific ID and ad8 no longer had that ID (it got wiped for some odd reason?) it would behave as such.  That explains 
> >the last question.  The   first two are hard to diagnose w/o dmesg.  :(
> 
> If the disk has enough trouble, gmirror will kick it out of the mirror and mark it as such.  It won't re-add the disk to the mirror (it still thinks it's a bad drive) 
> unless you manually force it to (which you did with the forget).  It wouldn't let you insert it, because it was already known to the mirror.

It wasn't exactly known to the mirror...
Imagine a situation where you have a mirror out of 2 components. One of
them is not on-line, but you want to create 3-way mirror by adding yet
another component. gmirror won't allow for this, because it has to store
information about the total number of components in all components
metadata. That's why you cannot insert a new component when device is in
degraded mode. Running 'gmirror forget' tells gmirror to forget about
not connected components, because they won't reappear.

I should probably implement an alias for 'forget+insert' called
'replace', but it's quite risky.

-- 
Pawel Jakub Dawidek                       http://www.wheel.pl
pjd at FreeBSD.org                           http://www.FreeBSD.org
FreeBSD committer                         Am I Evil? Yes, I Am!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-geom/attachments/20061031/7107954e/attachment.pgp


More information about the freebsd-geom mailing list