CubeFS设计原理
CubeFS(储宝)是CNCF开源的云原生分布式存储,支持S3、HDFS、POSIX等多种访问协议,适用于大数据、AI、容器平台、数据共享与备份等场景。其发展历程包括:2019年4月首次发布v1.0.0,2019年11月加入CNCF,2020年10月发布v2.0.0支持S3接口,2022年1月发布v3.0.0-beta支持纠删码。CubeFS的关键特性包括:多租户资源隔离、数据强一致性、元数据横向扩展、分层存储、小文件和随机读写友好、兼容POSIX、S3、HDFS接口。
CubeFS系统架构分为元数据子系统和数据子系统。元数据子系统采用动态子树分区,将Volume分为多个元数据Range分区,使用全内存高性能的DentryBtree和InodeBtree,兼顾扩展性和本地性,支持单目录千万级文件。数据子系统采用小文件聚合、高效垃圾回收、顺序写副本复制、覆盖写Raft协议强一致性等技术。
CubeFS在数据湖存储的探索
数据湖是统一存储原始数据(结构化、非结构化、半结构化)的架构,通过AI+大数据分析进行数据湖分析。当前大数据存储面临HDFS集群单点故障、元数据节点性能瓶颈、数据复用难、对象存储缺乏文件语义等挑战。CubeFS在数据湖存储方面的探索包括:
- 纠删码子系统:支持EB级规模,数据耐久性达11个9,动态可配的EC模式,多AZ灵活部署,高性能引擎包括小文件优化和高效垃圾回收。
- 湖加速:数据加速通过本地读缓存(HDD/SSD/NVMe)、进程通信(UnixDomainSocket)、弹性副本就近读、主动缓存(volume及目录级读/写缓存)、预热和缓存淘汰实现;元数据加速通过新增目录分区、单目录支持亿级文件、全内存缓存和LRU淘汰实现。
CubeFS在OPPO的应用实践
OPPO数据湖存储应用情况包括HTTP文件共享、数据备份、分布式编译、大数据分析和机器学习。在机器学习场景中,集群规模达数十PB存储量、近百亿文件,可用性从99.9%提升至99.99%,元数据性能从5-50ms优化至1ms,运维成本显著降低。大数据业务方面,支持EB级存储,生命周期管理通过CubeFS实现。
后续计划
CubeFS后续计划包括数据编排、数据压缩/重删、快照和QOS等功能。