Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 31 Oct 2006 22:17:18 +0100
From:      Pawel Jakub Dawidek <pjd@FreeBSD.org>
To:        Eric Anderson <anderson@centtech.com>
Cc:        rick-freebsd@kiwi-computer.com, freebsd-geom@freebsd.org
Subject:   Re: burnt again by gmirror
Message-ID:  <20061031211718.GB15861@garage.freebsd.pl>
In-Reply-To: <4547B983.4020802@centtech.com>
References:  <20061031195442.GA55478@keira.kiwi-computer.com> <4547AD9B.5050503@centtech.com> <20061031204659.GA56766@keira.kiwi-computer.com> <4547B983.4020802@centtech.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--IiVenqGWf+H9Y6IX
Content-Type: text/plain; charset=iso-8859-2
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

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 tr=
y  to allocate its=20
> >metadata on ad8 twice.  I don't know why I thought that,   because gmirr=
or would treat the ad8 as a provider and overwrite any previous metadata wh=
en doing a "gmirror=20
> >insert".
> >>gmirror probably kicked it out because of errors?
> >I guess that's what my question was really trying to get at.  What cause=
d  the error, what was the error, and why did gmirror both not recognize ad=
8  and also think there=20
> >was a missing disk.  I guess if it was expecting a    specific ID and ad=
8 no longer had that ID (it got wiped for some odd reason?) it would behave=
 as such.  That explains=20
> >the last question.  The   first two are hard to diagnose w/o dmesg.  :(
>=20
> If the disk has enough trouble, gmirror will kick it out of the mirror an=
d mark it as such.  It won't re-add the disk to the mirror (it still thinks=
 it's a bad drive)=20
> unless you manually force it to (which you did with the forget).  It woul=
dn'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.

--=20
Pawel Jakub Dawidek                       http://www.wheel.pl
pjd@FreeBSD.org                           http://www.FreeBSD.org
FreeBSD committer                         Am I Evil? Yes, I Am!

--IiVenqGWf+H9Y6IX
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.4 (FreeBSD)

iD8DBQFFR71eForvXbEpPzQRAj/YAJ0Ts/fJ+GTJTL3CPt9zNV6WHjLpmgCfS/Oh
8JziUyZledPPYy1CvJqPzK0=
=cs83
-----END PGP SIGNATURE-----

--IiVenqGWf+H9Y6IX--



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