gmirror + ggate

Gustavo A. Baratto gbaratto at superb.net
Wed Feb 1 14:35:22 PST 2006


Hey all...

ggate doesnt seem to have a start script like other geom classes.

What's the best way to mount a gmirrored ggated device at start up?

Before gmirror was running in this server, I just created a simple 
script in /usr/local/etc/rc.d to mount the ggate devices:
---------
#!/bin/sh

/sbin/ggatec create -R 262144 -S 262144 -o rw 10.10.10.3 /dev/da0s1g
/sbin/ggatec create -R 262144 -S 262144 -o rw 10.10.10.4 /dev/da0s1g

/sbin/mount /dev/ggate0 /mount_point_0
/sbin/mount /dev/ggate1 /mount_point_1
---------

Now... If at boot time I want to startup these two ggate devices 
gmirrored, what's the best approach?

I was thinking I could add 'geom_mirror_load="YES"' in loader.conf, then 
then run 'gmirror configure -h gm0'

Is that the recommended approach? If yes, do I still need to run the 
script above to plumb the ggate devices, or -h does that for us?

Cheers all ;)


Pawel Jakub Dawidek wrote:
> 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).
> 


More information about the freebsd-geom mailing list