FastBlock是一个专为全闪存场景设计的高性能分布式块存储系统

FastBlock是一个专为全闪存场景设计的高性能分布式块存储系统,旨在满足对低延迟和高吞吐量有严格要求的应用需求。

设计背景

随着全闪存技术的普及,传统的分布式块存储系统在性能、延迟和成本方面暴露出诸多问题。例如,Ceph等传统系统在全闪存环境下可能无法充分发挥硬件性能,且存在高CPU消耗、可用性差、单卷性能不足等问题。为了解决这些挑战,FastBlock应运而生,旨在提供一个高性能、低延迟、易于维护的分布式块存储解决方案。

核心特点

  • 高可用性与一致性:通过Raft协议确保系统的数据一致性和高可用性,即使在部分节点故障的情况下,仍能保证数据的完整性和服务的连续性。

  • 低延迟IO:采用SPDK(Storage Performance Development Kit)用户态NVMe驱动和无锁队列等技术,减少IO路径中的延迟,提高数据读写效率。

  • 高性能网络通信:利用RDMA(Remote Direct Memory Access)网卡,实现零拷贝、内核旁路、无需CPU干预的网络通信,进一步降低网络通信延迟,提升系统整体性能。

系统架构

FastBlock的架构与Ceph类似,包含Monitor、OSD(Object Storage Daemon)、PG(Placement Group)等组件:

  1. Monitor:负责节点管理、卷管理、存储卷元数据、集群拓扑结构维护、PG分布管理等工作。Monitor使用etcd进行多副本存储,是系统一致性的关键。

  2. RPC子系统:支持两种通信方式:基于Socket的Control RPC,用于传输元数据;基于RDMA的Data RPC和Raft RPC,分别用于数据传输和Raft协议通信,确保高效的数据交互。

  3. OSD Raft子系统:实现了multi-raft,负责数据复制和一致性维护,包括Raft组的管理、选举、日志处理、数据状态机处理等。

  4. OSD KV子系统:用于存储Raft协议元数据和存储系统本身的数据,采用内存中的哈希映射存储所有数据,并定期将数据刷新到磁盘。

  5. OSD本地存储子系统:基于SPDK的Blobstore访问NVMe磁盘,包含三个存储模块:disk_log(存储Raft日志)、object_store(存储对象数据)、kv_store(存储KV数据)。

  6. 客户端:支持多种模式,包括使用SPDK vhost提供给虚拟机、使用NBD提供给裸金属、使用SPDK nvmf-tgt通过操作系统内核导出磁盘。客户端通过调用libfastblock库,在Image访问和Object访问之间进行切换,实现高效的数据读写。

技术特点

  • CPU绑定与跨核优化:每个OSD可以绑定多个CPU核,创建PG时考虑CPU核的分配,相同的PG会落在其所有OSD的同一个shard_id上,避免OSD之间在通信时切换CPU核,减少跨核开销。

  • SPDK编程框架:通过用户态NVMe驱动替代内核NVMe驱动,减少用户态与内核态之间的频繁切换;使用轮询替代中断,提高响应速度;采用无锁队列技术,显著降低IO路径开销。

  • 心跳合并:在multi-raft设计中,对相同Leader和相同Follower的Raft组进行心跳包的合并,减少心跳包数量,优化带宽和CPU资源的使用。

应用场景

  • 虚拟机磁盘:使用FastBlock的vhost应用启动SPDK vhost进程,在FastBlock的image上创建BDEV设备和vhost控制器,生成socket文件。通过QEMU启动虚拟机时,将该BDEV设备作为虚拟机的磁盘。

  • 裸金属服务器:使用FastBlock的fastblock-nvmf-tgt应用启动SPDK nvmf-tgt进程,在FastBlock的image上创建BDEV设备,并通过操作系统内核将该BDEV设备导出为磁盘。

开源与社区

FastBlock项目已在openEuler社区开源,采用木兰V2宽松License协议,使用C++/Golang语言和SPDK框架进行开发,使用成熟的Raft协议作为核心一致性算法,旨在与社区伙伴共同打造全闪时代的云计算数据基石。

项目地址:fastblock: A distributed block storage system that uses mature Raft protocol and is designed for all-flash scenarios

通过以上介绍,可以看出FastBlock在高性能分布式块存储领域具有显著优势,特别适用于对存储性能和延迟有高要求的应用场景,如数据库、高性能计算和实时数据处理等。

相关推荐
Lsx_2 分钟前
前端视角下认识 AI Agent 和 LangChain
前端·人工智能·agent
aiguangyuan3 分钟前
使用LSTM进行情感分类:原理与实现剖析
人工智能·python·nlp
Yeats_Liao11 分钟前
评估体系构建:基于自动化指标与人工打分的双重验证
运维·人工智能·深度学习·算法·机器学习·自动化
深圳市恒星物联科技有限公司16 分钟前
水质流量监测仪:复合指标监测的管网智能感知设备
大数据·网络·人工智能
断眉的派大星28 分钟前
均值为0,方差为1:数据的“标准校服”
人工智能·机器学习·均值算法
A尘埃36 分钟前
电子厂PCB板焊点缺陷检测(卷积神经网络CNN)
人工智能·神经网络·cnn
Tadas-Gao37 分钟前
缸中之脑:大模型架构的智能幻象与演进困局
人工智能·深度学习·机器学习·架构·大模型·llm
中金快讯39 分钟前
新视野混合净值波动有几何?贝莱德基金回撤控制策略是否命中关键?
人工智能
楚兴42 分钟前
MacBook M1 安装 OpenClaw 完整指南
人工智能·后端
23遇见1 小时前
探索CANN:开源AI计算底座的关键组件与技术思想
人工智能