From owner-freebsd-questions@FreeBSD.ORG Tue Nov 23 20:28:11 2010 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EC8D01065670 for ; Tue, 23 Nov 2010 20:28:11 +0000 (UTC) (envelope-from cyberleo@cyberleo.net) Received: from paka.cyberleo.net (paka.cyberleo.net [66.219.31.21]) by mx1.freebsd.org (Postfix) with ESMTP id C27C18FC1A for ; Tue, 23 Nov 2010 20:28:11 +0000 (UTC) Received: from [172.16.44.4] (den.cyberleo.net [66.253.36.39]) by paka.cyberleo.net (Postfix) with ESMTPSA id 77AC728411; Tue, 23 Nov 2010 15:28:10 -0500 (EST) Message-ID: <4CEC23D9.6090600@cyberleo.net> Date: Tue, 23 Nov 2010 14:28:09 -0600 From: CyberLeo Kitsana User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.9) Gecko/20100911 Lightning/1.0b3pre Thunderbird/3.1.3 MIME-Version: 1.0 To: perryh@pluto.rain.com References: <4ce8b7ce.qnD6CCAK8thDasFl%perryh@pluto.rain.com> <4ceb40c8.IB5c12O9ZJa3abeh%perryh@pluto.rain.com> In-Reply-To: <4ceb40c8.IB5c12O9ZJa3abeh%perryh@pluto.rain.com> X-Enigmail-Version: 1.1.1 Content-Type: text/plain; charset=windows-1251 Content-Transfer-Encoding: 7bit Cc: freebsd-questions@freebsd.org, kraduk@gmail.com Subject: Re: a gmirror disappears after adding gjournals to its partitions X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Nov 2010 20:28:12 -0000 On 11/22/2010 10:19 PM, perryh@pluto.rain.com wrote: > krad wrote: >> On 21 November 2010 06:10, wrote: > ... >>> ==== manually-created config files, while still in chroot after install >>> Fixit# cat /boot/loader.conf >>> geom_mirror_load="YES" >>> geom_journal_load="YES" >>> >>> vfs.root.mountfrom="ufs:/dev/mirror/gm0a.journal" >>> vfs.root.mountfrom.options="rw" > ... >>> ==== output from kldstat, after booting the newly-installed system -- >>> ==== and manually mounting the root FS -- showing that geom_mirror.ko >>> ==== did get loaded. >>> Id Refs Address Size Name >>> 1 6 0xc0400000 bb5504 kernel >>> 2 1 0xc0fb6000 14540 geom_journal.ko >>> 3 1 0xc0fcb000 16ed4 geom_mirror.ko > ... >> sounds silly but are you loading the gmirror kernel module via >> loader.conf > > Yes, I'm even setting geom_mirror_load to "YES" before setting > geom_journal_load to "YES" (although I doubt the order of these > settings in loader.conf makes any difference). > > If the kldstat Id numbers are assigned sequentially, it looks as > if geom_journal got loaded first and this may somehow be related > (although I don't entirely see how -- absent geom_mirror to make gm0 > and its partitions visible, I'd think that geom_journal "should not" > be able to find its metadata at all). >From what I've found, this is because there is no taste difference between a bsdlabel on a gmirror and a bsdlabel on a non-mirror. Since both gmirror and gjournal are greedy (they take exclusive access of their parent providers upon successful taste, and not upon exclusive access to their own providers like glabel), the first one to successfully taste and start is the winner; the other will never get to taste those devices. The trick here is to either make the two look different somehow (use a different geom that stores its metadata at the beginning of the provider, instead of the end, thus eliminating ambiguity in the bsdlabel taste), or to make the inner geom avoid the outer devices (hardcode provider names in metadata). Since you have an outer geom that provides a static name, hardcoding the name of the gmirror into the gjournal metadata shouldn't cause anything to break if your disks change places, either. http://pb.cyberleo.net/?show=m7fcbcef7 -- Fuzzy love, -CyberLeo Technical Administrator CyberLeo.Net Webhosting http://www.CyberLeo.Net Furry Peace! - http://wwww.fur.com/peace/