[转载]弹性块存储(EBS)场景下的VirtIO实现

本文探讨了虚拟化环境中弹性块存储EBS的VirtIO实现,比较了全虚拟化、半虚拟化和PCI设备透传,着重介绍了vDPA(VirtioDataPathAcceleration)方案,该方案通过DPU卸载VirtIO数据后端,提升性能,支持热迁移,是未来云计算发展的趋势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

弹性块存储(EBS)场景下的VirtIO实现

虚拟化是IaaS云计算技术的根基,虚拟机对EBS存储有刚需 现有的I/O虚拟化方案有以下三种

  • 全虚拟化模拟I/O设备:完全由QEMU纯软件模拟的设备,性能较差;
  • 半虚拟化模拟I/O设备:使用VirtIO框架实现设备模拟,绕过KVM内核模块,提高性能;
  • PCI设备透传:性能最优,几乎无性能损耗

对比虚拟化和PCI设备透传,VirtIO是当前业界大云厂商更为通用的方案。常规情况下,计算节点的软件架构如下图所示:Openstack-Cinder为虚拟机提供弹性块存储服务(EBS),同时可对接开源分布式存储系统Ceph,将其作为EBS的存储后端。

常规计算节点


以上架构中,VirtIO前后端和Ceph的RBD Driver都跑在宿主机上,消耗通用算力资源。于是业界开始在VirtIO方案中引入DPU,卸载VirtIO后端

DPU卸载示意


DPU加速时代的标准框架—vDPA

全卸载和vDPA方案对比


Virtio卸载目前有两种实现方案:全卸载和vDPA。
其中,全卸载方案是将VirtIO后端全量硬化实现,vDPA方案则是解耦了数据路径与控制路径,仅硬化实现数据路径后端

我们重点看下vDPA(Virtio Data Path Acceleration),vDPA是一种基于Virtio卸载的虚拟I/O路径加速方案,它由Redhat提出,在2020年被并入Linux内核主线。

vDBA方案主要解耦了VirtIO前后端间的数据路径与控制路径,将数据路径的后端(上图的“数据后端”)卸载到物理网卡中,将控制路径的后端(上图中的“控制后端”)保留在内核或DPDK中。
vDBA方案集成了VFIO方案的高性能以及VirtIO的灵活性和广泛兼容性,具备以下优势:

  • 不额外占用宿主机计算资源的前提下,实现虚拟I/O路径零损耗
  • 控制面可由厂商定义,大大简化了网卡控制面的适配工作;
  • 数据面遵循VirtIO标准,具备普适性,能屏蔽底层硬件;
  • 支持虚机热迁移

相比于全卸载方案,vDPA方案可以认为是未来的方向,它不仅能给虚拟机用,还能给容器以及裸金属服务器用,是各个云厂商的理想状态。

基于vDBA方案卸载VirtIO数据后端到DPU网卡

当我们引入DPU后,可将VirtIO后端卸载到DPU卡上,如下图所示:

转载链接:

https://zhuanlan.zhihu.com/p/591776330

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值