前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >软硬件融合技术内幕 进阶篇 (小结)

软硬件融合技术内幕 进阶篇 (小结)

作者头像
用户8289326
发布2022-12-13 09:16:49
3820
发布2022-12-13 09:16:49
举报

今天,《软硬件融合技术内幕 进阶篇》告一段落了,我们来做一个小结:

由于虚拟机需要连接物理网络,宿主机的hypervisor为虚拟机创建了一个虚拟网卡,而在运行虚拟机的宿主机上也就需要运行一个虚拟交换机 (vswitch)与这个虚拟网卡进行连接。

随着网络速率从1Gbps,10Gbps到25Gbps的演进,出现了以下的网络虚拟化技术:

Emulate (仿真)方式:虚拟化网卡是一个完全的软件仿真设备,GuestOS调用网卡驱动程序的时候,会产生VM_Exit,在宿主机上Hypervisor上进行网卡的收发;

VirtIO方式:在GuestOS上安装一个特殊的Virtio驱动,其行为是通过VirtIO环形队列,向宿主机HostOS上的VirtIO后端驱动进行数据收发,HostOS再将数据送到QEMU用户态下,QEMU调用TAP口驱动将数据发送到vSwitch;

vHost方式:由于QEMU中实现VirtIO需要多两次内核态和用户态之间的切换,vHost针对这一现象进行改进,将VirtIO后端挪到了内核中实现。当VM操作系统调用VirtIO前端驱动时可以一直在内核中进行处理,而无需额外的用户态和内核态之间的切换;

但是,随着NFV等技术的出现,以及宿主机网络向100G演进,vHost方式的网络处理开销也变得难以接受,工程师们开始利用SR-IOV等方式降低网络处理开销,同时,物理网卡也开始具备了vSwitch的卸载功能,内部集成了vSwitch,能够实现宿主机上的虚拟机互通,以及虚拟机接入网络overlay。

然而,由于物理网卡处理overlay的能力一般为固化的电路逻辑实现,对于云计算技术的演进难以适应,同时,工程师们还期望存储和Hypervisor等其他虚拟化能力也可以有专门的硬件部件实现,因此,出现了SmartNIC这一新事物。

SmartNIC的最低要求是可以对宿主机和虚拟机提供SRIOV的PF和VF,PF和VF能够提供virtio-net和virtio-blk功能。为实现这些功能,业界出现了ASIC/NP,多核ASIC以及FPGA等不同的实现路线。

ASIC/NP最初用于交换机/路由器/DWDM/RAN等设备的数据平面实现,具备极强的网络数据包处理能力,也具备一定可编程能力,可以在微码的操纵下,对数据包进行定制化的处理和修改。其缺陷是无法良好处理存储等协议的数据包,因此,ASIC/NP的技术路线首先被抛弃。

多核SOC (System On Chip) 内部集成了多个处理器核,具备极强的并行转发能力,同时还集成了以太网控制器、数据包分析器及加密算法加速器等硬件加速单元,能够帮助CPU分担一些重复性质的工作,在路由器、防火墙、IP RAN等设备中担当数据平面核心功能,基于多核SOC的SmartNIC也一度百花齐放。但由于SOC内部的硬件加速单元的关键快速路径实现,实质上是固化在电路中的,与ASIC别无二致,对云计算时代功能的快速迭代在适应方面有较大问题,SOC的技术路线也逐渐暴露出问题。

FPGA则是另辟蹊径的路线。FPGA本身具备极强的可编程能力,可以编程为任意的处理逻辑,在运行转发平面简单重复的逻辑时,FPGA有得天独厚的优势。但作为控制平面的情况下,由于控制平面处理逻辑极为复杂,有非常多的程序分支,FPGA内部的门电路/触发器资源有限,难以实现这个级别的逻辑,因此,FPGA作为SmartNIC的技术路线,也具有难以克服的缺陷。

工程师们基于SOC和FPGA各有长短的特点,得出了让此二者互相取长补短的方案:让FPGA作为快速路径,以高并发方式,处理简单逻辑能够处理的大部分数据,而逻辑较为复杂,快速路径无法处理的内容,送到SOC实现的慢速路径和控制平面处理,从而使得SmartNIC能够真正进入商用领域。NVidia的Bluefield DPU,以及Intel的IPU都是这一技术路线的代表。

然而,各大公有云厂商认为,购买其他商业巨头的SmartNIC难以满足自身高度定制化的需求,因此,AWS为代表的公有云厂商也开发了自己的SmartNIC体系,如AWS的Nitro,腾讯云的银杉等。

当然,无论从成本考虑,还是从技术风险控制考虑,在云计算集群中,都不可能一次性在所有宿主机上都安装SmartNIC,也就是无论公有云还是私有云,都面临着向SmartNIC的过渡。这样,虚拟机从普通宿主机迁移到带有SmartNIC的宿主机,就是一个必须面对的问题。在腾讯云的最佳实践中,通过VirtIO驱动屏蔽二者的差异,实现了虚拟机热迁移的同时,停止服务时间几乎让用户无感知。

在云计算集群中,有时会出现部分资源空闲的情况。即使资源调度算法再优化,也有可能出现部分主机CPU空闲,部分主机内存空闲的问题。为尽量利用所有资源,实现降本增效,基于CXL总线的远端内存映射技术也开始成为未来大型云平台的尝试方向。这也将触发云计算硬件演进的新一场革命。

在下一个专题中,我们将自顶向下拆解计算机硬件,直到电路实现的细节级别。

敬请期待。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-11-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 帅云霓的技术小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
专用宿主机
专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档