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 _______________________________________________ Gluster-devel mailing list Gluster-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/gluster-devel