From owner-freebsd-geom@FreeBSD.ORG Sun Apr 24 16:32:02 2005 Return-Path: Delivered-To: freebsd-geom@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3E2DF16A4CE; Sun, 24 Apr 2005 16:32:02 +0000 (GMT) Received: from gromit.dlib.vt.edu (gromit.dlib.vt.edu [128.173.49.29]) by mx1.FreeBSD.org (Postfix) with ESMTP id C5C2E43D41; Sun, 24 Apr 2005 16:32:01 +0000 (GMT) (envelope-from paul@gromit.dlib.vt.edu) Received: from zappa.Chelsea-Ct.Org (pool-70-110-10-69.roa.east.verizon.net [70.110.10.69]) by gromit.dlib.vt.edu (8.13.3/8.13.3) with ESMTP id j3OGVxMg032981 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sun, 24 Apr 2005 12:32:00 -0400 (EDT) (envelope-from paul@gromit.dlib.vt.edu) Received: from zappa.Chelsea-Ct.Org (localhost.Chelsea-Ct.Org [127.0.0.1]) by zappa.Chelsea-Ct.Org (8.13.3/8.13.3) with ESMTP id j3OGVssg077591 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sun, 24 Apr 2005 12:31:54 -0400 (EDT) (envelope-from paul@gromit.dlib.vt.edu) Received: (from paul@localhost) by zappa.Chelsea-Ct.Org (8.13.3/8.13.3/Submit) id j3OGVsdH077590; Sun, 24 Apr 2005 12:31:54 -0400 (EDT) (envelope-from paul@gromit.dlib.vt.edu) X-Authentication-Warning: zappa.Chelsea-Ct.Org: paul set sender to paul@gromit.dlib.vt.edu using -f From: Paul Mather To: Pawel Jakub Dawidek In-Reply-To: <20050424094148.GZ837@darkness.comp.waw.pl> References: <1114308801.71938.2.camel@zappa.Chelsea-Ct.Org> <20050424094148.GZ837@darkness.comp.waw.pl> Content-Type: text/plain Content-Transfer-Encoding: 7bit Date: Sun, 24 Apr 2005 12:31:53 -0400 Message-Id: <1114360313.77313.14.camel@zappa.Chelsea-Ct.Org> Mime-Version: 1.0 X-Mailer: Evolution 2.2.2 FreeBSD GNOME Team Port cc: freebsd-geom@freebsd.org Subject: Re: Is there a "disconnected" state for geom_mirror providers? X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Apr 2005 16:32:02 -0000 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