免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 23226 | 回复: 0
打印 上一主题 下一主题

[其他DFS] FastCFS核心组件FastStore架构及特点 [复制链接]

论坛徽章:
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
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2020-12-30 16:36 |只看该作者 |倒序浏览
本帖最后由 happy_fish100 于 2021-02-02 16:31 编辑

    上一篇文章介绍了FastCFS服务端两大核心组件:FastDIR和FastStore。其中FastDIR管理文件元数据,FastStore以分块方式存储文件内容。FastDIR和FastStore均采用Master/Slave结构,Master不需要手工配置,由程序自动选举产生,并且做到了failover。FastDIR架构是FastStore架构子集(特例),因此我们着重介绍FastStore的架构及其特点。

    无图无真相,先上FastStore的架构图。
    FastStore对服务器和数据均采用分组方式,服务器分组简称 SG,为物理分组;数据分组简称 DG,为逻辑分组。FastStore的server各自管理数据块(文件块)索引,数据块的元数据采用无中心的分布式架构。FastStore本质是一个分布式KV系统,key是数据块所属的对象ID(inode) + 偏移量(offset),value是数据块内容。FastStore采用的数据路由规则:数据块key按数据分组数(DGC)求模得出所在的数据分组,即:block_hash_code % DGC。可见DGC一旦确定就不可更改,否则将导致数据访问混乱!如果数据增长远超预期需要增大DGC,只能搭建一套新集群,在新旧两套集群并存的情况下,把原有数据手工迁移到新集群,迁移完成后切换到新集群。

    一个SG由一台到多台服务器组成,组内的数据是冗余关系(服务器数即数据副本数)。一个SG可以容纳多个DG,为了充分利用CPU等硬件资源,建议生产环境一个SG配置的DG数量不少于CPU核数 / 2,开发测试环境至少配置16个。建立FastCFS集群时,可以只有一组服务器(即一个SG)。为了便于以后增加SG进行扩容,DG数量(DGC)必须事先充足地预估数据规模后确定下来,生产环境建议最小配置 256。友情提示:尽可能乐观地预估数据增长规模,宁多勿少,不存在过犹不及的问题。

    FastStore服务器扩容采用数据分裂的做法,支持在线扩容,可以一次扩容一组服务器。当集群规模较小(比如SG数 <= 4)时,建议一次扩容一倍。

    总结一下FastStore的架构特点:
       * 基于数据块的无中心设计(类一致性Hash),理论上可以无限扩容;
       * 分组方式(SG和DG),简单高效;
       * 数据分组内采用Master/Slave结构,简单有效的数据一致性保证。

    保证数据一致性是分布式系统面临的挑战,FastCFS是如何做到的呢?敬请期待下回分解。

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP