ChubaoFS 基础

ChubaoFS 基础


简介

  • ChubaoFS是一个开源的分布式文件存储系统,同时提供POSIX FSS3两种访问接口。

  • 2018年由JD TigLab开发,2020年加入CNCF基金会,现为CNCF沙箱项目;

  • ChubaoFS的设计之初是为大规模容器环境提供分布式的文件存储服务;


特点

  • 高可扩展:ChubaoFS的所有组件都是支持分布式部署,数据资源通过分片实现横向扩展;
  • 高可靠:各个资源节点通过multi-raft协议提供的多副本强一致性来保证数据的高可靠;
  • 多协议支持:同时支持POSIX FS 和S3 协议;
  • 大小文件优化:ChubaoFS对于大小文件在底层,使用不同的方式进行优化,同时兼顾了大小文件的性能和存储开销;
  • 多写入模式支持:同时支持顺序写、随机写2种写入模式;
  • 动态资源调度:ChubaoFS的资源管理基于负载的动态调度算法,能合理分配资源,调度资源,避免热点;
  • 部署简便:各组件部署不依赖其他组件,部署方便;同时提供docker,k8s容器部署组件;

架构


组件

  • 资源管理节点(Master):执行集群资源管理、分配、调度的节点,资源管理节点只参与资源管理和调度,不进行具体的数据读写;

  • 元数据节点(MetaNode):提供文件元数据(Meta)管理、存储服务的节点,文件元数据包括inode、dentry、extend等,通过分片(MetaParitition)分布到不同的元数据节点,通过multi-raft保证多副本一致性;

  • 数据节点(DataNode):提供文件数据(Data)管理、存储服务的节点,文件数据通过数据分片(DataPartition)分布到不同的数据节点,通过多副本保证数据高可用;

  • 对象存储节点(ObjectNode): 提供S3访问服务的节点,ObjectNode节点主要提供S3协议解析及uri映射功能,为无状态节点,可以动态部署;

  • Fuse客户端(Client): Fuse客户端为用户提供POSIX FS文件访问接口;


基础概念

  • 集群(Cluster):一组建立副本关系的Master和由其管理的MetaNode, DataNode, ObjectNode节点构成一个集群;

  • Volume):卷是一个逻辑视图,每个卷由一组相关的MetaPartition, 数据分组DataPartition组合;

  • 数据分片DataPartition): 数据分片是文件数据管理的单元,chubaofs在数据分片为单位来实现数据的分布,复制等管理,从而实现数据的扩展和高可用;

  • 元数据分片MetaPartition): 元数据分片是文件元数据管理单元;

  • 副本组Replicas):

  • 数据集Extent):


资源管理

  • Master是chubaofs系统中进行资源管理、分配的组件;

  • Master主要管理chubaofs集群中的所有元数据节点(metanode),数据节点(datanode)及这些节点上的mp,dp等资源;

  • Master通过raft来实现多节点部署时的数据同步,以提供master的高可用;

  • Master只有一个Leader节点提供服务,非Leader节点只作为备份节点,只是作为Leader节点的数据副本;当发生Leader切换时,新当选的Leader提供继续提供服务;

  • Master只参与资源管理和分配,不参与具体的读写流程,轻量化;

  • Master主要管理的资源包括:

    • MetaNode节点管理;

    • DataNode节点管理;

    • Volume资源管理;

    • 用户管理;

    • 状态监测;


元数据管理


数据管理


FuseClient


S3


加载Volume


数据修复


未来

  • metanode内存优化;

  • datanode nvme+spdk优化;

  • 网络库优化;

  • raft 优化;

  • web console;

  • EC node;


参考

  1. http://chubao.io/
  2. https://chubaofs.readthedocs.io/
  3. ChubaoFS | Cloud Native Computing Foundation
  4. GitHub - chubaofs/chubaofs: ChubaoFS (abbrev. CBFS) is a cloud native distributed file system and object store.
updatedupdated2024-08-252024-08-25