高可用性 – Gluster究竟做了什么?

过去两天我一直在玩gluster,并在这里和他们的问题系统上提问.
我真的不明白一些东西.我看到有人说的话

Set up replicated bricks between the servers (since you are only using
3, replicated would be safer), and each server will see the files of
all other servers as being ‘local’ – even if one server fails, the
files have been replicated to the other servers.

要么

Gluster will maintain the file synchronization across volumes
(bricks), and has ‘self-healing’ capabilities that will deal with any
inconsistencies due to one server being offline.

由于我将远程卷从服务器挂载到客户端,gluster如何处理服务器节点的故障,从哪个卷安装卷?
从我尝试过的,安装卷的客户端上的文件夹变得无法访问,我必须使用umount来取消阻止它.之后,服务器上没有内容.

这基本上是我在任何解释中都没有看到的内容:当服务器节点发生故障以及是否可以真正复制内容时会发生什么,例如unison或rsync?

最佳答案
我们最近开始研究GlusterFS用于我们自己的用法,所以这个问题对我很有意思. Gluster使用FUSE客户端上所谓的“翻译器”来处理存储数据的方式.这里概述了几种类型的翻译器:

http://www.gluster.com/community/documentation/index.php/GlusterFS_Translators_v1.3

您具体询问的那个称为自动文件复制转换器或AFR,在此处详细介绍:

http://www.gluster.com/community/documentation/index.php/Understanding_AFR_Translator

看一下源代码,看起来数据实际上是同时写入节点的,比rsync好得多!

关于从失败情况中恢复,我发现了一个有趣的注释. Gluster系统与Ceph的不同之处在于它不会主动意识到复制状态的变化,必须“触发”.因此,如果您丢失了群集中的节点,则必须查找每个文件,以便Gluster确保其已复制:

http://www.gluster.com/community/documentation/index.php/Gluster_3.2:_Triggering_Self-Heal_on_Replicate

我无法在内部找到描述故障情景机制的好页面,例如客户端如何检测到故障.然而,下载源代码并查看客户端时,它会显示出用于命令的各种超时,以及它经常对群集中的其他系统执行的探测.看起来大多数都有TODO标记,除了通过源代码修改之外,目前还无法配置,如果收敛时间很关键,这可能会引起关注.

转载注明原文:高可用性 – Gluster究竟做了什么? - 代码日志