[Gluster-users] How Does Gluster Failover

Joe Julian joe at julianfamily.org
Wed Aug 31 15:16:52 UTC 2022


You know when you do a `gluster volume info` and you get the whole 
volume definition, the client graph is built from the same info. In 
fact, if you look in /var/lib/glusterd/vols/$volume_name you'll find 
some ".vol" files. `$volume_name.tcp-fuse.vol` is the configuration that 
the clients receive from whichever server they initially connect to. 
You'll notice that file has multiple "type/client" sections, each 
establishing a tcp connection to a server.

Sidenote: You can also see in that file, how the microkernels are used 
to build all the logic that forms the volume, which is kinda cool. Back 
when I first started using gluster, there was no glusterd and you have 
to build those .vol files by hand.

On 8/31/22 8:04 AM, Matthew J Black wrote:
>
> Hi Joe,
>
> Thanks for getting back to me about this, it was helpful, and I really 
> appreciate it.
>
> I am, however, still (slightly) confused - *how* does the client 
> "know" the addresses of the other servers in the cluster (for read or 
> write purposes), when all the client has is the line in the fstab 
> file: "gfs1:gv1  /data/gv1  glusterfs defaults  0 2"? I'm missing 
> something, somewhere, in all of this, and I can't work out what that 
> "something" is.  :-)
>
> Your help truely is appreciated
>
> Cheers
>
> Dulux-Oz
>
> PEREGRINE IT Signature On 01/09/2022 00:55, Joe Julian wrote:
>>
>> With a replica volume the client connects and writes to all the 
>> replicas directly. For reads, when a filename is looked up the client 
>> checks with all the replicas and, if the file is healthy, opens a 
>> read connection to the first replica to respond (by default).
>>
>> If a server is shut down, the client receives the tcp messages that 
>> close the connection. For read operations, it chooses the next 
>> server. Writes will just continue to the remaining replicas (metadata 
>> is stored in extended attributes to inform future lookups and the 
>> self-healer of file health).
>>
>> If a server crashes (no tcp finalization) the volume will pause for 
>> ping-timeout seconds (42 by default). Then continue as above. BTW, 
>> that 42 second timeout shouldn't be a big deal. The MTBF should be 
>> sufficiently far apart that this should still easily get you five or 
>> six nines.
>>
>> On 8/30/22 11:55 PM, duluxoz wrote:
>>>
>>> Hi Guys & Gals,
>>>
>>> A Gluster newbie question for sure, but something I just don't "get" 
>>> (or I've missed in the doco, mailing lists, etc):
>>>
>>> What happens to a Gluster Client when a Gluster Cluster Node goes 
>>> off-line / fails-over?
>>>
>>> How does the Client "know" to use (connect to) another Gluster Node 
>>> in the Gluster Cluster?
>>>
>>> Let me elaborate.
>>>
>>> I've got four hosts: gfs1, gfs2, gfs3, and client4 sitting on 
>>> 192.168.1.1/24, .2, .3, and .4 respectively.
>>>
>>> DNS is set up and working correctly.
>>>
>>> gfs1, gs2, and gfs3 form a "Gluster Cluster" with a Gluster Volume 
>>> (gv1) replicated across all three nodes. This is all working 
>>> correctly (ie a file (file1) created/modified on gfs1:/gv1 is 
>>> replicated correctly to gfs2:/gv1 and gfs3:/gv1).
>>>
>>> client4 has an entry in its /etc/fstab file which reads: "gfs1:gv1  
>>> /data/gv1 glusterfs  defaults  0 2". This is also all working 
>>> correctly (ie client4:/data/gv1/file1 is accessible and replicated).
>>>
>>> So, (and I haven't tested this yet) what happens to 
>>> client4:/data/gv1/file1 when gfs1 fails (ie is turned off, crashes, 
>>> etc)?
>>>
>>> Does client4 "automatically" switch to using one of the other two 
>>> Gluster Nodes, or do I have something wrong in clients4's /etc/fstab 
>>> file, or an error/mis-configuration somewhere else?
>>>
>>> I thought about setting some DNS entries along the lines of:
>>>
>>> ~~~
>>>
>>> glustercluster  IN  A 192.168.0.1
>>>
>>> glustercluster  IN  A  192.168.0.2
>>>
>>> glustercluster IN  A  192.168.0.3
>>>
>>> ~~~
>>>
>>> and having clients4's /etc/fstab file read: "glustercluster:gv1  
>>> /data/gv1  glusterfs  defaults  0 2", but this is a Round-Robin DNS 
>>> config and I'm not sure how Gluster treats this situation.
>>>
>>> So, if people could comment / point me in the correct direction I 
>>> would really appreciate it - thanks.
>>>
>>> Dulux-Oz
>>>
>>>
>>> ________
>>>
>>>
>>>
>>> Community Meeting Calendar:
>>>
>>> Schedule -
>>> Every 2nd and 4th Tuesday at 14:30 IST / 09:00 UTC
>>> Bridge:https://meet.google.com/cpu-eiue-hvk
>>> Gluster-users mailing list
>>> Gluster-users at gluster.org
>>> https://lists.gluster.org/mailman/listinfo/gluster-users
>
> width= 
> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient> 
> 	Virus-free.www.avast.com 
> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient> 
>
>
> <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gluster.org/pipermail/gluster-users/attachments/20220831/786f2611/attachment.html>


More information about the Gluster-users mailing list