Bug 1330081 - [RHEL6] [RFE] gluster vfs plugin should be able to make use of multiple volfile server feature of gfapi
Summary: [RHEL6] [RFE] gluster vfs plugin should be able to make use of multiple volfi...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Gluster Storage
Classification: Red Hat Storage
Component: samba
Version: rhgs-3.1
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: RHGS 3.2.0
Assignee: Raghavendra Talur
QA Contact: Vivek Das
URL:
Whiteboard:
Depends On: 1330079
Blocks: 1351503 1386230
TreeView+ depends on / blocked
 
Reported: 2016-04-25 11:26 UTC by Riyas Abdulrasak
Modified: 2020-05-14 15:10 UTC (History)
9 users (show)

Fixed In Version: samba-4.4.6-2.el6rhs
Doc Type: Enhancement
Doc Text:
gluster vfs plugin now supports more than one volfile servers. Samba tries to connect to the next server on the list if one of the gluster server is not reachable.
Clone Of: 1330079
: 1386230 (view as bug list)
Environment:
Last Closed: 2017-03-23 05:12:05 UTC
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2017:0494 0 normal SHIPPED_LIVE Moderate: Red Hat Gluster Storage 3.2.0 samba security, bug fixes and enhancement update 2017-03-23 09:06:59 UTC

Description Riyas Abdulrasak 2016-04-25 11:26:05 UTC
+++ This bug was initially created as a clone of Bug #1330079 +++

Description of problem:
Currently, gluster vfs plugin can take only one volfile server in config settings. Recently gfapi merged feature where in it allows one to specify multiple volfiles. We should make use of that feature in vfs plugin.

Comment 3 Raghavendra Talur 2016-09-07 10:16:15 UTC
How to test
=================================================================
glusterfs:volfile_server key can be list of white space seperated
elements where each element could be
unix+/path/to/socket/file or [tcp+]IP|hostname|\[IPv6\][:port].

Note the restriction on naming a IPv6 host, it follows the same
restriction that is based on IPv6 naming in URL as per RFC 2732[1].

Some tests:

1. Setup, Gluster cluster of 192.168.122.13, 192.168.122.14, 192.168.122.15 .
In smb.conf on Server 192.168.122.13, you can have

    a. glusterfs:volfile_server = google.com 192.168.122.13 192.168.122.14 192.168.122.15
    Expected result: connection should succeed with 192.168.122.13 .

    b. glusterfs:volfile_server = google.com 192.168.122.31 192.168.122.14 192.168.122.15
    Expected result: connection should succeed with 192.168.122.14 .

    c. glusterfs:volfile_server = tcp+192.168.122.14:24007 192.168.122.15
    Expected result: connection should succeed with 192.168.122.14 .

    d. glusterfs:volfile_server = unix+/var/run/glusterd.socket tcp+192.168.122.14:24007 192.168.122.15
    Expected result: connection should succeed with local glusterd using unix socket.

    e. glusterfs:volfile_server = 192.168.122.31 192.168.122.44 192.168.122.45
    Expected result: connection should fail with log saying could not fetch volfile.


For all the above cases, please use netstat to verify connections and perform IO from the smb clients to ensure that connection is fully operational. Logging at default level 0 will only happen for total failure case where all volfiles are exhausted. All other logs would be at level 3 onwards.

I will add more cases later.

Comment 4 Raghavendra Talur 2016-09-07 10:22:22 UTC
NOTE:

This list is used only for initial connection setup in case of Gluster versions <= 3.7.

In 3.8 Gluster version, we have introduced mechanism to use the list to connect to Glusterd on a different node as a failover response to a Glusterd connection disconnect to existing one.

For example,

glusterfs:volfile_server = 192.168.122.13 192.168.122.14 192.168.122.15
    Expected result: connection would succeed with 192.168.122.13.

Now kill glusterd on 192.168.122.13. Automatically connection should get initiated with 192.168.122.14. This would happen only on 3.8 builds and later.

Comment 7 Vivek Das 2016-11-14 06:09:42 UTC
Tested on a two node setup the basic functionality of VFS is working that includes
1. Setup, Gluster cluster of 192.168.122.13, 192.168.122.14, 192.168.122.15 .
In smb.conf on Server 192.168.122.13, you can have

    a. glusterfs:volfile_server = <invalid server> 192.168.122.13 192.168.122.14 192.168.122.15
    Expected result: connection should succeed with 192.168.122.13 .

    b. glusterfs:volfile_server = <invalid server> 192.168.122.31 192.168.122.14 192.168.122.15
    Expected result: connection should succeed with 192.168.122.14 .

    c. glusterfs:volfile_server = tcp+192.168.122.14:24007 192.168.122.15
    Expected result: connection should succeed with 192.168.122.14 .

    e. glusterfs:volfile_server = 192.168.122.31 192.168.122.44 192.168.122.45
    Expected result: connection should fail with log saying could not fetch

version
--------
samba-client-4.4.6-2

glusterfs-3.8.4-4

Comment 9 Raghavendra Talur 2017-03-15 11:29:48 UTC
Doc looks good.

Comment 11 errata-xmlrpc 2017-03-23 05:12:05 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2017-0494.html


Note You need to log in before you can comment on or make changes to this bug.