Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 01 Feb 2006 14:35:21 -0800
From:      "Gustavo A. Baratto" <gbaratto@superb.net>
To:        geom@freebsd.org
Subject:   Re: gmirror + ggate
Message-ID:  <43E137A9.9060701@superb.net>
In-Reply-To: <20060127085517.GA789@garage.freebsd.pl>
References:  <013c01c622cb$43256ef0$6450fb40@guinness> <43D97268.2030700@fer.hr>	<01a601c622eb$f5d62970$6450fb40@guinness> <20060127085517.GA789@garage.freebsd.pl>

next in thread | previous in thread | raw e-mail | index | archive | help
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).
> 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?43E137A9.9060701>