[Gluster-devel] RFC - "Connection Groups" concept

Justin Clift jclift at redhat.com
Thu Jun 27 19:21:11 UTC 2013


On 27/06/2013, at 8:07 PM, Anand Avati wrote:
<snip>
> To figure out which connection a client has to use, we could do auto-discover at the time of GETSPEC depending on which network interface the GETSPEC request is coming in from. We already have per transport client volfiles (one for tcp, one for rdma), and extending it to per network is natural. Today we ask the client to specify the transport type in GETSPEC (e.g "volname.rdma") - but even that can be retired if we start using getsockname() and discover the incoming interface.
> 
> This way the client only specifies the appropriate (routable) mount server IP and everything else is resolved automatically.
> 
> Another approach might be to just store the UUID of the host in the client volfile, as remote-uuid (instead of remote-host option). The client can query the mount server to resolve the UUID to a host at that point in time with a HOSTMAPPER service (like our PORTMAPPER server which maps bricks to ports). This hostmapper can maintain the relationship of all the host UUIDs in the trusted pool to all their respective interface IPs, and use the interface of the incoming mapping request to perform appropriate mapping. When in doubt, it can always return the entire set of IPs of a host (with transport types) and let the client figure out which of those IPs are routable and maybe even autodetect which is the fastest. E.g your server might have both 1g/e and 10g/e, and only some of your clients have 10g/e. In such cases this kind of auto discovery at mount time might be desirable.
> 
> Thoughts?

Interesting idea.  Self-heal traffic between servers could use the same
approach (and same code?) too with this couldn't it?

+ Justin

--
Open Source and Standards @ Red Hat

twitter.com/realjustinclift





More information about the Gluster-devel mailing list