Gluster到底做什么?


12

最近两天我一直在玩gluster,并在这里和他们的问题系统中提问。我真的不明白其中的一些内容。我看到有人说

在服务器之间设置复制的模块(因为您仅使用3,所以复制会更安全),并且每台服务器会将所有其他服务器的文件视为“本地”-即使一台服务器发生故障,文件也已复制到其他服务器。

要么

Gluster将保持跨卷(砖)的文件同步,并具有“自我修复”功能,该功能可处理由于一台服务器脱机而引起的任何不一致情况。

由于我一个远程卷从服务器安装到客户端,因此gluster如何处理服务器节点的故障,因此从中安装卷?从我尝试过的内容来看,无法访问安装了卷的客户端上的文件夹,因此必须使用umount取消阻止它。之后,服务器中没有任何内容。

基本上,这是我看不到的任何解释:服务器节点发生故障时会发生什么,以及是否有可能像unison或rsync一样真正地复制内容?

Answers:


8

我们最近开始研究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标记,除非通过源代码修改,否则当前无法配置,如果收敛时间很关键,这可能对您来说很重要。


我本人已经了解了AFR,但是,使用它时,我无法在客户端上进行写操作,而只能在服务器上进行写操作。这是背后逻辑的结果,还是我需要研究的东西?
cbaltatescu 2011年

2
那很可能是配置问题(这不是设计使然)。
多项式

3

仅复制2个节点,gluster与自动rsync脚本没有太大区别。只有拥有4个或更多存储节点后,事情才真正开始变得有趣-客户端计算机看到一个空间池,但是组成文件分布在所有存储节点(砖)上。这意味着,如果您的4台服务器具有10TB的本地空间,则您的客户端计算机可以看到20TB(复制的或40TB的不受保护的存储)的单个名称空间。

我已经看到客户端计算机在存储砖不可用后尝试IO时出现短暂的打--大约30秒左右。不过,打ic之后,只要有一些联机的服务器仍保留完整的卷数据,IO就会继续正常运行。


slideshare.net/Gluster/…Gluster的首席技术官介绍其工作原理。
多项式

1
问题是它没有执行rsync的操作。Rsync提供另一台计算机上的数据副本。当主服务器(在2节点服务器-客户端设置中)发生故障时,Gluster不会留下任何痕迹,或者我无法理解,因此出现了问题。
cbaltatescu 2011年

2
如果您只有2个节点,并且其中一个节点是客户端(不在本地存储任何数据),则丢失数据的“主”将导致客户端不可用并阻塞IO。您至少需要2台配置了用于复制的卷的服务器,以及您的客户端。
techieb0y 2011年


0

当面向客户端的服务器发生故障时(即客户端使用其IP / DNS来安装文件系统的服务器),则整个卷将脱机到该客户端,即无法在该卷上进行读取/写入。

但是,如果客户端使用其他服务器的IP / DNS挂载了该卷,则该卷仍将处于联机状态。但是,读/写操作不会转到失败/崩溃的实例。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.