gluster AFR的工作原理简析

在gluster的brick server上,每个文件的形如"trusted.afr.*"的扩展属性用来记录复制有关的信息.
*是所有副本的名称,比如一个文件a.txt,在副本client-0和client-1上,用getfattr -m . -d -e hex命令查看该文件,就会有
[quote]client-0=0x000000000000000000000000
client-1=0x000000000000000000000000[/quote]
两条信息.trusted.afr.*实际记录了其他副本的更改的次数.
这个值的前8个数字是数据操作,中间8个是元数据操作(chmod之类),后面8个是命名空间操作(rename之类)
每次replicate的时候,这个counter先加1,然后进行文件操作,如果某个brick client文件操作成功,那么该client对应的counter再减1.
这样正常的副本上所有的trusted.afr.*值都应该是0.
如果某个副本offline时进行了文件操作,其他副本对应它的值就是非0.比如client-0离线时进行一次文件内容操作,那么client-1上的属性为
[quote]client-0=0x000000010000000000000000
client-1=0x000000000000000000000000[/quote]
这样我们说client-1"控诉"了client-0(原文是accuses).控诉是进行self heal的依据.
一个副本A控诉了另一个副本B,我们就说A是明智的(原文是wise).self heal时如果只有一个明智的节点,那么就用明智的节点数据作为权威数据.
如果副本内存在多个明智的节点,就会出现脑裂(split brain).
脑裂时需要人工干预,需要人为删除其他副本,保留一个明智节点.

更多关于副本状态和self heal时算法,请参阅
[url]http://hekafs.org/index.php/2012/03/glusterfs-algorithms-replication-present/[/url]
[url]http://hekafs.org/index.php/2011/04/glusterfs-extended-attributes/[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值