“神龙X-Dragon架构”是阿里云自研的软硬件一体化计算架构,包含“X-Dragon虚拟化芯片”、“X-Dragon Hypervisor系统软件”、以及“X-Dragon服务器硬件架构”,深度融合了物理机和虚拟机特性,可兼顾虚拟机的弹性资源、分钟级交付、全自动运维和物理机的性能优势、完整特性和硬件级隔离,为用户了提供一种新型的计算资源交付方式。
2016年,阿里云启动了“神龙X-Dragon架构”新一代IaaS计算平台项目,其采用了软硬件协同设计方法,从云计算IaaS领域重新去审视芯片、硬件和软件的定义与协同创新。
2017年10月,阿里云在杭州云栖大会上首次公布了基于神龙X-Dragon架构的裸金属服务器。
2019年9月,阿里云正式发布第三代自研神龙架构,贯穿整个弹性计算平台,全面支持ECS虚拟机、云原生容器等,并在IOPS、PPS等方面提升5倍性能,用户能在云上获得超越传统物理机100%的计算能力。
背景:云计算的历史性难题
从计算机诞生到90年代,计算资源都是作为“可计划性”的资源来使用。然而,互联网时代的到来,一个爆发性事件,就有可能让已有的计算资源招架不住。
云计算的优势之一在于计算资源使用收放自如。这一能力就得益于数十年前诞生的虚拟化技术,它可以通过软件定义的方式来管理数据中心的计算资源。
一直以来,云服务的底层依旧是通用芯片加标准虚拟化软件组合:Intel的X86芯片 + VMware、Redhat、Citrix等开源组织或者商业组织的虚拟化软件,这一组合最终可以根据企业的需求来输出计算能力,即便是数万核计算能力也可以在分钟级内实现。
云计算的便利性在人工智能领域体现得淋漓尽致。以图像识别领域的ImageNet竞赛为例。2015年时,冠军模型ResNet包含了上千万的参数,使用线下服务器完成一个完整的训练需要14天;而现在,同样的模型在云上完成相同的任务仅需要几个小时。
当然,在光鲜亮丽的外表之下,云计算也有着其与生俱来的缺点。
虚拟化会如同黑洞般吸收走一部分机器的性能,也就是云上的弹性能力是以牺牲性能来换取的。举个例子,一台95核的服务器上运行云服务器,可能需要占用8核32G来抵消虚拟化的开销,留给用户使用的只剩88核和剩余内存,造成了算力的极大浪费。不仅如此,在同一服务器上的云服务器之间资源调度无法做到完全的隔离,存在资源抢占的情况,因此其性能也不稳定。
与此同时,整个计算产业链也在潜移默化中发生改变:摩尔定律失效阻碍了通用芯片的发展,基于GPU、FPGA、ASIC等新芯片的定制服务器成为潮流,而传统的虚拟化技术难以跟随这些“非主流”硬件的步伐。
这被认为是云计算行业的阿克琉斯之踵。
尽管云厂商、芯片商、虚拟化厂商都在试图尝试新的方法,例如英特尔等芯片商提供了硬件级别的虚拟化支持,虚拟化技术本身也从Xen演进到了KVM,但由于软件厂商、硬件厂商、系统集成商各司其职,这种层层之间割裂的模式最终未能在根本上解决问题。
这似乎成为了云计算厂商身上的一道魔咒,底层架构的创新迫在眉睫。
阿里云研发下一代虚拟化架构
虚拟化损耗是云计算自诞生以来就有的缺点。阿里云一直以来都在降低云计算虚拟化的损耗,逼近极致。在2016年双11的技术复盘会上,时任阿里巴巴集团CTO张建锋提出了极为苛刻的要求——把虚拟化开销也降低到0。 这看似是违背能量守定律的,即便在学术界也没有相关研究。
最终阿里云团队另辟蹊径,想出了新的解决方案——通过专用芯片来解决虚拟化开销。
从技术的实现思路看,阿里云研发团队需要重构一套计算架构,通过研发一个新的芯片组来为每个节点提供功能性和管理性的需求支持,在此基础上,再研发出一套新的服务器硬件,和配套的系统软件;然后再将这套技术架构融入到现有的产品设计中去。
图灵奖得主、加州伯克利大学计算机科学教授David Patterson曾表示:”随着摩尔定律的终结,为了获得更快性能的计算机,唯一方法就是改进计算机的设计或‘架构’。“
从前,因产业链上下游企业各司其职,虚拟化损耗一直存在。
软硬协同架构设计的理念已然飘向了云端,体量大的云厂商服务器部署规模达到百万级别,意味着可以定制任何硬件,而云厂商也开始重新审视芯片、硬件和软件的协同创新。要想收获软硬融合的技术红利,重要的前提是可以自定义芯片,自主研发硬件。这便是阿里云所做之事。
2017年10月,阿里云在杭州云栖大会上首次公布了基于神龙X-Dragon架构的裸金属服务器。
2019年9月,阿里云正式发布第三代自研神龙架构,贯穿整个弹性计算平台,全面支持ECS虚拟机、云原生容器等,并在IOPS、PPS等方面提升5倍性能,用户能在云上获得超越传统物理机100%的计算能力。
神龙X-Dragon架构的特点
阿里云作为IaaS全球排名前三的厂商,ECS弹性计算产品积累非常庞大的规模,在发展过程中,研发团队对开源Xen/KVM有着非常深刻地认知和理解,同时也注意到了业界芯片和软硬件一体化的发展趋势,从阿里云的神龙X-Dragon架构来看,阿里云定制研发了专用的服务器,研发了专用的虚拟化芯片,开发了专用的MOC卡,开发了整套配到的软件,从BIOS到客户机软件,到上层的整体调度软件等一整套复杂的系统。
MOC卡是神龙架构的灵魂所在。这张卡完全由阿里巴巴自主设计。 X-Dragon芯片是装在弹性裸金属服务器中的MOC卡的核心。这个阿里云自研的MOC卡拥有独立的处理、存储、I/O等单元,MOC卡承担了原来通过软件实现的网络、存储以及外围设备的虚拟化。而神龙服务器的的主板也是阿里云定制的版本,专门针对MOC卡进行优化,以便X-Dragon Hypervisor可以方便地管理整个机器。
在这样的构架下,每台神龙服务器,可以像虚拟机一样被X-Dragon Hypervisor调用,创建和释放一台神龙弹性裸金属服务器在阿里云控制台中和创建一台ECS实例是一样的。但是由于这种调用是通过硬件来实现的,所以基本没有性能开销整个机器的运行性能和物理机无异。
与此同时,神龙服务器的外部云盘存储、VPC网络等资源,都通过MOC卡支持。低速的外围设备,是现代服务器主要的性能瓶颈,等待硬盘等的存储消耗掉大量计算资源。神龙构架的做法,是将该部分功能,通过硬件直接独立出去,offload到MOC卡上,因为使用了专属芯片硬件,其效率非常高,而且实现了和阿里云原有的云计算体系的完全兼容。神龙裸金属服务器可以像云主机一样,通过挂载镜像进行初始化,还可以通过OpenAPI操作,完全免去了人肉运维的痛苦,使用效率极高,和一台普通ECS使用体验基本相同。
这样一来,神龙弹性裸金属服务器便克服了上面提到的公有云遇到的几个问题。
首先,神龙弹性裸金属服务器没有软件虚拟化带来的性能开销,可以完全发挥处理器和内存的性能。
其次,神龙弹性裸金属服务器的资源是独占的,其性能非常稳定,不会出现性能起伏不定的状况。
第三,神龙弹性裸金属服务器支持嵌套虚拟化,主流的虚拟化系统都可以在上面运行。
神龙云服务器在克服传统云计算主机缺点的同时,又保留了云主机的优点,比如上面提到的弹性部署、API操作、镜像启动、VPC网络等特性一样不少。
一言以蔽之,神龙弹性裸金属服务器兼备物理机的高性能和云的弹性。
神龙X-Dragon架构的应用场景
神龙X-Dragon架构“快”的特点,让它几乎适合承担从轻量级计算到高性能计算所有的云计算任务,例如可以支持ECS,还可以通过灵活的配置,组成计算力强大的超级计算集群,为HPC高性能计算提供驱动力。
以AI人工智能为例,训练一个模型可能需要数天甚至数周时间,这在现在这个分秒必争的社会是不能容忍的。传统的超算面对这类场景也束手无策,通过异构计算集群来加速训练是工业界和学术界的最常用的途径。而神龙则把异构超算能力带到了云上,可以轻松满足这种大算力场景的需求。
大规模计算集群性能损耗通常在50%左右,而基于神龙架构的超算异构集群可以最大限度发挥芯片的计算性能,提供堪比超算中心的并行计算资源。
基于神龙裸金属服务器的异构超算集群SCCGN6,结合低延时RDMA网络、高性能并行文件系统CPFS以及分布式加速框架Ali-Perseus(擎天),最高可以实现100%的性能提升,从而最大限度发挥芯片的计算性能。以ImageNet竞赛的128万张图片的数据集为例,用普通计算资源训练ResNet50模型,如要达到75%的精度需要数天甚至一周的时间,而使用神龙异构超算集群,模型训练可以缩短到几分钟。
不仅如此,神龙还非常适合目前最流行的容器技术。就目前来看,神龙裸金属服务器运行容器对比物理机有10%-30%的性能优势。容器技术是当下最热门的技术,几乎所有的互联网公司都或多或少的应用容器技术来部署自己的服务,而神龙裸金属服务器的种种特性,正好和容器技术紧密结合,提供超越预期的性能。
神龙(X-Dragon)架构已大规模应用于阿里巴巴集团淘宝、天猫、菜鸟等核心业务,满足了双11等大规模流量需求,在阿里巴巴All in Cloud战略中,也全部采用了神龙产品方案。
对外该架构服务于各领域企业,家居工业互联网代表企业三维家已全部采用神龙产品实现全面上云,渲染效率比线下IDC集群高5%-8%;汽车领域知名企业上汽通用使用神龙SCC超算集群,汽车仿真计算效率提升25%;安世亚太基于SCC集群为客户提供HPC解决方案,总体成本下降20%以上;吉利汽车制造企业通过使用神龙云服务器集群显著提升仿真效率近三成,缩短车型设计和推出市场时间若干个月。
参考资料:
阿里造“神龙”
阿里云发布第三代神龙架构
阿里云弹性裸金属服务器-神龙架构(X-Dragon)揭秘
云计算史上的第一次开箱直播,阿里云神龙技术架构首次全方位曝光