-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Automatically configure the backup volfile servers in clients #351
Comments
FYI: This is has been considered and is planned in glusterd2. |
A patch https://review.gluster.org/19504 has been posted that references this issue. |
Clients will request for a list of volfile servers from glusterd2 by setting a (optional) flag in GETSPEC RPC call. glusterd2 will check for the presence of this flag and accordingly return a list of glusterd2 servers in GETSPEC RPC reply. Currently, this list of servers returned only contains servers which have bricks belonging to the volume. See: gluster/glusterd2#382 #351 Updates #351 Change-Id: I0eee3d0bf25a87627e562380ef73063926a16b81 Signed-off-by: Prashanth Pai <ppai@redhat.com>
Dropping a thought here, In the current form the CLI functionality is the same as connecting to the first glusterd(1/2) instance and fetching the server list. The older CLI, as well, did not have the functionality (to my knowledge) that when backup volfile servers are present, and connection to the primary fails, it would/could use one of the backup volfile servers. The backup volfile servers were used after the connection to the primary succeeded (I could be wrong). In the above case there is still a SPOF, if the primary server provided is down. Similarly, fetching this list from the first server will not help, if that is down. What this possibly means is that we need to enhance the CLI option to consider fetching from backup servers in case primary is down. What this possibly also means, is that even gfapi based applications to ensure SPOF failures may need to have an option to provide a backup list from an availability perspective. |
To summarize, to avoid SPOF, glusterfs clients need:
1 is satisfied with:
2 is implemented in:
On a related note, I assume users can get some form of crude HA if volfile server configured with round-robin DNS. |
Yes, but also to go through this list instead of only one during the mount, For example will this mount work, if the
iff the above is satisfied, which is my confusion.
Yes, did think about this, in which case we do not need either 1/2, but then it is always better to have in-built tolerance in such cases, especially in container farm environments. |
Indeed, this might be a problem for clients that are outside the local (protected) storage network. There are users that have a split-horizon DNS which resolves hostnames different depending on the client(-network). As long as the implementation returns hostnames instead of IP-addresses, things should work correctly. It it possible that IP-addresses of the internal network connections are not routed outside the storage internal network, clients should not try to use those. I think this also is assumed for secured connections with TLS, which is something that should become the default at one point. |
glusterd2 uses different ports for
Both the interfaces used and ports are configurable. This document describes the current state of things in glusterd2:
Good point. This is something that glusterd2 has ignored so far and needs to be fixed |
Clients will request for a list of volfile servers from glusterd2 by setting a (optional) flag in GETSPEC RPC call. glusterd2 will check for the presence of this flag and accordingly return a list of glusterd2 servers in GETSPEC RPC reply. Currently, this list of servers returned only contains servers which have bricks belonging to the volume. See: gluster/glusterd2#382 gluster#351 Updates gluster#351 Change-Id: I0eee3d0bf25a87627e562380ef73063926a16b81 Signed-off-by: Prashanth Pai <ppai@redhat.com>
Currently, both FUSE and gfapi provides commandline options and api to set backup volfile servers. WRT to gfapi, every application that integrates with gfapi has to provide a way for user to input these volfile server hostnames, and call glfs_set_volfile_servers with these hostnames. Instead, we can have an RPC implemented in client and glusterd, which fetches the list of volfile severs available and gfapi automatically configures these as backup volfile servers.
One thing is, if clients use a different network(IP) to communicate to glusterd, than the IPs used by glusterd to communicate with each other, we may end up configuring wrong volfile server IPs?. Any thoughts? @nixpanic @soumyakoduri @anoopcs9
The text was updated successfully, but these errors were encountered: