Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 8 Oct 2010 00:21:54 +0200
From:      Hywel Mallett <hywel@hmallett.co.uk>
To:        Carl <k0802647@telus.net>
Cc:        "freebsd-fs@freebsd.org" <freebsd-fs@freebsd.org>
Subject:   Re: Should gmirrored gjournal provider have auto-synchronization?
Message-ID:  <4813F683-1FF0-4DC4-9BC0-A512258C81CA@hmallett.co.uk>
In-Reply-To: <4CAD6A44.8010707@telus.net>
References:  <4CAD6A44.8010707@telus.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 7 Oct 2010, at 08:35, Carl <k0802647@telus.net> wrote:

> Suppose I've used a pair of drives laid out with GPT partitions to create a=
 mirror. Actually, this situation requires that individual partitions be mir=
rored instead of the whole drive. Then suppose one of these partitions is to=
 be gjournaled, but with separate data and journal providers. The separate j=
ournal provider will be in another partition.
>=20
> I believe I should gmirror the journal provider partition just as I did th=
e data provider partition. Correct me if this is wrong.

I would gmirror the journal. If it "goes away" unexpectedly, that won't be g=
ood for gjournal. I assume it'll panic.=20

> Then, should I be enabling or disabling auto-synchronization for the mirro=
red journal provider partition? It is clear to me that it should be disabled=
 for the mirrored data provider partition because the journaling will ensure=
 data consistency, but is the content of the journal provider itself guarant=
eed consistent under all circumstances?

That's an interesting question. I think you're correct that you should be ab=
le to disable auto-sync for the data slice, provided that gmirror returns a w=
rite as succeeded only when it has been written to both parts of the mirror.=
 If not, then you could theoretically end up with a situation where data has=
 only been written to one half of the mirror, but the write has been returne=
d as successful, and gjournal won't re-write the data, which would leave you=
 with an unsynchronized mirror.=20
With gmirror, when you say "guaranteed consistent", you may need to qualify t=
hat more. gmirror guarantees that a collection of writes either happens in i=
t's entirety, or not at all. If you have for example an msdosfs on top of th=
is, there's no guarantee of consistency anyway. With ufs + softupdates, it s=
hould guarantee consistency anyway, but the journal allows certain operation=
s to be shortcutted.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4813F683-1FF0-4DC4-9BC0-A512258C81CA>