网络虚拟化
文章平均质量分 88
dillanzhou
这个作者很懒,什么都没留下…
展开
-
网络虚拟化——vduse
在上一篇文章《网络虚拟化-vDPA_dillanzhou的博客-CSDN博客》中,我们讨论了vDPA技术。通过vDPA技术,guest/host上的用户态/内核态virtio驱动都可以通过同一套vDPA框架和驱动来和vDPA设备交互,获得硬件数据面加速。由于vDPA在virtio/vhost和vDPA设备之间又增加了一层中间层,因此理论上说可以在vDPA框架中实现纯软件的vDPA设备和对应的驱动。这个软件vDPA设备可以在内核实现,intel就在内核中实现了一个vdpa_sim设备,用于在没有vDPA硬件设原创 2021-12-09 01:03:12 · 1464 阅读 · 2 评论 -
网络虚拟化-vDPA
在virtio硬件实现的基础上,又出现了一种技术,称作vDPA(virtio data path acceleration)。顾名思义就是只用硬件加速virtio的数据面。在vDPA技术框架中,硬件设备只需要支持virtio的数据面接口,也就是virtqueue/vring队列结构,控制面接口和实现仍然可以保留设备特有的方式。vDPA的意义在于降低了网卡支持virtio接口的难度。本文将讨论vDPA技术的原理和实现。原创 2021-12-02 02:00:36 · 8041 阅读 · 5 评论 -
网络虚拟化——SR-IOV
之前的多篇文章介绍了网络虚拟化常见的技术实现,特别是virtio/vhost技术的实现。虽然virtio/vhost架构显著改善了虚拟网络的性能,但virtio网卡仍然是软件模拟的设备,其性能稳定性和资源占用率显然无法达到物理网卡的水平。虚拟网络其实还有一种实现方式——设备直通,让虚拟机与网卡直接交互,从而获得最高的网络性能。但这种方式显然无法大规模使用,因为物理网卡的数量是有限的,成本也很高,无法为每个虚拟机分配一个。SR-IOV(Single Root I/O Virtualization)技术就是原创 2021-11-16 00:10:36 · 10797 阅读 · 0 评论 -
网络虚拟化——virtio-user
在上一篇文章(网络虚拟化——vhost-user_dillanzhou的博客-CSDN博客)中,介绍了通过DPDK框架,将vhost移入用户态的技术——vhost-user的原理。其中也提到了可以将virtio设备驱动也放到用户态,从而实现更高效率的基于virtio设备的网络收发应用。DPDK中提供了virtio网卡的用户态驱动,称为virtio-user。从前面几篇文章的介绍中我们可以发现,virtio设备和驱动从虚拟机角度来看和普通的网卡设备没有什么区别,只是数据面和控制面接口符合virtio规范而原创 2021-11-03 23:45:26 · 2821 阅读 · 4 评论 -
网络虚拟化——vhost-user
在上一篇文章(网络虚拟化——vhost_dillanzhou的博客-CSDN博客)中,介绍了vhost技术和vhost-net内核模块的原理。原创 2021-10-23 23:40:08 · 3049 阅读 · 1 评论 -
网络虚拟化——vhost
在上一篇文章(网络虚拟化——virtio)中,我们讨论了virtio技术的由来、原理和实现。virtio为虚拟IO设备提供了一套标准的接口和实现。同时由于其半虚拟化的特质,virtio驱动在设计和实现时尽可能减少了主要操作路径上会触发host后端操作(vmexit)的指令以提升IO效率。但在执行IO操作时,仍会不可避免的需要触发后端操作。例如virtio-net驱动发包时,在向tx virtqueue写入buffer后必然要kick后端来处理buffer,这个kick就是一个IO写操作。当后端在用户态q原创 2021-10-10 22:29:14 · 5957 阅读 · 0 评论 -
网络虚拟化——virtio
前言在上一篇文章(网络虚拟化——QEMU虚拟网卡)中,讨论了经典的网络设备全虚拟化技术。这种技术不需要guest内核对虚拟网络设备有任何的感知和特殊处理,但性能较差,一次读写操作可能会产生多次需要Hypervisor模拟实现的行为。为了改善虚拟网络设备的性能,各类Hypervisor都提供了自己的半虚拟化网络技术。在这种模式下,guest内核中使用的网络设备和驱动是为虚拟化场景特殊设计和实现的,驱动的实现特别适配了Hypervisor的一些特性,尽量减少了需要Hypervisor介入进行模拟实现的指原创 2021-09-28 00:39:27 · 10432 阅读 · 0 评论 -
网络虚拟化——QEMU虚拟网卡
写在前面网络虚拟化曾经只是内核虚拟化功能开发者才会关注的技术。但随着云计算模式和云原生概念的推广,云上业务的部署形态都已转向了虚拟机和容器,而两者都依赖网络虚拟化技术提供高性能网络功能,因此虚拟网络已经是云环境下的主流网络形态。而云上的虚拟机和容器对网络虚拟化技术的易用性、功能和性能都提出了更高的要求。对于云上环境的网络基础设施开发者来说,网络虚拟化已经成为了一种必须掌握的技术。但在学习网络虚拟化技术时,笔者没能找到一个能够完整介绍网络虚拟化技术类型、原理和实现的信息源,特别是中文资料。因此,笔者计原创 2021-09-10 01:06:19 · 7961 阅读 · 0 评论