虚拟化从VirtIO without Virt到DPU

Posted 虚拟化云计算

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了虚拟化从VirtIO without Virt到DPU相关的知识,希望对你有一定的参考价值。


VirtIO 是虚拟环境下专门针对I/O的一种半虚拟化的协议框架。在 VirtIO 框架下,可以支持各种不同设备的虚拟化,包括 VirtIO-SCSI,VirtIO-BLK,VirtIO-NVMe,VirtIO-net,VirtIO-GPU,VirtIO-FS,VirtIO-VSock 等等。


而 VirtIO 设备虚拟化的功能一直都是由软件来完成的,设计之初,VirtIO后端是在类似 Qemu这种VMM 里面实现的,后来优化出的VHost技术和VHost-user等也是由软件来完成的。


但是无论如何优化,在性能上来讲,在Host上因虚拟化而产生的额外开销的无法避免的。为了提升云端服务的性能,出现了两种方案:第一种是Bare metal Server,即裸金属服务器,BMS在虚拟化技术上来讲没有任何的演进和创新,而是在服务器的部署和管理方式上虚拟机化了,即能够像虚拟机一样进行快速交付和弹性伸缩。另一种方案是做offload,把一些与业务无关的任务绕开系统,绕开CPU,直接交给专有的硬件去做。


早在2017年re: Invernt大会上,AWS宣布了EC2架构的新演进--Nitro 系统架构,就重新定义了虚拟化基础架构。2015年,亚马逊收购以色列芯片制造商Annapurna Labs。在2017年re: Invernt大会上,AWS宣布了EC2架构的新演进--Nitro 系统架构,将整个服务器的资源(主要指CPU和内存)分给 instances,而虚拟化功能被卸载到专用的Nitro卡上,用以提供网络、EBS和I/O。而Nitro卡就是使用Annapurna Labs定制的ASIC芯片。Nitro System主要由Nitro Hypervisor、Nitro加速卡、Nitro安全芯片三大部分组成,其中Nitro Nitro Hypervisor主要用于替代Xen及其设备处理系统,Nitro加速卡用于处理各Nitro实例的存储、网络、管理、监控以及安全需求,Nitro安全芯片集成在主板上。Nitro 卡包括 Nitro Card for VPC, Nitro Card for EBS, Nitro Card for Instance Storage, Nitro Card Controller, and Nitro Security Chip,分别提供不同的功能。



国内的阿里云在2018年的第二代X-Dragon架构中也实现了虚拟机IO的Offload。



回到Virtio来讲,目前有更多硬件厂商开始尝试原生支持 VirtIO协议,把虚拟化的功能 Offload 到自己的硬件上,这样进一步降低 Host 上因虚拟化而产生的额外开销,做到VirtIO without Virt。目前比较流行的做法是把嵌入式CPU集成到SmartNIC中,网卡处理所有网络中的数据,而嵌入式CPU则被用来做控制路径的初始化和异常情况处理。这种具有Offload的SmartNIC,终将成为一个重要的基本数据处理单元DPU,专门用来处理在数据中心内的各种计算机和存储之间的数据移动和处理。


DPU将成为未来计算发展的三大支柱之一,CPU负责通用计算,GPU负责加速计算,DPU负责数据中心的数据传输和处理,原有CPU和GPU上的很多功能将被Offload到DPU上去。现在云服务厂商竞争的不仅仅是软件,硬件也是云服务商之间军备竞赛的重要因素,未来没有自研CPU、DPU、NIC加持的云服务商,在IaaS领域的生存空间将被挤压的越来越小。



以上是关于虚拟化从VirtIO without Virt到DPU的主要内容,如果未能解决你的问题,请参考以下文章

centos 7 下通过virt-p2v 转换 windows2008R2 为虚拟机

centos 7 通过dd 转换 linux 系统 为虚拟机

KVM安装Virtio半虚拟化Win10

利用qemu-guest-agent实现重置密码的功能(测试中)

使用virt安装虚拟机

Openstack中给windows虚拟机加载virtion驱动