gmirror + ggate

Pawel Jakub Dawidek pjd at
Fri Jan 27 00:55:56 PST 2006

On Thu, Jan 26, 2006 at 06:47:06PM -0800, Gustavo A. Baratto wrote:
+> Thanks for the links Ivan...
+> They answered some of my questions, but mostly they don't really describe what I wanna do, because they mostly refer to more than one client mounting a gmirrored+ggated 
+> device.  I want just one server to mount a gmirrored device, exported from two different boxes through ggated.
+> Being more specific:
+> - Servers X and Y will be file server. They will have big sized identical partitions (for example /dev/da0s1f), that will be exported through ggated, and of course not 
+> mounted on servers X and Y.
+> - Server A will ggatec the remote /dev/da0s1f devices from both servers X and Y (/dev/ggate0 and /dev/ggate1).
+> Then, server A will create the mirror with the devices ggate0 and ggate1:
+> # gmirror label -v -b round-robin data ggate0
+> # gmirror insert data ggate1
+> # mount /dev/mirror/data /mnt
+> Just server A will mount /dev/mirror/data RW (or even RO).

There will be a problem when you lost connection to one of the servers -
ggate will return EIO (or ENXIO) on every I/O request, so gmirror will
mark this component as broken and will remove it from the mirror so it
won't be automatically reconnected when the connection come back.

I was wondering how to handle this better. I think we can return ENXIO
from ggate and just disconnect provider on error != EIO (without marking
it as broken).

Pawel Jakub Dawidek             
pjd at                 
FreeBSD committer                         Am I Evil? Yes, I Am!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url :

More information about the freebsd-geom mailing list