[Gluster-users] Stupid question re multiple networks
Anders Blomdell
anders.blomdell at control.lth.se
Fri Nov 14 08:16:19 UTC 2014
On 2014-11-13 20:15, Jeff Darcy wrote:
>> AFAIK multiple network scenario only works if you are not using Gluster via
>> FUSE mounts or gfapi from remote hosts. It will work for NFS access or when
>> you set up something like Samba with CTDB. Just not with native Gluster as
>> the server always tells the clients which addresses to connect to: ie your
>> storage hosts will always supply the connection details of the hosts that
>> are configured in gluster to your storage clients.
>>
>> I wonder if this could be gaffer-taped with some bridging/vlan/arp spoofing
>> trickery but I'm not sure I'd trust such a hack.
>>
>> It would be *really* nice if there was a way to set up gluster so you could
>> specify different IPs for backend and frontend operations.
>
> As you suggest, there are various kinds of "trickery" that can be used
> to fake multi-network support even for native mounts. I've seen it done
> via split-horizon DNS, explicit host routes, and iptables. *Proper*
> support for multiple networks is part of the proposed 4.0 feature set.
>
> http://www.gluster.org/community/documentation/index.php/Planning40
>
> In fact, I would greatly appreciate your help defining what "proper"
> means in this context. Clearly, we need to add the concept of a network
> to our (informal) object model, and sort out the host/address/network
> relationships. Then we need a way to direct certain traffic flows to
> certain networks. The question is: how do we present this to the user?
> Let's take a whack at how to define networks etc. using the CLI's
> current object-verb syntax (even though it's a bit clunky).
>
> gluster> network add user-net 1.2.3.0/24
> gluster> network add back-end 5.6.0.0/16
> gluster> peer probe 1.2.3.4
> gluster> peer probe 5.6.7.8
>
> So far, so good. Note that on the second probe we should be able to
> recognize that this is just a new address (on another network) for the
> host we already added with the first probe. Heartbeats, quorums, etc.
> should also be aware of multi-homed hosts. Maybe there's a better
> syntax, but this will do for now. Let's add a volume.
>
> gluster> volume create silly-vol 1.2.3.4:/brick
>
> So, which network address should the daemon for 1.2.3.4:/brick expose
> for clients? Which address should it use for internal traffic such as
> rebalance or self-heal? This is where it gets tricky. Let's start by
> saying that *by default* all traffic is on the interface specified on
> the "volume create" line. If we want to do something different...
>
> # ONLY redirect rebalance traffic.
> gluster> volume route silly-vol rebalance back-end
>
> Now rebalance traffic goes through 5.6.7.8 instead. Is that intuitive?
> What about these?
>
> # Export a volume on multiple networks.
> gluster> volume route silly-vol client user-net some-other-net
>
> # Redirect rebalance, self-heal, anything else we think of.
> gluster> volume route silly-vol all-mgmt back-end
>
> # Redirect GLOBALLY instead of per volume.
> gluster> cluster route rebalance back-end
>
> Does this seem like it's heading in the right direction? It doesn't
> look too bad to me, but my perspective is hardly typical. Is there
> something *users* would like to be able to do with multiple networks
> that can't be expressed this way, or is there some better way to define
> how these multiple networks should be used? Please let us know.
What if the gluster servers are also clients? I locally plan to use
a number of servers acting as gluster and VM servers, so that gluster serves
both the VM's and other clients.
/Anders
--
Anders Blomdell Email: anders.blomdell at control.lth.se
Department of Automatic Control
Lund University Phone: +46 46 222 4625
P.O. Box 118 Fax: +46 46 138118
SE-221 00 Lund, Sweden
More information about the Gluster-users
mailing list