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