免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 26604 | 回复: 0

[其他DFS] FastCFS同步复制机制简介 [复制链接]

论坛徽章:
4
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11IT运维版块每日发帖之星
日期:2016-08-11 06:20:00IT运维版块每日发帖之星
日期:2016-08-15 06:20:00
发表于 2021-02-02 15:11 |显示全部楼层
    上一篇文章介绍了FastCFS采用数据分组的做法,一个数据分组的几个节点(如三个节点即三副本)之间是Master/Slave关系;FastCFS采用数据强一致模型,通过Master/Slave结构的同步复制机制来保证数据一致性,本文将概要介绍这一机制的原理和关键点。

    和单机系统相比,分布式系统因网络通信方面存在较大不确定性,要做到数据强一致的挑战非常大。业界分布式系统主流做法是采用BASE理论,有意避开数据强一致性这个难题。BASE理论是Basically Available(基本可用),Soft State(软状态或中间状态)和Eventually Consistent(最终一致性)三个短语的缩写。BASE理论比较偏工程实践,见文知意,需要进一步了解的朋友自行脑补。

    采用Master/Slave结构,保证数据强一致的逻辑很简单。client的更新操作只能由Master处理,然后master同步调用slave转发该请求。FastCFS中master可以并发请求多个slave,因此client的响应时间和slave数目(副本数)并不是线性关系。master只会对在线(ACTIVE)的slave发起同步调用,那么slave因重启服务或网络通信异常导致掉线(OFFLINE),FastCFS是如何处理的呢?OFFLINE状态的slave会进入数据恢复(追加数据)阶段,追上master的最新数据后,方可切换为ACTIVE状态。为了确保平滑切换,引入了ONLINE这一中间状态。

    有朋友就说了,上面的同步复制方式很简单直接嘛,并没有多么高深的地方。嗯,简单的往往就是最有效的。有挑战的地方不在方案的复杂性,而在于工程实现。在保证数据一致性前提下,数据同步复制方案的两大关键点:维护精准的集群状态和slave状态平滑切换。

    FastCFS引入leader/follower这一机制来维护精准的集群状态。leader通过选举产生,follower和leader建立连接并每秒报告其自身状态(磁盘空间、数据版本号等)。当集群状态发生变化时,如master切换、slave状态变化等,leader会立即将变动消息推送给所有follower。借助zookeeper或者etcd也可以实现同样的功能,为什么要自造轮子呢?原因有二:一、自主可控,减少依赖;二、简单高效,避免臃肿。

    分布式系统在保证数据强一致性的前提下,还要做到高可用和高性能,挑战非常大。为了做到这一点,还有一个最为关键的地方,下一篇文章将为你揭晓。

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP