From owner-freebsd-geom@FreeBSD.ORG Mon Jan 17 13:39:26 2011 Return-Path: Delivered-To: freebsd-geom@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0DAF1106564A for ; Mon, 17 Jan 2011 13:39:26 +0000 (UTC) (envelope-from lev@serebryakov.spb.ru) Received: from ftp.translate.ru (ftp.translate.ru [80.249.188.42]) by mx1.freebsd.org (Postfix) with ESMTP id BCCAC8FC08 for ; Mon, 17 Jan 2011 13:39:25 +0000 (UTC) Received: from lion.home.serebryakov.spb.ru (89.112.15.178.pppoe.eltel.net [89.112.15.178]) (Authenticated sender: lev@serebryakov.spb.ru) by ftp.translate.ru (Postfix) with ESMTPA id 2B3B813DF5F; Mon, 17 Jan 2011 16:39:24 +0300 (MSK) Date: Mon, 17 Jan 2011 16:39:22 +0300 From: Lev Serebryakov X-Priority: 3 (Normal) Message-ID: <234432652.20110117163922@serebryakov.spb.ru> To: Ivan Voras In-Reply-To: References: <1686083494.20110113182418@serebryakov.spb.ru> <1811347380.20110113213700@serebryakov.spb.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Cc: freebsd-geom@freebsd.org Subject: Re: Broken gmirror: why /dev/ufs is empty when geom_mirror is not loaded? X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Jan 2011 13:39:26 -0000 Hello, Ivan. You wrote 17 =D1=8F=D0=BD=D0=B2=D0=B0=D1=80=D1=8F 2011 =D0=B3., 16:30:43: >>> I have mirrored PARTITION (/dev/ad4s1d + /dev/ad6s1d) with UFS with >>> label on it. This label is shown in /dev/ufs when geom_mirror is >>> loaded. >> >>> When geom_mirror is NOT loaded both ad4s1d and ad6s1d are valid, >>> complete, clean filesystems, but here is no /dev/ufs entries for them, >>> and kernel can not mount FSes at all. >> And even worse: it sees ONE of all FSes and when "geom_mirror" is >> loaded, it puck up one of components from "/dev/ufs/home" instead of >> device node and everything hangs up due to loop (?)... > Yes, gmirror and glabel are known to interact badly because of such edge > cases - since glabel presents the whole underlying device in pretty much > the same way as the original device entry, gmirror cannot distinguish=20 > between the two. You could use the "-h" argument to "gmirror create" to > get around this. > Since this is so common and has also bitten me in the past, I wonder if > some kind of avoidance detection mechanism could be created in gmirror? I think, it will be better if geom_label will create ufs/ufsid items always (even if FS size is smaller that it's container (provider) size), but create providers only as big as FS itself. It this case geom_mirror will never see its metadata inside "UFS-based" providers and geom_label will show FS labels even it it inside mirror when geom_mirror is not loaded at all. Both problems are solved with one solution :) --=20 // Black Lion AKA Lev Serebryakov