智汇华云:Kernel bypass技术及其在Ceph中的应用介绍

智汇华云:Kernel bypass技术及其在Ceph中的应用介绍

作者:佚名 2019-03-26 15:46:50

云计算 随着云计算业务的快速发展,国内外云计算企业的专利之争也愈发激烈。在云计算这样的技术领域,专利储备往往代表着企业最新的技术实力。华云数据本期“智汇华云”专栏将解析Kernel bypass技术及其在Ceph中的应用介绍,与大家共同分享云计算领域的最新技术与解决方案。

 随着云计算业务的快速发展,国内外云计算企业的专利之争也愈发激烈。在云计算这样的技术领域,专利储备往往代表着企业***的技术实力。华云数据本期“智汇华云”专栏将解析Kernel bypass技术及其在Ceph中的应用介绍,与大家共同分享云计算领域的***技术与解决方案。

背景

Ceph是当前***的开源分布式统一存储,在一套基础架构中同时支持块存储、对象存储和文件存储,支持PB级别的扩展能力,广泛用于云环境中;Ceph来源于Sage Weil博士一项关于存储系统的PhD研究项目,最初被设计为一个分布式文件系统,整体架构基于低速设备而构建,提供毫秒(ms)级别的IO延迟。

从1956年***块机械硬盘(HDD)诞生至今,存储介质的容量和性能都取得了长足的发展,特别是2011前后固态硬盘(SSD)产生后,IOPS出现了指数级的增长,IO延迟也从毫秒(ms)降到了微妙(us),提升了1000倍以上;与此同时,网络传输速率也从10年前的100Mbps,发展到了目前的100Gbps,实现了1000倍的增长。

随着硬件性能的快速提升,传统的软件实现和架构已成为提升软件系统的主要瓶颈,有数据表明,在全NVMe固态介质的配置下,Ceph集群性能只有硬件限性性能的40%左右,所以为了充分利用高性能介质,需要对现有的软件进行重构。

Kernel bypass技术

随着硬件性能的提升,内核中的网络栈和存储栈带来的性能瓶颈越来越明显,为缩短io路径、解决NVMe SSD在传统IO栈上的性能问题,Linux内核从4.x开始引入了新的NVMe IO栈,如下图,可以看新的IO子系统完全摈弃了传统的通用块层和SCSI子系统:

 

而kernel bypass(绕过内核)是解决系统网络栈和存储栈性能瓶颈的另外一种方式,与传统的中断机制不同,kernel bypass的核心思想是:内核只用来处理控制流,所有数据流相关操作都在用户态进行处理,从而规避内核的包拷贝、线程调度、系统调用、中断等性能瓶颈,并辅以各种性能调优手段(如:CPU pin、无锁队列),从而达到更高的性能。目前市场上也有多种类似的技术,如DPDK、NETMAP、SPDK、PF_RING、RDMA等,其中 DPDK 因为更彻底的脱离内核调度以及活跃的社区支持从而得到了更广泛的使用。下文简单介绍下DPDK、SPDK以及RDMA的技术原理:

DPDK(Data Plane Development Kit)是由Intel发起,主要基于Linux系统运行,用于快速数据包处理的函数库与驱动集合,可以极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。DPDK使用了轮询(polling)而不是中断来处理数据包。在收到数据包时,经DPDK重载的网卡驱动不会通过中断通知CPU,而是直接将数据包存入内存,交付应用层软件通过DPDK提供的接口来直接处理,这样节省了大量的CPU中断时间和内存拷贝时间。

SPDK(Storage Performance Development Kit)是由Intel发起,用于加速使用NVMe SSD作为后端存储的应用软件加速库,该软件库的核心是用户态、异步、轮询方式的NVMe驱动。与内核态的NVMe驱动相比,它可以大幅度降低延迟,同时提升单CPU核的IOPS。其架构如下:

 

RDMA(Remote Direct Memory Access)全称远程直接数据存取,就是为了解决网络传输中服务器端数据处理的延迟而产生的。RDMA通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要用到多少计算机的处理功能。它消除了外部存储器复制和上下文切换的开销,因而能解放内存带宽和CPU周期用于改进应用系统性能。下图直观的展示了传统模式和RDMA模式下的差异:

 

SPDK技术在Ceph BlueStore中的应用

先来看一组来自Intel的性能测试数据:用户态NVMe 驱动 VS 内核态NVMe驱动

 

通过上面的对比数据,我们看到了SPDK的优异性能表现及潜力,很自然想到可以通过加速Ceph OSD后端IO来提升Ceph性能,具体做法是:使用SPDK中的用户态NVMe驱动替代内核驱动,bluestore架构如下:

 

从上图可得到如下信息:

1.使用裸设备,数据直接写入块设备,消除文件系统的影响

2.在裸设备上构建轻量级的Bluefs文件系统,用于承载元数据库RocksDB

3.支持插件式的块分配器(当前支持StupidAllocator和BitmapAllocator两种)

4. 支持插件式的块设备驱动(当前仅支持Kernel Driver)

所以,要支持新的块设备驱动只需添加新的设备类型(Type)以及实现相应的驱动(Driver)即可。

DPDK/RDMA技术在Ceph中的应用

在讲DPDK/RDMA的应用前,我们先来看看Ceph中两种常用的网络模块(Messenger):

1.SimpleMessenger

SimpleMessenger是Ceph最早支持的一种网络模块,如其名字所述,实现相对比较简单:它通过一个线程来监听服务端口、接收客户连接;每个新建连接与一个Pipe关联,实现两个端口间类似管道的功能;Pipe内部分别有一个读写线程用来处理这个Pipe有关的消息接收和请求的发送;SimpleMessenger通过共享队列向各连接分发接收到的消息。由于每个连接都需要关联一对读写线程来负责消息和请求的处理,很显然,随着连接数量以及并发的增大,将会产生大量的线程,随之线程上下文切换、TCP/IP的overhead也将成倍的增加,严重影响消息和请求的处理性能。

2.AsyncMessenger

为了解决SimpleMessenger中大量线程上下文切换带来的overhead,AsyncMessenger采用了IO多路复用技术(如:epoll、kqueue)以及线程池,来处理消息接收和请求发送,这样可以非阻塞的处理多个网络请求;为了兼容不同的传输协议栈,AsyncMessenger还通过插件的方式支持多种传输协议,如:posix、dpdk和rdma,其结构如下:

 

从上图我们可以看到通过继承NetworkStack,添加不同的实现即可支持不同的传输协议,如:PosixStack、DPDKStack、RDMAStack。

结合上述的DPDK技术、RDMA技术和SPDK技术,Ceph将能够提供一套纯用户态的存储解决方案,个人认为也是当前存储系统设计的其中一个发展方向。

上文简单介绍了DPDK、SPDK、RDMA技术在Ceph中的应用,后续将对上述各部分进行深度的分析,敬请期待。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/232943.html<

(0)
运维的头像运维
上一篇2025-04-20 09:48
下一篇 2025-04-20 09:50

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注