glusterfs:浅谈脑裂

脑裂概述

脑裂是文件或者目录的一种状态,表示多个副本的数据不一致。按照数据的类型,脑裂又分为如下几种:

  • 数据脑裂,是指多个副本,同一个文件数据不一样,比如文件内容
  • 元数据脑裂,是指多个副本,同一个文件的元数据不一样,比如权限、属主或者属组等
  • 目录脑裂,分为两种情况。
    (1)是指多个副本,同一个目录下,同一个文件的GFID不一样
    (2)是指多个副本,同一个目录下,同一个名字,在某些副本中是文件,在另外一些副本中是目录
脑裂造成的主要原因
  • 客户端网络异常。比如两副本R1、R2。 客户端C1暂时性的和R2失去连接,客户端C2暂时和R1失去连接,C1和C2都操作一个文件,就会导致脑裂产生。

在这里插入图片描述

  • brick进程故障导致。比如三节点集群B1、B2、B3,三副本。 B2挂了数据写入B1、B3 ------> B2活了,B1挂了,数据写入B1、B3 ----->B3挂了,B2活了,此时B1和B2就可能会出现脑裂。
    在这里插入图片描述
预防手段

预防手段是指,如果这个文件或者是目录 “裂了”,就不会让你再动这个文件或者目录了。此时我们需要“修理手段”,修理脑裂状态的文件或者目录,大概包括手动和自动修复两种,另一篇文章会讲到。

三副本

配合Client quorum(client quorum),形成第一道关卡。type设置成auto,也就是必须达到半数brick存活,才能写入,这样可以防止网络分区 造成的脑裂。
第二道关卡,就是AFR的写入检查,当三副本的volume,存活两个brick,达到了半数原则,通过了第一道关卡。但是如果这两个副本的数据不一致,AFR发现这一点时,就会返回EIO,不允许动这个文件。

仲裁盘机制

预防机制类似于三副本,我觉的稍微略略逊于三副本,但是人家也节约空间了。可以单击上面小标题查看详细的介绍,我这里就不啰嗦了。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值