阿里云神龙架构入选ASPLOS 20'论文解读

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 阿里云本次入选的论文题为《High-density Multi-tenant Bare-metal Cloud》,由阿里云研究员张献涛带领的神龙技术团队撰写,详细解读了神龙架构的技术优势:超越传统物理机100%的算能、分钟级交付能力、安全物理隔离和云平台全系打通等。

日前,ASPLOS 2020公布了计算机界最新科技成果,其中包括阿里云提交的名为《High-density Multi-tenant Bare-metal Cloud》的论文,该论文阐述了阿里云自研的神龙服务器架构如何解决困扰云计算行业多年的虚拟化性能损耗问题,打破物理机的性能神话,让云服务器突破性能极限。

此次入选意味着全球计算机顶会对阿里云自研技术的认可,也意味着中国创新技术在全球计算机界争得了一席之地。

image

ASPLOS 是综合体系结构、编程语言和操作系统三个方向的计算机系统领域顶级会议,从1982年创办至今推动了多项计算机系统技术的发展,一般论文录用率在20%左右。

阿里云本次入选的论文题为《High-density Multi-tenant Bare-metal Cloud》,由阿里云研究员张献涛带领的神龙技术团队撰写,详细解读了神龙架构的技术优势:超越传统物理机100%的算能、分钟级交付能力、安全物理隔离和云平台全系打通等。

虚拟化是云计算的基础,它将物理服务器虚拟化成想要的计算单元,进而拥有最大的弹性,然而却会导致性能损耗。如何解决这样的矛盾?阿里在2017年推出了“神龙架构”,弥补虚拟化的性能损耗,同时拥有云的弹性和运维优势。

2019年杭州云栖大会上,阿里云发布了第三代神龙架构,全面支持ECS虚拟机、裸金属、云原生容器等,在IOPS、PPS等方面提升5倍性能,可帮助用户降低50%的计算成本。去年双11核心系统100%上云,神龙大放异彩,成功扛住了54.4万笔/秒的订单创建峰值,与同配置物理机相比,不仅业务系统性能提升20%,而且抗高负载压力表现更好,整个业务性能非常平稳和线性。

不仅如此,神龙还是目前最流行的容器技术的最佳拍档。基于神龙架构的阿里云容器服务对比物理机有10%-30%的性能优势。

目前,神龙架构已大规模应用于淘宝、天猫、菜鸟等业务,用于解决高峰值的性能瓶颈问题。 本次入选ACM ASPLOS论文题目为《High-density Multi-tenant Bare-metal Cloud》,由阿里云研究员兼创新产品线总负责人张献涛、阿里云高级技术专家郑晓、阿里云资深技术专家杨航及其他神龙团队共同撰写。

该文首次全面解析了时下流行的裸金属云计算服务、神龙架构内涵。将作为新一代虚拟化技术发展方向的神龙,与现有架构作对比,详细阐述了两者在软硬件、核心计算性能、虚拟化开销的异同。论文中对多种业务表现上面的性能数据充分揭示了神龙裸金属架构的特有优势。以下为该论文的详细解读。

摘要:

虚拟化是云计算的基石,多租户(Virtual Machines)共享一个物理服务器,提高了数据中心服务器的利用率,使得云计算服务商可以提供更经济高效的服务。但是,虚拟化下多VM共享物理服务器的技术会引入不少安全问题,尤其是最近的侧通道攻击等。此外, CPU、内存和 I/O 在虚拟化性能方面会产生不可忽略的开销。为此,物理服务器租赁已成为公共云中新兴的服务类型,物理服务器租赁为用户提供了强大的隔离性、对硬件的全面和直接访问以及更可预测的性能。但是物理服务器租赁的方式也有其缺点:它只能针对单租户,且不具备可扩展性、成本又高,适应性弱。当前物理服务器租赁只能将整个物理服务器租给单个用户,并且在租用服务器后用户无法方便的替换镜像,存储等云计算的基本服务。

在本文中,我们提出了一种创新的高密度多租户共享弹性裸金属服务器的设计,也就是阿里云神龙弹性裸金属架构(论文中为了满足评审的要求称为BM-Hive)。在阿里云神龙高密裸金属架构中,每个裸金属实例都运行在一个单独设计的计算子板上,该计算子板带有专有的 CPU 和内存模块。BM-Hive为每个计算子板配备了硬件/软件混合 virtio I/O 系统,使客户实例能够直接访问阿里云网络和存储服务。BM-Hive 可在单个物理服务器中托管多达 16 个裸金属实例,显著提高裸金属服务器的实例密度。此外,BM-Hive 在硬件级别严格隔离每个裸金属实例,以提高安全性和隔离性。神龙弹性裸金属高密方案已经在阿里云的公共云部署。它目前同时为数以万计的用户提供服务。

介绍

物理服务器租赁的出现是为了满足对性能或者安全性有非常苛刻要求的客户。但对于单租户,低密度的物理服务器却存在成本高的问题。公共云上面的大多数客户是中小规格客户。我们统计云服务上面的各个规格的VM的vCPU数量,对于需求小于32Core 的VM占到了95%以上。而现有物理服务器的CPU规格最小也有64Core,最高达到128Core。这些中小客户别无选择,要么放弃物理机级别的性能与安全性,采用传统虚拟化的VM,要么租赁整个服务器,而放弃性价比。这也是不具备弹性的裸金属公共云尚未成为主流的重要原因之一。

为此,我们设计了神龙高密度弹性裸金属架构:一个可扩展的,支持多租户的弹性裸金属硬件虚拟化方案。该裸金属框架(BM-Hive)既能保证CPU和内存拥有本地物理机运行时的性能,又实现IO设备的硬件虚拟化,同时具备云计算的分钟级计费、弹性扩容等最重要功能。BM-Hive由三个模块组成:计算子板,IO-Bond,BM-hypervisor。计算子板包含了可替代的裸金属实例的CPU与内存;BM-hypervisor运行在我们的基础物理服务器上,它可以托管最大16个计算子板;IO-Bond是连接计算子板与BM-Hypervisor的纽带。我们在后续章节将会详细介绍这三个部分。

采用BM-Hive的方案显著优点:

  • 经济实惠:采用了高达16个裸金属实例共享一个物理服务器,能显著降低客户成本
  • 单线程性能优异:裸金属实例可以自由采用高主频CPU,比如i7 4.2GHz
  • 兼容当前运维体系:客户可以像使用其他非裸金属实例一样操作裸金属实例,包括制作镜像、更换系统盘、添加/删除云盘等云计算特有便捷操作

对比当前公共云上多种不同实例优劣如下:

image

神龙裸金属架构是软硬一体化的虚拟化架构

神龙裸金属软硬一体虚拟化架构是对现有虚拟化的一个自然演进与升级换代。入下图所示,在整体架构上面,BM-Hive与传统虚拟化方案在CPU/内存方面、运维体系接入、多租户复用等方面非常相近。神龙裸金属开发了一套适合裸金属共享方案的软硬件一体BM-Hypervisor来处理计算子板的IO子系统。

image

当前虚拟化主要面临如下问题:

在详细探讨神龙裸金属架构之前,我们先来看看当前云计算虚拟化面临的一些问题。而神龙裸金属软硬一体虚拟化方案很好的解决了这些问题。

  • 虚拟化开销无法满足高性能需求
  • 虚拟化性能存在无法控制的抖动,从而无法满足对性能极致要求的场景
  • 虚拟化的安全隔离性达不到特定行业要求
  • 嵌套虚拟化的性能无法满足客户需求

虚拟化开销:

当前虚拟化的基本原理决定了CPU必须要在vCPU环境与物理CPU环境下来回切换(VM-Exit)。频繁的切换会导致严重的VM性能问题。比如一个典型的直通设备中断,在虚拟化下处理流程就非常长。KVM hypervisor下面一个虚拟化切换至少需要几千个时钟周期,开销有可能会达到~10us。一般情况下VMExit(比如中断)达到5K左右,VM的性能将开始受影响。还有各种原因导致的VMExit,比如IPI,EPT violation,MMIO访问,等等。

我们采样了30万个虚拟化实例的运行数据,发现每秒1万次以上VM-Exit的实例达到3.82%,甚至还有不少每秒超过10万切换的实例。

image

神龙裸金属BM-Hive由于采用了计算子板直接运行实例,避免了任何传统CPU/内存虚拟化的开销。

虚拟化的性能抖动:

由于客户实例与系统服务都共享同一个CPU,这就导致了当宿主机系统服务繁忙时可能影响到客户实例的运行。我们采样了2万个实例在运行中CPU被抢占的情况,发现在共享性实例上,有200个以上的实例,在运行中被系统占用的CPU利用率超过2%。也就是说这200个实例的实际CPU性能是98%而不是100%,同样的情况在独享型的实例也有发生。毕竟中断等处理是一定需要CPU在宿主机系统中才能处理的。而在BM-Hive下的实例,系统服务在BM-hypervisor下运行,与计算子板的CPU为不同的物理CPU,所以神龙裸金属实例根本就不存在任何抢占计算资源的问题。

image

虚拟化的安全性:

这个不是一个新问题,我们都承认安全级别从低到高的形态:进程->容器->虚拟化->物理机。今年发生的侧信道攻击等都说明,虚拟化下实例并非牢不可破。而神龙裸金属实例运行在独立的计算子板之上,是天然的物理隔离,不存在这些安全问题

嵌套虚拟化性能问题:

一般来说KVM嵌套虚拟化的性能损失在20%以上,尤其是遇到一些IO操作更频繁的场景。因此当前云计算实例上很难在满足客户二次虚拟化的要求。而神龙裸金属实例却可以运行客户在实例内部再次运行他们自己喜欢的各种硬件加速的虚拟化方案。

神龙裸金属架构系统设计

为了解决传统虚拟的诸多问题,BM-Hive的设计考虑目标为:

  • 多租户
  • 物理机隔离安全性
  • 入现有运维体系
  • 物理机性能
  • 低成本

image

图3显示了BM-Hive的整体系统架构。我们把神龙裸金属实例称为:BM-guest。把基于传统虚拟化的实例称为:VM-guest。每个裸机服务器由底座和多个计算子板构成。该底座本质上是一个简化的基于 Xeon 的服务器。每个计算子板都有一个PCIe 扩展板连接到底座。其主要组件包括 CPU、内存、PCIe 总线和 IO-Bond。IO-Bond 是用FPGA实现的硬件接口。它连接底座和计算子板的PCIe总线,功能类似与PCIe的透明桥功能。IO-Bond在计算子板的PCIe总线上,它模拟多个virtio设备并由标准virtio内核驱动程序支持。IO-Bond充当bm-guest/virtio前端与后端BM-Hypervisor的桥梁。目前,IO-Bond 支持 virtio 设备网络和存储(块设备)。它可以很容易地扩展支持其他virtio设备。

实验数据分析

我将对BM-Hive的CPU/内存系统的性能与传统虚拟化做对比,同时也对网络、存储等IO子系统做数据性能的分析。最后会我们会提供神龙裸金属实例在真实业务场景下的性能表现。

神龙裸金属实例的CPU与内存性能分析

裸金属实例的本地CPU和内存性能对用户至关重要。图7和8呈现了相同配置下,裸金属实例与虚拟化实例在运行SPEC CINT 2006测量的CPU性能差异,用STREAM工具测试内存性能的差距。

image

上图数据做了归一化的处理,可以看到裸金属实例的CPU性能与物理机几乎没有区别,甚至有些项还优于物理机,而虚拟化实例下CPU性能一般有0-4%的损失。内存方面也类似,虚拟化实例的内存带宽是裸金属实例的98%左右。

IO子系统的性能分析

BM-guest和VM-guest均基于virtio的I/O路径接入阿里云VPC网络与云存储系统,他们的区别在于BM-Hive的virtio具有硬件-软件混合设计。在本节中,我们将BM-Guest与VM-guest的网络与存储子系统做性能对比。我们两种实例产品定义的网络访问最大发包速限定于4M PPS,带宽最大为 10Gbit/s,存储限制为 25 IOPS和300MBps。因此,我们测试的目的在于两种实例是否都能达到设计目标。

image

PPS:我们看到BM-Guest/VM-guest都能达到设计的4M UDP PPS目标,但是VM-Guest更加平顺,这个可能是由于BM-guest经过的软硬件接口的路径要比VM-guest长得多导致。

Latency:在延时方面,通过三种测试工具得到VM-guest的网络延时要稍优于同类型的BM-Guest,差距不大。

Storage IO:存储IO的性能上面BM-Guest则要全面优于VM-guest。随机读写的IO访问延时方面BM-guest优于VM-guest,而在长尾数据方面BM-guest数据优于VM-guest 50%以上。

客户典型应用方面

通过对真实应用场景的对比,我们更能发现裸金属实例的优势。比如我们对比了两种实例在分别在网络服务器nginx,数据库mariaDB,以及内存型数据库Redis等数据差异。

image

Nginx:大多数客户选用的网站服务类型。BM-guest的每秒请求数与每请求处理时间等方面都要优于VM-guest 50%以上

MariaDB:MariaDB是一个标准的测试数据类型,集成在sysbench之中。BM-guest的读取性能超过VM-guest15%以上,而在写性能上更是超出50%以上

Redis:是内存型数据结构读取数据库。Redis被广泛应用于提高服务器性能与服务能力。BM-Guest在Redis测试表现也全面优于VM-guest。如图15与图16。此处不再累述。

一些思考

IO-Bond的性能优化:IO-Bond处于IO系统的关键性能路径之上。当前由FPGA实现。在将来我们可以通过ASIC芯片的方式实现,从而进一步提升网络与存储、性能

热迁移与热升级:热升级在裸金属实例上面是可以实现的。我们在升级底座BM-Hypervisor的同时可以做到对客户实例无感知。我们在2019年ASPLOS的论文中就有详细介绍实例热升级的技术《Fast and Scalable VMM Live Upgrade in Large Cloud Infrastructure》。热迁移理论上,裸金属实例也可以实现,我们做过一些尝试。目前也正在开发中。

SGX支持:SGX的支持在裸金属实例上面没有任何问题。相反由于去掉了虚拟化的阻碍,SGX的支持更容易。

总结:

我们介绍了神龙高密度裸金属云服务 BM-Hive 的设计、实施和测试数据。实践证明,作为行业下一代虚拟化的发展方向,神龙裸金属软硬一体化方案在兼容现有虚拟化优点的前提下,全面提升了性能与安全性。在此,我们由衷感谢阿里云创新产品团队全体成员的努力付出。

ASPLOS20 线上会议Video
神龙论文video
弹性裸金属服务器(神龙)产品页

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
11天前
|
人工智能 云计算 网络架构
阿里云引领智算集群网络架构的新一轮变革
11月8日~10日在江苏张家港召开的CCF ChinaNet(即中国网络大会)上,众多院士、教授和业界技术领袖齐聚一堂,畅谈网络未来的发展方向,聚焦智算集群网络的创新变革。
阿里云引领智算集群网络架构的新一轮变革
|
10天前
|
人工智能 运维 网络架构
阿里云引领智算集群网络架构的新一轮变革
11月8日至10日,CCF ChinaNet(中国网络大会)在江苏张家港召开,众多院士、教授和技术领袖共聚一堂,探讨网络未来发展方向。阿里云研发副总裁蔡德忠发表主题演讲,展望智算技术发展趋势,提出智算网络架构变革的新思路,发布高通量以太网协议和ENode+超节点系统规划,引起广泛关注。阿里云HPN7.0引领智算以太网生态蓬勃发展,成为业界标杆。未来,X10规模的智算集群将面临新的挑战,Ethernet将成为主流方案,推动Scale up与Scale out的融合架构,提升整体系统性能。
|
2月前
|
Cloud Native Java 编译器
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
随着云计算技术的不断发展,云服务商们不断推出高性能、高可用的云服务器实例,以满足企业日益增长的计算需求。阿里云推出的倚天实例,凭借其基于ARM架构的倚天710处理器,提供了卓越的计算能力和能效比,特别适用于云原生、高性能计算等场景。然而,有的用户需要将传统基于x86平台的应用迁移到倚天实例上,本文将介绍如何将基于x86架构平台的应用迁移到阿里云倚天实例的服务器上,帮助开发者和企业用户顺利完成迁移工作,享受更高效、更经济的云服务。
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
|
2月前
|
缓存 Kubernetes Java
阿里云 SAE Web:百毫秒高弹性的实时事件中心的架构和挑战
SAE 事件中心通过智能诊断显示通知与用户连接起来,SAE WEB 百毫秒弹性实例给事件中心带来了新的实时性、海量数据和高吞吐的挑战,本篇将带您了解 SAE 整体事件中心的架构和挑战。
144 10
|
1月前
|
消息中间件 架构师 Cloud Native
软考高级系统架构师论文,到底该怎么写
软考高级系统架构师论文,到底该怎么写
116 0
|
3月前
|
Serverless 数据安全/隐私保护 开发者
Serverless 架构问题之阿里云函数计算在事件生态层面如何解决
Serverless 架构问题之阿里云函数计算在事件生态层面如何解决
43 0
|
6天前
|
缓存 负载均衡 JavaScript
探索微服务架构下的API网关模式
【10月更文挑战第37天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务的航向。它不仅是客户端请求的集散地,更是后端微服务的守门人。本文将深入探讨API网关的设计哲学、核心功能以及它在微服务生态中扮演的角色,同时通过实际代码示例,揭示如何实现一个高效、可靠的API网关。
|
4天前
|
Cloud Native 安全 数据安全/隐私保护
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####
|
5天前
|
Dubbo Java 应用服务中间件
服务架构的演进:从单体到微服务的探索之旅
随着企业业务的不断拓展和复杂度的提升,对软件系统架构的要求也日益严苛。传统的架构模式在应对现代业务场景时逐渐暴露出诸多局限性,于是服务架构开启了持续演变之路。从单体架构的简易便捷,到分布式架构的模块化解耦,再到微服务架构的精细化管理,企业对技术的选择变得至关重要,尤其是 Spring Cloud 和 Dubbo 等微服务技术的对比和应用,直接影响着项目的成败。 本篇文章会从服务架构的演进开始分析,探索从单体项目到微服务项目的演变过程。然后也会对目前常见的微服务技术进行对比,找到目前市面上所常用的技术给大家进行讲解。
16 1
服务架构的演进:从单体到微服务的探索之旅
|
4天前
|
Cloud Native 安全 API
云原生架构下的微服务治理策略与实践####
—透过云原生的棱镜,探索微服务架构下的挑战与应对之道 本文旨在探讨云原生环境下,微服务架构所面临的关键挑战及有效的治理策略。随着云计算技术的深入发展,越来越多的企业选择采用云原生架构来构建和部署其应用程序,以期获得更高的灵活性、可扩展性和效率。然而,微服务架构的复杂性也带来了服务发现、负载均衡、故障恢复等一系列治理难题。本文将深入分析这些问题,并提出一套基于云原生技术栈的微服务治理框架,包括服务网格的应用、API网关的集成、以及动态配置管理等关键方面,旨在为企业实现高效、稳定的微服务架构提供参考路径。 ####
24 5