业界共识,网络层是分布式存储 "性能木桶的最短板"。在存储领域的概念中,一般有两张网络--用户应用与存储对接的"接入网络"和存储系统内部交换数据的"数据分布网络"。传统存储的"数据分布网络"通常用SAS总线或Infiniband网络实现,牺牲的是水平扩展能力和通用硬件特性,换来较低的时延和相对较少的中央处理器负担。而在主流的分布式存储系统中,为了整个集群的硬件通用一致性,和接入部分一样,通常采用基于TCP/IP的以太网进行数据分布工作。基于Linux内核的通用TCP/IP协议栈在10Ge以上的高带宽条件下,面对大量的数据交换工作,性能和资源利用率两方面都难令人满意。
另一方面,TCP/IP网络协议本身是一个复杂庞大的标准,通用的TCP/IP实现通常是一个"谦逊"的方式进行包收发,使得不管在手机,终端,WAN下都有较好表现,但是在目前数据中心网络越来越快的背景下,特别是存储后端速度飞速提高下,通用TCP/IP栈已经很难满足需求。那么是不是意味着在兼容性和性能两方面一定要进行取舍?
DPDK是Intel、6WIND、Calsoft Labs、Tieto等公司应对这一问题的解决方案[1]。在x86架构下,处理数据包的传统方式是CPU中断方式,即网卡驱动接收到数据包后通过中断通知CPU处理,然后由CPU拷贝数据并交给协议栈。在数据量大时,这种方式会产生大量CPU中断,导致CPU无法运行其他程序。而DPDK则采用轮询方式实现数据包处理过程:DPDK重载了网卡驱动,该驱动在收到数据包后不中断通知CPU,而是将数据包通过零拷贝技术存入内存,这时应用层程序就可以通过DPDK提供的接口,直接从内存读取数据包。这种处理方式节省了CPU中断时间、内存拷贝时间,并向应用层提供了简单易行且高效的数据包处理机制,使得网络应用的开发更加方便[2]。

DPDK技术最初为Intel公司贡献,于2013年开源。DPDK可与Intel、Mellanox等厂商的高速以太网卡协同运行,使得在x86平台上构建和ASIC效能相当的网络模块成为可能,因此,在SDN/NFV领域,DPDK被认为是关键的开源技术之一。

为了推进Ceph存储系统中两个网络的融合化,发挥通用硬件潜力,XSKY[3]自从去年底开始尝试利用DPDK实现数据客户端与OSD之间的网络通信,以及OSD之间数据复制的网络通信,充分利用DPDK的缓存管理、无锁队列与用户态轮询式网卡驱动,在x86通用平台和标准IP交换网络下将数据分布网络的时延降到可与传统存储系统相匹敌的水平。

在 Ceph Jewel版启用的 AsyncMessenger 新网络框架中会支持插件式网络后端,如默认的Kernel TCP/IP,DPDK Userspace TCP/IP[5] 和未来的Infiniband/RDMA网络。AsyncMessenger实现同一个网络会话处理层面向不同的网络设备和后端。新的Userspace TCP/IP[4]栈会最小化TCP的损耗,实现对CPU核的负载分区。结合运行于SPDK NVMe驱动BlueStore,最大化DPDK的资源调配优势,实现端到端的无锁调度和内存零拷贝。
根据最近使用ceph_perf_msgr_server/ceph_perf_msgr_client在原型代码上的测试[5](相当于Linux中的iperf 工具,进行在Ceph网络框架上的消息传输压测),如果采用标准的Linux内核TCP/IP栈,IO发起者和远端OSD组件间的PingPong时延大概在100μs左右;使用DPDK优化的网络协议栈,这个数值降至25~30μs,更加接近IB-RDMA协议栈下5~8 μs的水平。可以预见,这一优化必将使通用硬件上的Ceph分布式存储系统的网络层瓶颈得到又一次突破,以便适应更加普遍的OLTP应用场景。
下图中的时延测试数据包括Message Encode/Decode,Fast Dispatch和整个Messenger会话逻辑,这部分固有延迟时间占据1/3左右。

测试环境在两个物理机之间使用Intel 82599ES芯片的万兆网卡,开启了以下硬件Offload 技术:
1. RX/TX TCP Checksum Offload
2. RX/TX IP Checksum Offload
3. TX TCP Segmentation Offload
4. TX VLAN Tag Insert
5. RX RSS
6. RX VLAN Stripping
7. HW CRC Stripping
8. RX TCP Large Receive Offload
9. Hardware Flow Control
该测试同样适用用于Mellanox MT27710 ConnectX-4 Lx。
在业界利用专用硬件设备如高速网卡,高速SSD和FPGA优化方案层出不穷的背景下,用通用和开放架构解决分布式存储性能问题仍然是一个值得尝试的方向。软件定义存储不仅仅是在API,控制面提供灵活性,更应该在数据面提供开放、通用且统一的存储服务。网络与硬盘性能一直是制约存储软件化的关键因素。而现在,借助于开放的DPDK、SPDK对于硬件能力和丰富特性的抽象,我们希望在兼容性和性能上完成一个平衡,让硬件提供机制,软件实现策略,来真正提供软件定义数据面的能力,给用户提供的是一个开放而又高性能的存储服务。
DPDK网络是构建全用户态软件定义存储的关键一步,XSKY会在下个月的Ceph Off-site会议上贡献DPDK部分代码并开始发起对于主线的合并,并在即将到来的4月7日的产品发布会上将揭示这一技术的全景,敬请期待。
好文章,需要你的鼓励
美国多州和部分国家要求特定应用进行年龄验证,澳大利亚已禁止16岁以下用户使用社交媒体。新提案《应用商店问责法案》建议由苹果和谷歌负责统一验证用户年龄,而非各开发者单独验证。这将提升用户体验,用户只需向苹果或谷歌验证一次身份。凭借苹果在隐私保护方面的优势,该方案可扩展至Safari浏览器,为需要年龄验证的网站提供确认信息,而无需透露用户个人数据。
Meta AI首次发布多模态奖励评估基准MMRB2,专门评价AI同时处理文字和图像的能力。该基准包含四大任务类型共4000个专家标注样本,测试23个先进模型。结果显示最佳模型Gemini 3 Pro达75-80%准确率,仍低于人类90%水平。研究揭示AI评价存在视觉偏见等问题,为多模态AI发展提供重要参考标准。
AI编程助手Cursor背后的公司Anysphere宣布收购AI代码审查工具初创公司Graphite。据报道收购价远超Graphite今年早些时候B轮融资时2.9亿美元的估值。此次收购具有战略意义,将AI代码生成与AI代码审查工具相结合,可大幅提升从编写到交付的整体效率。Anysphere估值已达290亿美元,近期频繁收购,上月收购技术招聘公司,今年7月还收购AI客户关系管理初创公司Koala的团队。
快手推出的Kling-Omni是首个真正统一的AI视频制作系统,能够理解文字、图像、视频等多种输入方式,不仅可以生成视频,还能进行复杂编辑和推理。该系统通过三个核心模块的协作,实现了从创意理解到最终输出的全流程自动化,让普通用户也能制作专业水准的视频内容,代表了AI视频技术的重要突破。