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在高性能分布式块存储领域具有显著优势,特别适用于对存储性能和延迟有高要求的应用场景,如数据库、高性能计算和实时数据处理等。

相关推荐
旧时光巷20 分钟前
【深度学习②】| DNN篇
人工智能·pytorch·深度学习·dnn·模型训练·手写数字识别·深度神经网络
木卯_THU37 分钟前
TGD第十篇:当神经网络遇到TGD特征
人工智能·深度学习·神经网络·表情识别·tgd·视频特征提取·特征工提取
一碗白开水一37 分钟前
【模型细节】FPN经典网络模型 (Feature Pyramid Networks)详解及其变形优化
网络·人工智能·pytorch·深度学习·计算机视觉
闲看庭前梦落花1 小时前
Tensorflow实现手写数字识别
人工智能·python·tensorflow
一只鹿鹿鹿1 小时前
【制造】erp和mes系统建设方案(word)
大数据·人工智能·web安全·信息化·软件系统
数琨创享TQMS质量数智化1 小时前
数琨创享:德国高端制造企业QMS质量管理平台案例
大数据·人工智能·制造
虚谷232 小时前
从AI智能体出发,重构数据中台:迈向Agentic时代的数据能力体系
大数据·人工智能·企业数智化
D-海漠2 小时前
安全光幕Muting功能程序逻辑设计
服务器·网络·人工智能
顾默@2 小时前
个人电脑部署私有化大语言模型LLM
人工智能·语言模型·自然语言处理
AI视觉网奇3 小时前
语音识别数据集
人工智能·语音识别