带你读《弹性计算—无处不在的算力》第三章:计算产品和技术3.3弹性裸金属服务器和神龙虚拟化(一)

简介: 《弹性计算—无处不在的算力》第三章:计算产品和技术3.3弹性裸金属服务器和神龙虚拟化


3.3.2 适用场景

公共云服务提供商推出弹性裸金属服务器,很显然是作为虚拟机云服务器的有效补充,而不是和自家虚拟机云服务器形成竞争关系。那么弹性裸金属服务器适合哪些场景呢?

混合云和第三方虚拟化软件部署

伴随着公共云的高速发展,通过混合云打通用户线下专有云和线上公共云资源的需求日趋强烈。OpenStack VMware IaaS Stack 在公共云上部署,同时管理用户线上和线下 IaaS 资源,可以看到,VMware Cloud on Alibaba Cloud 就属于此种混合云业务应用场景。

OpenStack VMware Cloud IaaS Stack 在公共云上部署,最为关键的就是要求公共云提供 CPU 虚拟化的能力,否则在普通虚拟机中部署嵌套虚拟化技术,其性能完全无法接受。具体到 Intel x86 CPU 体系,则要求公共云平台对外提供计算资源的完整虚拟化特性(Intel VT-x VT-d 等硬件虚拟化技术),使得 VMware ESXiKVMXenHyper-V 等虚拟化平台和技术能够平滑上云。而弹性裸金属服务器就能满足这个要求。

高隔离容器部署

容器技术具备轻量敏捷等优势,正在成为 DevOps 主流技术。相对于公共云 VM 部署容器,使用弹性裸金属服务器部署容器具备零虚拟化开销等性能优势,如图 3-17 所示。

虚拟机物理机软件Hypervisor (和VM部署于同一台服务器) 神龙Hypervisor (独立硬件部署) 用户操作系统层Hypervisor层高速低时延伸硬件互联

image.png

3-17  高隔离容器部署


同时我们注意到 Clear ContainerRunV,以及 Kata Container 等具备高隔离高安全特性的新型容器技术,依赖 CPU 完整虚拟化特性(比如 Intel VT-x)。此种高隔离高安全的容器技术只可能部署在弹性裸金属服务器上。

高质量计算服务

高质量计算服务指零资源争抢、零虚拟化开销和高隔离高安全。

虚拟化技术在提高数据中心资源利用率的同时,引入了资源争抢等业务难题。 多个 VM 运行在一台物理服务器上,CPU 核、L1/L2/LLC 缓存、内存带宽等CPU 和内存子系统资源通过虚拟化技术抽象和切分,同时提供给多个 VM 使用。传统的虚拟化技术很难根本解决各VM 间资源的争抢问题。而弹性裸金属服务器不存在此问题。

高速低时延 RDMA 网络支持场景

RDMA 网络在超低时延和减轻 CPU 负载等方面优势明显,但是在网络虚拟化支持方面的短板明显 ;而公共云网络部署的关键是通过网络虚拟化实现网络资源的租户隔离。弹性裸金属服务器在支持原生 ROCE IB RDMA 网络方面,具有天然优势。

因此可以看到各家云服务提供商均以裸金属服务器支持 RDMA 网络,以此部署满足HPC 和异构计算的高速低时延互联需求。

RISC CPU 支持

Intel x86 体系结构对 CPU 虚拟化技术等软硬件的支持最为完善,加上 Intel Xeon x86 处理器在服务器市场的垄断地位,主流公共云 IaaS 虚拟化技术均基于 Intel Xeon x86

但是必须看到,对于特定细分市场,RISC CPU 仍然具备相当优势。比如 Power ISA CPU 在金融保险等市场的优势地位,以及 ARMv8 ISA 在新兴服务器市场崭露头角。如何支持 Power ARMv8 RISC 服务器,是公共云服务提供商必须回答的问题。

使用弹性裸金属服务器无须 CPU 和内存虚拟化技术的特别适配,就能够快速将 Power ARMv8 等处理器在公共云上线部署。

GPU 性能无损输出

GPU 产品对虚拟化技术支持有限,通过传统虚拟机方式输出 GPU 计算性能,会有严重的性能下降,而弹性裸金属服务器可做到 GPU 性能无损输出。


3.3.3 弹性裸金属技术

1. 弹性裸金属技术背景

2003 年,Xen SOSP 发表Xen and the Art of Virtualization,拉开了x86 平台虚拟化技术的大幕。2006 年,AWS 发布EC2Elastic Compute Cloud),同年发布S3 Simple Storage Service),拉开了公共云服务的大幕。EC2 的核心正是基于Xen 虚拟化技术。虚拟化技术赋予了EC2 核心产品价值——弹性,同时虚拟化技术给网络虚拟化、存储虚拟化,和管控系统提供了业务部署点。

第一代虚拟化技术的特征是:Xen/KVM + 软件network vSwitch + 软件storage initiator + 管控等All on Xeon。这代技术的痛点和思考 ,如图3-18 所示。

传统KVM 虚拟化系统导致CPU 计算特性损失

众所周知,IaaS 公共云技术的核心是Intel 至强处理器VT 等硬件辅助虚拟化技术(Hardware-assisted virtualization),配合主流虚拟化系统软件(KVM/Xen/VMware ESXi 等),实现了IaaS 弹性计算;客户则是通过ECS(或者 AWS EC2) 购买虚拟机(VM)形式的计算资源。

image.png

3-18  第一代虚拟化技术的痛点和思考

得益于高度成熟的虚拟化技术,VM 形式的计算资源“几乎”等价于客户线下的物理服务器资源,但是“几乎”并不是“ 完全”。一个典型的案例就是 Intel 至强处 理器的VT 硬件辅助虚拟化能力会被公共云服务提供商的虚拟化系统“消费掉”,客户无法在公共云VM 实例中再次部署虚拟化系统,致使传统OpenStack VMware based workload 无法在公共云部署。


客户希望用一套OpenStack/VMware 统一管理公共云线上资源和专有云线下资源,同时在控制面和数据面打通线上线下资源,在兼顾专有云数据安全、法律合规的基础上,充分利用公共云计算资源的弹性能力,但是由于Intel 至强处理器VT 硬件辅助虚拟化能力“被消费”,使得此种混合云技术很难在公共云实现。云原生安全容器创新依赖Intel VT 硬件辅助虚拟化能力输出,这是传统虚拟化无法解决的问题。

传统KVM 虚拟化系统导致资源争抢不可避免

以传统的KVM 虚拟化系统为例,双路Skylake96 HT)计算资源的虚拟化典型部署情况是:有8 HT 部署网络虚拟化vSwitch 和存储虚拟化,对外售卖88 HT 作为vCPU 计算资源。我们需要注意到,对外售卖的88HT vCPU 计算资源和8HT 网络/ 存储虚拟化是部署在同一组Skylake CPU 上的,那么如下共享资源争抢是不可避免的。

CPU DDR 带宽、LLC 等共享资源的争抢。在机头网络带宽迅速提升的当下, DDR 带宽、LLC 等资源争抢现象愈发突出。

半虚拟化(Para-virtualizedI/O 设备模型等资源争抢引入售卖CPU 抖动和售卖I/O 抖动。

存储和网络等I/O 内部层级化HQoS 难于实施。一般而言,层级化HQoS 是解决资源争抢的有效手段,电信级网络设备一般会部署HQoS 进行资源调度, 而HQoS 的典型部署方法需要通过芯片实现。


传统KVM 虚拟化系统导致I/O 性能瓶颈

传统KVM 虚拟化系统由(计算虚拟化)QEMU-KVM + (网络虚拟化)DPDK based vSwitch +( 存储虚拟化)SPDK based I/O initiator 构成。

Intel 引入VT 硬件虚拟化支持后,配合KVMXen 等虚拟化系统软件,由CPU 指令处理的数据面和KVM 等虚拟化系统软件形成了控制面及异常处理路径,此种软硬件协同设计既实现了CPU 和内存虚拟化的数据路径的最小开销,又保留了KVM 控制路径和异常处理路径的高度灵活性。

同处于数据路径的存储虚拟化和网络虚拟化虽然通过DPDK SPDK 等技术接近了软件优化的技术极限,但是仍然无法和芯片的加速性能媲美。特别是在网络吞吐向100GbE 演进的过程中,交换网络的带宽能力和Intel 至强处理器的处理能力间的差距逐渐拉大,在传统KVM 虚拟化系统下,通过DPDKSPDK 等纯软件进行I/O 性能优化的瓶颈日渐凸显。


2. 弹性裸金属技术实现

第一代虚拟化技术的业务痛点,催生了第二代虚拟化技术的产生,弹性裸金属产品也应运而生。那么第二代虚拟化技术具备哪些特征呢?

全部I/O 设备通过VT-d 设备直通模式进入VM,以此减少para-virtualization I/O 半虚拟化开销。

随着VT-d 设备直通的引入,网络虚拟化和存储虚拟化需要一个新的业务部署点。

VT-d 设备直通引入后,SR-IOV 等技术却无法达到和传统QEMU PV 设备一样的灵活性,I/O 硬件虚拟化催生Intel scalable IOV 的业务诉求。

随着存储虚拟化和网络虚拟化新的业务部署点的产生,这个业务部署点很显然需要针对计算、网络、存储、安全等IaaS 核心业务部署定制化芯片加速。

同时支持传统VM、弹性裸金属服务器、安全容器等IaaS 最新业务诉求。


简而言之,Hypervisor 的主要组件全部下沉进入一个定制计算节点,该定制计算节点完成I/O 设备虚拟化、网络虚拟化、存储虚拟化和管控部署,以及安全特性部署等。

而主机侧,针对公共云的需求,从计算和内存原来的QUME + KVM 方式,经过高度定制和瘦身后,降低了主机资源占用并提升计算服务质量,演化到了裸金属架构。

第二代虚拟化技术使弹性裸金属的产品落地成为可能。阿里云在2017 10 月举行的杭州云栖大会上正式发布弹性裸金属产品,同年11 月,AWS reinvent 发布EC 2 版本弹性裸金属产品。中美公共云服务提供商可以说在弹性裸金属的产品定义、产品适用场景和技术上殊途同归。从3.3.1 节和3.3.2 节中,我们可以看到弹性裸金属的核心产品技术逻辑:通过技术创新,使普通物理服务器具备虚拟机的弹性和使用体验。

正是有了这个逻辑,我们可以推演出技术创新的突破点:通过软硬一体化的技术手段,让普通物理服务器能够无缝接入云平台的管控系统、VPC 云网络和EBS 云盘。

VPC EBS 云盘接入

我们知道在虚拟化技术中,虚拟机是通过Virtio 实现网络和存储I/O 设备的;同时,我们注意到,Virtio 这个半虚拟化设备模型实际上是严格按照“真实”PCIe 设备规范的定义而实现的I/O 设备。也就是说,Virtio 半虚拟化设备完全可以通过芯片实现。90


在通过芯片实现Virtio 的时候,考虑到VPC EBS 云盘实现的复杂


在通过芯片实现Virtio 的时候,考虑到VPC EBS 云盘实现的复杂度,我们采用了新的模式:让芯片透传PCIe TLP 包到可编程处理器,然后通过可编程处理器复用QEMU 已有的成熟的Virtio 后端代码。此种模式能够最大限度地保持既有的虚拟化架构,做到云平台管控系统、VPC 系统、EBS 云盘系统的“零修改”。

实现大量弹性网卡(ENI)和EBS 云盘设备接入

VT-x/KVM 虚拟化技术具有天然技术优势,支持大量网络和存储设备。而弹性裸金属产品的核心出发点就是要兼具虚拟机和传统物理机的优点。虚拟机对大量网络设备和存储设备的支持,必须在弹性裸金属产品中予以实现。

在多种规格的网卡和存储PCIe I/O 设备接入时,根据PCIe 规范有两个方法:1) 通过多级PCIe switch 扩展,实现大量PCIe switch downstream port,然后每个PCIe switch downstream port 挂载一个PCIe I/O 设备;2)通过PCIe SR-IOV 技术,支持大量PCIe virtual functionVF)设备。

进一步对比虚拟机I/O 设备,我们可以看到设备的热插拔、Guest OS 的零侵入是公共云IaaS 产品的刚需。只有通过多级PCIe switch 扩展模式,才能通过PCIe native hotplug 技术标准,实现上述和虚拟机一致的设备热插拔和Guest OS 零侵入。产品需求明确后,我们创新性地通过芯片RTL 实现了全球第一个片上多级PCIe switch 扩展,当前最多能够支持63 个设备,以此实现大数量规格的网络ENI 和存储EBS 云盘PCIe I/O 设备接入;同时由于支持原生PCIe 原生热插拔能力,保证了Guest OS 的零侵入,以及客户在Open API 和控制台等方面和虚拟机一致的使用体验。

3. X-Dragon Hypervisor 基于神龙的软硬一体的虚拟化技术

在阿里云神龙硬件平台下,虚拟化架构也做了相应的升级,使计算虚拟化部分的架构更加清晰简捷,让虚拟机能提供接近物理机的性能。如图3-19 所示,神龙虚拟化架构的主要特点是:I/O 链路从传统的通过软件实现转变为通过硬件和直通设备实现;存储虚拟化、网络虚拟化都在MOC 卡上实现;同时将管控系统、监控程序等都下沉到MOC 卡上。在提供计算服务的物理机上,只运行自己裁剪的Linux 操作系统和轻量化的虚拟机监控器。

神龙虚拟化架构比起传统的KVM 虚拟化的关键优化技术点简要描述如下。

1)自研虚拟CPU 调度器——VOS

VOSVM-Oriented Scheduler)是面向虚拟机的调度器,是阿里云在神龙平台上自研的调度器,减少了虚拟CPU 调度开销,同时将其他控制面的作业调度给虚拟CPU 带来的争抢下降一个数量级研发的更加稳定和高效的计算虚拟化产品。


3-20 所示,VOS 调度器实现的是非公平调度(与内核中的CFS 调度器不同),让虚拟CPU 线程具有更高执行优先级,保证客户购买的虚拟机的计算性能,而控制面的作业调度执行被安排在预先设定的一个较低优先级和预设时间片中投机执行,而且控制面的作业是可以被内核态抢占的。

售卖给用户的产品阿里云系统软件栈计算服务轻量化VMM TinyOS 盘古(存储虚拟化) 虚拟交换机(网络虚拟化) API、监控(控制程序) 硬件驱动程序虚拟机实例虚拟机实例虚拟机实例容器实例1.得益于其他组件的下沉, 系统软件变得非常薄。2.从开销和性能角度看, 都非常接近物理机。3.支持容器实例。硬件资源(网卡、磁盘) 硬件资源(CPU,缓存,内存……) PCIe MOC I/O 服务(采用硬件实现, 旁路系软件栈) 阿里云硬件系统

image.png


3-19  神龙虚拟化架构

通过VOS 调度器,虚拟CPU 的调度延迟低到毫秒级;通过ping flood 来测试网络ping 的延时抖动,抖动下降到了百万分之一左右(即ping 一百万个报文只遇到1 个报文延迟的比例比均值明显偏大),抖动比之前的架构下降了两个数量级。在物理机上执行的控制面的作业包括:虚拟机生命周期管理、QEMU 控制线程、写日志、监控执行、包括热升级/ 热迁移在内的运维操作,在VOS 的管理下,正在运行的虚拟CPU 的干扰被控制在一个非常低的水平,虚拟机的计算稳定性大幅提升。

2)内存优化:内存分配器VMEM 与用户态QEMU 内存瘦身

内存分配器VMEM 是阿里云研发的用于虚拟机内存分配的分配器,可以大幅减少内核维护的内存页表等开销(开销从以前的1.5% 左右下降到0.1% 左右),支持1GB 的大页进一步减少EPT 开销,实现了通过vMCE 对硬件错误的内存页进行隔离。

image.png


在内存方面,我们通过QEMU 对其进行瘦身,将单个虚拟机的QEMU 进程内存开销降低到5MB 以内,通过全新设计的用户态内存分配器避免了内存碎片,同时对不常用的内存资源进行延迟分配。

通过这两种内存优化手段,神龙虚拟化的架构比传统KVM 虚拟化节省了约10% 的内存。

3)虚拟化运行加速

通过硬件加速虚拟机中的HLT MWAIT 指令,使其唤醒延迟与物理机几乎一样。同时将定时器进行硬件虚拟化,在虚拟机中访问定时器不会再触发VMEXIT, 从而提升虚拟机性能。通过这些优化,进程调度性能得到了较大提高,图3-21 的调度延迟实测数据展示的是在某次测试中,调度两百万个进程,并统计每次调度的延迟的结果。可以看到,延迟有15% 的下降。图中的g5.4xlarge 实例是之前的KVM 架构的ECS 虚拟机实例规格,g6.4xlarge 是神龙硬件平台下经过优化的ECS 虚拟机实例规格。

4)极速启动

为了让虚拟机加速启动,我们对神龙虚拟化架构也做了很多优化。首先是资源的快速分配,包括实现多线程的初始化、虚拟机内存页分配时的批处理化。同时对虚拟机依赖的固件进行裁剪、重构、优化,使虚拟机实现毫秒级加载。我们还对一些特殊的应用场景应用了内部称为vmfork 的技术,让虚拟机能实现秒级的快速复制。

image.png

5)物理机CPU 全供给虚拟机

在传统的KVM 虚拟化架构下,宿主机的CPU 资源是不可能全部供给虚拟机使用的,一般还要预留CPU 核,用于网络虚拟化软件、存储虚拟化软件、管控系统、监控脚本等的计算资源开销。在神龙架构下,网络虚拟化和存储虚拟化都通过硬件虚拟化的方式下沉到一张MOC 卡上,同时管控系统和绝大部分监控脚本都下沉到MOC 卡上运行,这样物理机CPU 资源就可以全部通过虚拟化的方式分配给虚拟机使用。经过评估,通过下沉这部分CPU 开销到MOC 卡上,物理机的CPU 资源利用率能提高10% 左右。

相关文章
|
6月前
|
存储 机器学习/深度学习 人工智能
硅谷GPU单节点服务器:技术解析与应用全景
“硅谷GPU单节点服务器”代表了在单个物理机箱内集成强大计算能力,特别是GPU加速能力的高性能计算解决方案。它们并非指代某个特定品牌,而是一类为处理密集型工作负载而设计的服务器范式的统称。
|
11月前
|
存储 机器学习/深度学习 数据库
阿里云服务器X86/ARM/GPU/裸金属/超算五大架构技术特点、场景适配参考
在云计算技术飞速发展的当下,云计算已经渗透到各个行业,成为企业数字化转型的关键驱动力。选择合适的云服务器架构对于提升业务效率、降低成本至关重要。阿里云提供了多样化的云服务器架构选择,包括X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器以及高性能计算等。本文将深入解析这些架构的特点、优势及适用场景,以供大家了解和选择参考。
1429 61
|
9月前
|
人工智能 运维 安全
MCP协议深度解析:客户端-服务器架构的技术创新
作为一名长期关注AI技术发展的博主摘星,我深刻感受到了MCP(Model Context Protocol)协议在AI生态系统中的革命性意义。MCP协议作为Anthropic公司推出的开放标准,正在重新定义AI应用与外部系统的交互方式,其基于JSON-RPC 2.0的通信机制为构建可扩展、安全的AI应用提供了坚实的技术基础。在深入研究MCP协议规范的过程中,我发现这一协议不仅解决了传统AI应用在资源访问、工具调用和上下文管理方面的痛点,更通过其独特的三大核心概念——资源(Resources)、工具(Tools)、提示词(Prompts)——构建了一个完整的AI应用生态系统。MCP协议的客户端-
658 0
MCP协议深度解析:客户端-服务器架构的技术创新
|
8月前
|
存储 固态存储 Linux
从 0 学服务器虚拟化:VMware 搭建 3 个虚拟主机,个人 / 小企业够用的方案
服务器虚拟化技术通过在单台物理机上运行多个虚拟机,显著提升资源利用率和管理灵活性。本文以 VMware ESXi 8.0 Update 3e 为例,详解如何搭建经济实用的虚拟化环境,支持 3 个虚拟主机稳定运行,适合个人开发者和小企业降低硬件投入、实现数据本地化与安全存储。
1820 0
|
弹性计算 安全 数据库
【转】云服务器虚拟化内存优化指南:提升性能的7个关键策略
作为云计算服务核心组件,虚拟化内存管理直接影响业务系统性能表现。本文详解了内存优化方案与技术实践,助您降低30%资源浪费。
344 0
【转】云服务器虚拟化内存优化指南:提升性能的7个关键策略
|
9月前
|
存储 安全 虚拟化
全面解析服务器虚拟化:云计算时代的核心技术架构
服务器虚拟化是云计算的核心技术,通过资源池化提升IT效率。本文详解其原理、部署优势及在数字化转型中的关键作用,涵盖技术架构、应用场景与选型指南,助力企业构建高效灵活的云环境。
841 0
|
安全 网络安全 定位技术
网络通讯技术:HTTP POST协议用于发送本地压缩数据到服务器的方案。
总的来说,无论你是一名网络开发者,还是普通的IT工作人员,理解并掌握POST方法的运用是非常有价值的。它就像一艘快速,稳定,安全的大船,始终为我们在网络海洋中的冒险提供了可靠的支持。
340 22
|
12月前
|
存储 机器学习/深度学习 算法
阿里云X86/ARM/GPU/裸金属/超算等五大服务器架构技术特点、场景适配与选型策略
在我们选购阿里云服务器的时候,云服务器架构有X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、高性能计算可选,有的用户并不清楚他们之间有何区别。本文将深入解析这些架构的特点、优势及适用场景,帮助用户更好地根据实际需求做出选择。
|
12月前
|
存储 机器学习/深度学习 人工智能
阿里云第八代云服务器c8i与g8i深度解析:技术对比、场景适配与选购指南
阿里云服务器计算型c8i与通用型g8i实例属于阿里云的第八代云服务器实例规格,是除了计算型c7与c8y和通用型g7与g8y之外同样深受用户喜欢的云服务器实例规格。本文将详细解析计算型c8i与通用型g8i实例的技术特性、适用场景、性能优势,以及最新的活动价格情况,并为用户提供购买建议。
|
12月前
|
存储 弹性计算 人工智能
阿里云服务器ECS g8i实例怎么样?新一代g8i实例技术特性与场景应用解析
阿里云服务器ECS g8i实例怎么样?对于很多企业用户说,云服务器的性能、安全性和AI能力是用户非常关注的。无论是处理大规模数据、运行复杂算法,还是保障业务应用的安全,都需要云服务器具备卓越的性能和强大的功能。阿里云推出的第八代云服务器ECS g8i实例,凭借其卓越的性能、增强的AI能力和全面的安全防护,成为了市场关注的焦点。本文将为大家解析ECS g8i实例的技术特性、产品优势、适用场景及与同类产品的对比,同时介绍其收费标准和活动价格,以供大家了解和选择。
阿里云服务器ECS g8i实例怎么样?新一代g8i实例技术特性与场景应用解析