详解:网络虚拟化卸载加速技术的演进

本文详细介绍了网络虚拟化技术,从传统硬件网卡到虚拟化技术,再到半硬件卸载的vDPA和DPU。随着业务需求提升,出现了如DPDK的vhost-user,以及硬件加速的SR-IOV和DPU,这些技术通过卸载数据处理到硬件,提高了性能并减少了CPU负载。DPU结合了SR-IOV和virtio,通过嵌入式CPU处理数据移动和处理,实现高吞吐量的网络虚拟化。
摘要由CSDN通过智能技术生成

在传统的应用场景中,服务器资源过剩情况普遍,为了充分利用服务器资源,产生了虚拟化技术。虚拟化技术以牺牲部分效率为代价提升了资源的使用率,将原来需要硬件完成的工作,通过软件模拟的方式,满足多个云租户的需要。随着5G、8K等新型业务的不断涌现,应用系统对性能提出了更高的要求,云服务也出现了满足不同QoS要求的分化,有(物理机、裸金属)等不同产品形态。各个功能模块的衔接配合,各租户之间的信息交互都需要高效的网络系统来实现。

网络虚拟化

传统数据中心的服务器使用硬件网卡收发包,硬件网卡连接硬件交换机完成跨服务器的通信。硬件场景下,主机发送数据包时:应用程序将数据写入内核分配的内存中,硬件网卡通过DMA将要发的数据从内存搬运到物理网卡的队列中。

主机接收数据包时:硬件网卡收到数据包时按照CPU分配的硬件网卡内存地址,通过DMA功能把数据包写入对应内存中,然后中断CPU进行后续处理。硬件交换机通过MAC进行二层转发。

在云计算场景下,对计算资源进行了切分,物理服务器上运行多个虚拟机,虚拟机之间通过虚拟网卡实现互通,虚拟网卡连接到虚拟交换机上,实现同一个服务器内不同虚拟机之间以及不同服务器上虚拟机之间的流量转发。

网卡的虚拟化

虚拟网卡模拟硬件网卡,工作机制类同。虚拟网卡包括e1000,virtio等实现技术。virtio是目前最为通用的技术框架。virtio提供了虚拟机和物理服务器数据交换的通用机制,得到了大多数hypervisor的支持,成为事实上的标准。

virtio是一种半虚拟化的解决方案。半虚拟化方案中,Guest OS知道自己是虚拟机,通过前端驱动和后端模拟设备互相配合实现IO虚拟化。这种方式与全虚拟化相比,可以大幅度提高虚拟机的IO性能。virtio分为四层,包括guest OS中各种前端驱动模块,hypervisor上的后端驱动模块,中间两层包括前后端通信的virtio层和virtio-ring层。其中,virtio层是虚拟队列接口,负责前后端之间的通知机制(kick,notify)和控制流程。virtio-ring实现了两个环形虚拟队列,分别用于保存前端驱动程序和后端处理程序执行的信息。

图1:virtio架构

virtio-ring是virtio的核心,包括三个部分:描述符数组desc,可用的available ring和使用过的used ring。

Desc:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值