一下部分是关于神龙架构的背景——阿里云为什么要做神龙

第一部分是关于神龙的架构背景——阿里云为什么要做神龙,神龙在云计算中解决了哪些业务痛点。

第二部分介绍神龙架构的演进——四代神龙有何异同,一步步解决了哪些业务需求,给用户带来了哪些核心价值;

第三点主要介绍神龙架构的实践——它能给云计算客户带来什么价值。比如刚才佟大爷说的,神龙结合容器可以提供比物理机更好的性能。

长期以来,从事虚拟化的技术人员都以物理机的性能为优化目标,研究如何使虚拟化能力无限接近物理机,如90%、91%、92%、 93%cpu虚拟化技术名词解释,95%。%,可能做不到97%,98%——只能无限接近物理机。如今,像神龙这样的新型计算架构的服务器,再加上阿里云的容器,可以提供比物理机高出几十个百分点的性能,而且收益非常高。

最后简单介绍一下神龙架构的未来。

龙建筑的背景

在进入神龙建筑的背景之前,这里有几个数字,来自一个大型项目。相信很多网民都参与过这个千亿级的项目,可能每年都有机会参与一次,那就是天猫双十一。

2019年天猫双十一,我们创造了许多新的历史记录。例如,日交易量达到2684亿,与去年相比有了很大的提升。第二个数字是每秒 54.40,000 笔交易,表示 0:00 清空购物车时每秒可以处理的交易数。12.92 亿个包裹意味着几乎每人一个包裹。

每一个日常数字的背后,都是在阿里云公有云上完成的。去年我们达到了一个里程碑事件——整个阿里经济业务全面迁移到公有云,核心交易系统100%在阿里云上全面完成。

三四年前,如果没有我们今天讲的神龙架构,是不可能做到的。因为双十一的云平台对公有云平台的挑战很大,可以用物理机离线堆积。但是,使用公有云基础设施,承接阿里巴巴经济相关的电商、金融、物流等交易,是一个巨大的挑战,是双十一这样的巨额交易。

我们今天做到了。背后是工作中的神龙服务器。

让我们简单直接地看一下这张图。左图是我们在 2017 年 10 月云栖大会上发布第一代神龙服务器的瞬间。从这个时期开始,神龙架构已经成为整个阿里云智能的核心竞争力之一。

为什么能承担阿里巴巴双十一这么复杂的业务?

没有。一、因为神龙能够充分利用云基础设施的力量,这就是这里展示的高弹性。单台服务器,或者说集群,实际上很难离线利用云基础设施的能力,而龙云服务器可以与云基础设施集成,提供高弹性的资源。例如,如果您需要更多存储空间、更多网络资源,甚至更多数据库,则无需停止或插入硬盘驱动器。系统会根据您的控制命令自动伸缩资源。

二是稳定性高,尤其是性能的输出,需要非常稳定。对于笔记本和个人电脑这可能无关紧要,但对于企业用户使用的服务器来说,性能输出需要是一个稳定的值。

为什么?可能做过业务规划或者容量规划的同学可以理解,如果计算性能有波动,很难规划需要多少台服务器来支持业务。比如在线直播,8000人需要多少台服务器,10000人需要多少台服务器?这些都需要精准的规划,所以性能要求很稳定,神龙服务器可以完美满足,双十一上的表现也很稳定。

三是高性能。这是必不可少的。如果性能不够高,或者物理机甚至虚拟机都达不到,做这样的服务器这种新型的计算架构是没有意义的。

这些点是我们对神龙服务器的一些想法。正如主持人所说,我其实做了十几年的虚拟化技术,每次谈神龙,就不得不谈虚拟化技术。

虚拟化技术历史

我在 2004 年开始做虚拟化,当时我还在攻读博士学位。那个时候,在整个行业,全世界做虚拟化技术研究的人并不多,全世界可能不到100人。我一直在想毕业后能不能找到工作,因为职业选择的范围太窄了。

那个时候,虚拟化基本上是一些大学在研究,比如斯坦福大学、剑桥大学、微软、VMWare等公司,还有我的老东家英特尔。

回顾历史,其实虚拟化的历史比2004年要早很多,但研究一直在科研机构和大型IT公司进行。

第一个时间点是1974年,最早的理论成立。1974年有一篇论文《Formal Requirement for Virtualizable Third Generation Architecture》,为未来40年虚拟化技术的快速演进奠定了理论基础:它定义了什么样的技术可以称为虚拟化,满足什么样的条件虚拟化的定义

第二个时间点是 1997 年。1997 年,斯坦福大学的一位教授创立了 VMWare。该公司的成立,真正将虚拟化技术的理论研究付诸应用。

VMWare 进行了一项创新,称为二进制翻译技术。

为什么要这样做?

不得不说cpu虚拟化技术名词解释,Intel X86架构对虚拟化技术并不友好。因为整个 X86 的演进,从 4 位、8 位、16 位到 32 位、64 位。这样的过程实际上与某些大型机和虚拟化有本质的不同。大型机最初是为运行多个操作系统而设计的,并且从指令集的设备级别进行了去虚拟化。

X86是一个逐渐进化的过程,从一个很小的PC市场开始。PC没有虚拟化要求,所以X86指令集对虚拟化不友好。二进制翻译技术在一定程度上可以在指令执行过程中动态扫描对虚拟化不友好的条件,并一一切换指令的执行。这种方法的缺点是性能不是很好。

现阶段VMWare主要是在PC上运行虚拟化,而不是我们今天讲的云计算数据中心的虚拟化技术。虚拟化技术在云计算数据中心的实施是在 2005 年。那一年,英特尔发布了 VT-x 和 VT-d 技术,由英特尔和 AMD 两家芯片公司率先发布。他们觉得自己的X86架构对虚拟化不友好,于是扩展了指令集,扩展了CPU的设计,以便更好地支持虚拟化技术。

该技术将虚拟化加速到数据中心,并可以服务于云计算。

2009年,阿里云成立。VMWare 等商业软件不太可能用于云计算。因此采用了当时流行的开源虚拟化软件Xen。后来我们在2014年切换到KVM,当时阿里云深度定制KVM和Xen,开发产品。

2007年参与KVM的开发。2014年之前,在云计算行业,大家都在思考如何用好当前CPU、Xen、KVM等虚拟化软件提供的能力,但是没有变化很大。除了VMWare提供的二进制翻译技术,还有剑桥大学提出的准虚拟化技术,PPT中没有展示。除了这两个,没有太多的创新。

2014年和2015年,阿里云面临服务大B类市场的时候,我们不得不解决成本问题,提升服务能力。

那时,我们的虚拟化技术已经跟不上云计算发展的步伐。尤其是那个时候,我们也在讨论如何把阿里巴巴经济的业务上云。这遇到了一个大问题,我们需要改变虚拟化技术。

所以,2015年我们开始探索,2016年开始立项,到2017年,神龙架构出来了。它真正采用了软硬件一体化、软硬件协同设计的模式,改变了传统虚拟化技术和当前计算架构不友好的一面。

过去,虚拟化技术的设计思路是在服务器和计算架构已经确定的前提下,如何通过软件来适配计算架构。

当我们做龙时,我们做相反的事情。我们觉得今天虚拟化发展得很好,那么如何设计一个新的计算架构,让虚拟化更好地发挥作用呢?它代表着云计算、云数据中心、虚拟化技术带来的一场革命,也为云计算和阿里云的快速发展带来了更加坚定的信心。

传统虚拟化架构的缺点

设计这样一种新型架构,我们需要简单的看一下云数据中心的传统虚拟化架构是什么样的,它的优缺点是什么,为什么要改变它。

这张图是一个非常典型的虚拟化组织结构图。

我们可以看到,最底层是一个物理机的大集群,每台物理机实际上都运行着一个hypervisor——也就是虚拟化的系统软件,还有一个主机,比如Xen中的Domain0。基本上这就是模式。

在云计算中,客户购买的是虚拟机,而虚拟机的计算能力、稳定性和弹性是通过下沉的虚拟化软件来完成的,而不是虚拟机。例如计算虚拟化、CPU虚拟化、虚拟内存虚拟化、虚拟中断等都由hypervisor软件完成;虚拟存储基本由主机的虚拟化实现模块完成,即通过软件完成;网络也是,我们将介绍虚拟网络,如虚拟交换机和虚拟路由器。

这是一个非常典型的架构。神龙出现之前,大家都是这么用的,没想到这么差。但是在阿里经济中,当我们把自己的业务和一些大B类客户放到云上的时候,我们发现了很多问题。

我将向您简要介绍这些问题。

1、资源竞争和弱隔离:在这张图中,虚拟机是客户的系统,主机是我们的虚拟化管理系统。他们在同一个房间的事实将导致对资源的争夺。它们之间的资源竞争会带来虚拟机计算能力的波动。

2、算力损耗,成本高:主机和hypervisor都消耗CPU和内存资源,所以不可能把这台机器的资源全部交给客户,也就意味着成本的增加。比如我买了32核的物理服务器,只能给客户端16核或者20核,剩下的12核可能就浪费了。但没有它是不够的,因为它将帮助虚拟化存储和虚拟化网络。资源的浪费导致成本的增加。

3、性能瓶颈很明显:还有整个存储和网络的虚拟化,如上所述,都是软件实现的。软件实现方案的优点是灵活性和一定的可扩展性,但缺点也很明显——性能和稳定性会比较差。这是它最大的问题。

4、很难支持裸机服务:因为这样一套hypervisor软件已经在物理机上运行了,我们很难在云端提供裸机服务和存储网络的弹性方式。尽管云计算越来越流行,但一些企业仍然对物理机有需求,而云厂商无法提供。如果提供商只能提供物理机托管,这不是云计算,而是对传统 IT 的回归。

架构缺陷带来了许多产品挑战。我们必须解决这些问题。

带着这些问题,我们先来分析一下,客户想要什么?

经过分析,我们发现客户真正购买我们的计算产品时,需要更强的计算性能、更快的网络访问、更高的存储读写能力、更高的存储IOPS、更高的网络PPS。高,网络带宽存储容量高。这意味着我必须有更高更好的QoS(Quality of Service),网络和性能不能高或低;它必须更安全;并且成本必须更低。这就是客户想要的。

我们带着诉求,然后对比虚拟化技术的不足,进行技术探索和创新,看看如何解决这些方面的问题。

神龙应运而生。神龙为云而生,是一种软硬件一体的虚拟化技术。

神龙服务器的性能关键部分全部由芯片和硬件实现,控制平面等非性能关键部分全部由软件完成。结果是灵活性和性能的完美有机结合。与传统的虚拟化相比,它代表了新一代的云数据中心虚拟化技术,可以真正解决我们刚才提到的问题。

神龙建筑的演变

我们进入第二部分。

神龙初代:裸机虚拟化的先行者

神龙初代更多的是上云后如何支持裸机服务。直接说是物理机,但不能是传统的物理机。它需要与云计算基础设施完全集成。例如,可以充分利用池化的云存储资源、网络资源、数据库等。

在这种情况下,第一代神龙诞生了。我们称之为裸机虚拟化,裸机虚拟化。我们是业内第一个发布类似产品的公司。

它的体验可以用下面一句话来概括,那就是:超越物理机的性能,拥有虚拟机的体验。

什么是虚拟机体验?我们知道整个虚拟机的运维都是自动化的,所有的资源都是池化的,这其实是一个非常好的模式。传统的虚拟化技术有优势也有问题。如果我们能够通过新技术解决劣势,保留优势——这就是我们做第一代虚拟化的初衷。我们也这样做了。

在这样的架构下,我们进行了深入探索,设计了神龙MOC卡。

在MOC卡中,有一个用于高速数据平面转发的神龙芯片;有芯片加速引擎,存储EBS、网络,所有管控平面的东西都下沉到芯片里面;整个生命周期的管理,所有接口都与虚拟机保持一致。比如virtio-blk用于存储,virtio-net接口用于网络,其他设备也与虚拟机一致。

这样就可以无缝兼容虚拟机,可以和虚拟机在同一个VPC,可以挂载云盘,和虚拟机一样的体验。

我们设计了神龙Hypervisor和自主研发的神龙芯片,提供安全、可靠、可靠、计算无损的服务。神龙支持灵活存储,可支持16个EBS云盘,每个EBS云盘最大可达32G;还可提供31个ENS动态弹性网络接口,可动态插入部分网卡。网络接口可以动态增加和减少的物理机。

芯片加速IO引擎支持无缝接入VPC,无缝接入EBS存储,支持免安装。单片机直接启动,一两分钟即可交付裸机服务。

第一代的特点是单芯片实际上解决了所有问题,物理机可以使用云存储、VPC网络、挂载本地磁盘。所有系统管理也在这张卡中完成。我们添加了安全芯片功能,可实现弹性、稳定性、性能和成本的完美结合。虚拟化沉入这张牌,这才是本质。

神龙二代:集成虚拟化的践行者

二代龙被称为融合虚拟化的实践者,是阿里云第六代在线实例大规模使用的技术。

与第一代相比,整个神龙芯片的能力进一步增强。它不仅可以支持裸机系统,还可以支持虚拟机。

我们为虚拟机设计了一个超薄的Hypervisor,叫做Dragonfly,就是让蜻蜓飞起来的Hypervisor。几乎不占用资源,可以支持很多虚拟机系统,所有计算资源都可以给客户,不损失资源和性能;每个虚拟机由硬件队列隔离。虽然他们和虚拟机在同一个房间,但他们各奔东西,没有任何共线性的干扰。

我们做了:

① 技术的整合和资源的汇集,是一套软硬件支持三套服务:容器、虚拟机和裸机。

② Dragonfly Hypervisor超轻薄,可以使整个虚拟机资源的占用率接近0。

③ 直通硬件IO设备,如512个网络队列,最多512个网卡,512个存储队列,至少可以下载几十个云盘。其能力将进一步增强。

④ 最难做的是所有组件的热迁移,包括芯片和FPGA组件的热升级。解决了热升级问题后,解决了整个研发中快速迭代的问题。

刚才提到的 Dragonfly Hypervisor 具有以下特点:

超轻薄,零资源消耗。每个虚拟机的内存使用率可能低于 1 MB,但 CPU 使用率低于 0.1%

超平滑、接近零的抖动。100 万个数据包可能会有抖动。行业可能做的最好的事情是100,000的水平。我们做100万。

超流畅,兼容原有架构,无缝兼容KVM,解决资源池间热迁移问题。

第三代:追求极致性能

第三代神龙架构追求极致性能。我们在去年的云栖大会上发布了它。整体性能处于行业最高水平。与同行的类似架构相比,我们的性能大约是他的5倍,存储和网络等关键性能指标是他的5倍以上。

三代神龙最大的变化在于

①所有数据平面路径全芯片化,存储、网络、数据全芯片化,性能大幅提升。

② 提供硬件级和运营商级的QoS管理,比如每秒多少数据包用于存储和网络,需要多少带宽,都超级精准,小到一个数据包。事实证明,它仅适用于运营商级设备。我们在云数据中心服务器中实现了它。

③ 增强型融合网络,可提供接近裸机的低延迟网络。

④ 增强硬件队列,支持1000个1024存储队列和1024网络队列,队列之间的隔离性进一步增强。

三代神龙扩展了弹性计算产品的边界。第一代于2017年10月发布,第二代于2018年9月发布,第三代于去年9月26日上午发布。

我们整个网络性能达到了单机2500万PPS,大约是朋友的5倍。存储达到 100 万 IOPS。现有的弹性计算产品提供了这些功能,在某些情况下,您可以感受到显着的改进。接下来我们将全面切到第三代。

神龙发展到今天。去年,不仅集团经济的业务全部迁移到了神龙,公有云的所有计算服务也全部迁移到了神龙架构。阿里和阿里云新增的任何新一代服务器都是基于Dragon架构的:X86通用实例——G系列、T系列、R系列全面升级。提供刚才提到的第三代神龙的能力,比如只有一百万个数据包会有抖动。

神龙建筑实践

最后,简单介绍一下神龙到现在的一些做法。

刚才佟老师也介绍了,龙和容器之间有双剑效果。

我们为容器设计了一个特殊的网络,称为 Terway 网络,它可以与 VPC(虚拟私有云)自然集成。每个容器都会有一个VPC IP,它们之间的所有网络和存储都是一个硬件队列,用于相对隔离。

在去年的双十一,很多典型应用中,Container Plus 神龙都表现出了非常好的能力。

这里展示的是我们电商中非常关键的一个应用,也是我们每次下单都会用到的一个应用。其整体 QPS 提升了 30%,RT 下降了 96%。

它在极端压力下仍然表现出色。客户资源利用率,CPU利用率最高可提升80%。

为什么这行得通?

图中蓝线是传统物理机,红线是同一个规格——即CPU、内存等都一样——神龙架构的物理机。

当他们两个在云上开展业务时,我们可以看到蓝色。也许当 CPU 使用率达到 40% 时,业务延迟会增加。如果超过50%或60%,整个业务就会崩溃。但神龙,即使在CPU利用率高达接近100%的情况下,业务延迟的增加仍然很小。

平均来说,一般的服务器可以按20%到30%的CPU使用率,还不错。神龙可以压到百分之五十或百分之六十,它的经营业绩非常线性和稳定。有很多客户开始使用我们的神龙服务器。

神龙的另一个用途是能够将VMWare的私有云迁移到公有云。我们知道有很多数据中心离线,都使用VMWare私有云。很多客户会使用龙都来迁移离线的VMWare私有云。没有神龙,这是无法实现的,因为传统的云计算实例无法支持VMWare等虚拟化软件。

如果使用OpenStack,底层使用KVM,如果你想把你离线的整个OpenStack私有云搬到云端,神龙裸机服务器也可以解决。

最后,在最近的新型冠状病毒爆发后,阿里云为十多家公共科研机构提供了计算能力。这背后是神龙裸机打造的高性能算力。

龙建筑的未来

前几天,我们关于Dragon Architecture的论文在计算机系统顶级会议ASPLOS 2020上分享。

论文介绍了裸机虚拟化相关的总体规划,以及我们未来的工作。有兴趣的朋友可以到这个地址下载我们的论文,还有视频讲解。

未来,我们将在神龙架构上不断创新。如果您对此领域有任何疑问或想法,请联系我们。

谢谢你们!

☞一站式杀手级AI开发平台来了!告别切换碎片化的建模工具

☞北京四环堵车引发的智能交通大构想

☞请不要再问我堆是什么了!

☞北京四环堵车引发的智能交通大构想

☞你们公司的虚拟机还闲着吗?了解基于Jenkins和Kubernetes的持续集成测试实践!

☞从Web1.0到Web3.0:详细分析互联网近几年的发展和未来方向

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论