Date: Sun, 24 Apr 2005 12:31:53 -0400 From: Paul Mather <paul@gromit.dlib.vt.edu> To: Pawel Jakub Dawidek <pjd@freebsd.org> Cc: freebsd-geom@freebsd.org Subject: Re: Is there a "disconnected" state for geom_mirror providers? Message-ID: <1114360313.77313.14.camel@zappa.Chelsea-Ct.Org> In-Reply-To: <20050424094148.GZ837@darkness.comp.waw.pl> References: <1114308801.71938.2.camel@zappa.Chelsea-Ct.Org> <20050424094148.GZ837@darkness.comp.waw.pl>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 2005-04-24 at 11:41 +0200, Pawel Jakub Dawidek wrote: > On Sat, Apr 23, 2005 at 10:13:21PM -0400, Paul Mather wrote: > +> The provider ad0 did not show up as a "stale" provider of my "raid1" > +> mirror (from which it had disappeared when it was detached due to the > +> "TIMEOUT - WRITE_DMA" failure). I had to do a "gmirror forget raid1" > +> before a "gmirror insert raid1 ad0" would allow me to re-insert it so I > +> could perform a "gmirror rebuild raid1 ad0" to kick off synchronisation. > +> > +> What is the definition of a "broken" component? What is the difference > +> between a "stale" and a "broken" component? > > If gmirror gets an error for READ or WRITE operation, it assumes provider > is broken. This is very important - if it will be marked only as stale, > it will be connected, resynchronization will start, but because there > was an error on provider, it probably will be disconnected again and we > have endless loop. I guess it depends on what caused the disconnection in the first place. If it was a READ of a bad sector, it could be that subsequent resynchronisation will force a block reallocation of the bad block and the drive will no longer be "broken." > Stale provider is when it is hot-plug and you remove it; when you use > 'deactivate' command to disconnect it; when it doesn't show up on mirror > start, but later. > > The rule is simple: when an error was returned on I/O operation, provider > is marked as broken. Thanks for the clarification. That makes sense. I just need to remember "gmirror forget" before I attempt to add back in the disk in my "TIMEOUT - WRITE_DMA" not-really-broken broken disk case. :-) The shame about it being deleted from the mirror as opposed to marked as "broken" is you lose info (shown in "gmirror list") about the broken component priority, etc., which is useful for when you add a replacement device (or re-add the same one, as in my case). If you marked a component as "broken" (but still listed as part of the mirror), you could add a "-f" option to "gmirror rebuild" to force rebuilding onto it a la RAIDframe. :-) Cheers, Paul. -- e-mail: paul@gromit.dlib.vt.edu "Without music to decorate it, time is just a bunch of boring production deadlines or dates by which bills must be paid." --- Frank Vincent Zappa
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1114360313.77313.14.camel>