永远不要投资DPU?

2022-02-22 21:34谭婧
数字商业时代 2022年2期
关键词:虚拟化亚马逊芯片

谭婧

别怪我沒提醒,云计算的虚拟化,和前几代虚拟化,大为不同。

前几代产品与DPU隔着一条深不见底的天堑,跳过去,就是通天大道。

问题来了,怎么跳?

从2012年开始,亚马逊云团队,尤其是EC2虚拟化就开始思考:

那个叫做Hypervisor的“超级管理员”,得胆子再大一点,能力再强一点。那么问题来了,世间能做出比纯软件架构更好的超级管理程序吗?

这是我能找到的,安东尼在外媒采访中谈到的,亚马逊云关于DPU思想萌芽最早的时间点。

但那个时候还没有Nitro的影子。

后来,把Nitro System曝光于公众面前的,是一次知名的收购案。

被收购的公司叫做Annapurna Labs,也就是安娜普尔纳峰实验室,公司在以色列和美国都设有研发中心。

登山爱好者,瞅这个名字很眼熟。

巧了,喜马拉雅山最高十峰之一,安娜普尔纳峰。

角峰锐利,山体挺拔,线条凌厉,冰雪覆盖,云海猛烈翻滚,在向全世界的登山者搔首弄姿:“你过来呀~”

又巧了,公司两位创始人Billy和Nafea也是登山爱好者,以攀登此峰为荣。虽未抵达,但心已至,他们将角峰设计成LOGO,印在了封装好的芯片上。

登山是个人英雄主义,DPU是团队实干集体主义。

安娜普尔纳峰实验室对于亚马逊云来说,就是上天恩赐的礼物。国内云厂商一开始有这个好买卖,半夜睡觉都笑醒。

收购这件事情,光有钞票不行,好的“收购目标”极其罕见。

这家“登山爱好者”公司,除了登山,还有几个绝:”其一,Graviton芯片,云厂商第一颗Arm芯片;其二,是一种虚拟机抄近路小能手的技术,ENA。

这种技术讲究的是四两拨千斤,使得虚拟机绕过软件(内核和用户空间网络处理程序),直接操作硬件(网卡),如此这般,提升了网络效率。

昔日寂寂无名的ENA,成为亚马逊云网络虚拟化的关键技术,日后是大名鼎鼎的Nitro的一部分。

2015年,收购价3.5亿美元。别看当时花了多少,要看日后省了多少。这是一场几乎完美的收购,每年都为亚马逊节省大把美金。

因为DPU的特长之一就是很能打,打败虚拟化损耗,不在话下。损耗少了,当然省钱。

安娜普尔纳峰实验室开发的这张卡,不仅卸载了VPC网络功能,还卸载了EBS 存储网络功能。

这就是前文提到的,“任务卸载”技术。

据网飞公司技术高管(Brendan Gregg)的说法,Nitro的性能损耗非常小(不到1%),Nitro的虚拟化性能接近裸设备。

亚马逊的文化里,有单向门和双向门决策的说法:“单向门”的任务,像电影《鱿鱼游戏》,大抵是干活时被人用枪指着脑袋。只要任务失败,就“嘣”一枪。

“双向门”就是这个场景用得不好,搬到别的地方,说不定还能用上。

DPU是专用的,“专用”意味着,拿到别处“没用”。

Nitro 系统开发的时候,枪和脑袋的距离,几毫米。

研发团队在描述艰难的开发岁月的时候,像个文科生,一口气用了四个形容词。他们说:“这次我们做决定,有条不紊,谨慎,缓慢,深思熟虑。”

这不是普通的任务,其要求已经超出了传统虚拟化技术的能力。因为打破传统,就是浴火重生。

研发团队在技术博客里写下:“只有创新才行,但我们没有急着拍脑袋。整个探索的旅程历经五年,仔细、反复试验,每一步都很小心,验证我们前进的方向是正确的。”

喜大普奔的2013 年,亚马逊云研发团队推出了第一款Nitro 卸载卡(C3 实例类型),将网络进程卸载到硬件中。

马不停蹄的2014 年,将 EBS 存储卸载到硬件中(C4 实例类型),这次研发团队首次与一家名为安娜普尔纳峰实验室的公司合作。

Nitro研发团队谈到了研发的时间节点:“2017 年,我们卸载了最后的组件,包括控制面和剩余的 I/O,我们引入了一个新的管理程序,具有 C5 实例类型的完整Nitro系统。”

代码长什么样子,如今已经记不清了,但工程师依然记着当时的心情:“这是投入的挥金如土,是身心的殚精竭虑,是承诺的使命必达,是不可思议的时刻。当Nitro 系统推出时,五年辛勤,此生难得。”

Nitro给亚马逊云带来什么?

Nitro的迭代推动亚马逊云最核心的EC2产品家族不断往更大、更快、更安全、更稳定、更多类型、更高性价比方向演进。

Nitro 系统让亚马逊云有能力提供 100 Gbps 增强型以太网网络的云,支持更高吞吐量或受网络限制的工作负载(如 HPC 应用程序)。

借助 Nitro 系统,将虚拟化功能卸载到专用硬件上,将 EC2 的架构分解为更小的块。这些块以多种不同的方式组装,能够灵活地设计和快速交付 EC2 实例,并提供越来越多的计算、存储、内存和网络选项。

亚马逊云 CTO 沃纳·威格尔(Werner Vogels)曾经说过,“在亚马逊云,90%到95%的新项目,都是来自于客户给我们的反馈,剩下的5%也是从客户角度出发所做的创新尝试。”

而Nitro 系统正是这种项目之一,它诞生于2013年,成熟于2017年,到现在还在不断进化中,2021年已经迭代到第五代。

最重要的一点,亚马逊云科技的团队看到了,阿里云神龙团队也看到了。

安东尼看到了,张献涛也看到了。

把传统的虚拟化技术直接移到云计算,缺陷极其明显,毕竟不是为了云计算的服务器而生的。

2016年左右,张献涛博士,天天都在思考同一个问题:什么样的虚拟化技术,才适合云计算?

得从根本上解决传统虚拟化应用到数据中心里面存在的缺陷(也就是性能、资源、隔离方面所有的问题)。

他脑中的“神龙系统”慢慢清晰。

那一年里,张献涛博士密集、低调往返于北京和杭州两地,意在劝说多位大咖级芯片主架构师加入阿里云。

有这样一句话,很打动人心,日后实现的时候,更激动人心:“外界无法理解互联网公司要做DPU的决心,这件事情绝对是前人没有做过的,它可以改变云计算里面最核心的技术。”

神龙芯片给阿里云带来什么技术价值?

张献涛认为,第一,解决CPU和内存完全隔离的问题。这里的隔离有两个层面意思,一个是安全方面的隔离,一个是性能的隔离。

第二,IO链路上最容易出安全漏洞。QEMU这个模拟器是从传统的虚拟化带过来的,在神龙芯片第一代的那个时间点上,它是完完全全过时了。

所谓的过时了,包括两点。其一,代码是开源的,人人皆可见。其次,安全漏洞多,常发生一些虚拟机逃逸的情况。

在公共云的世界里,“虚拟机逃逸”五个字,还没有说出口,就有一群人扑上去,捂住你的嘴——虚拟机逃逸=绝对不允许。

DPU解决了性能,同时也解决了安全方面的问题。

神龙芯片一开始就想好了,多张卡解决问题,强调多合一,多种功能在一张卡上实现,复杂度下降,稳定性增强。

两架马车,解决的问题一样,实现的思路不同。

DPU的一个关键就是,“从哪里切”与“切到何处”,答案充满玄机和禅意。这让人想起庖丁解牛,若要回答:骨在哪,肉在哪,骨肉相连又在哪;恐怕要稔知全牛结构,全凭手感,刀法在脑海里,在肌肉里。

这还不够,难题在于,每一家云厂商的软件是不一样的:怎样处理分布式存储和分布式网络的软件接口?哪些应该放在控制路径?哪些放在数据路径?

如果不懂虚拟化,你就不知道怎么切,或者切完后性能也不好。

DPU团队表面生气,心里憋闷,谁出的破题?再或者,有的DPU团队,还没有看到牛在哪里。

DPU这个东西,光有硬件思路,或光有软件思路,一定会出大问题。

当故事讲到这里,虚拟化的知识就不够用了,要细聊张献涛在英特尔的另一段经历。

上海虹桥作为著名的交通枢纽,周边房价,一直看涨。

2005年的时候,张献涛刚到英特尔实习,工资不高,钱包不鼓,在大虹桥地段找房子住,选来选去,选了仙霞路附近的茅台路,一个叫做天山五村的老式小区。

大虹桥的房价,逼得张献涛和师兄合租了一个单间,逼仄的房间里,摆了两张单人床,已经够局促了。没想到,更局促的在后面。

一进英特尔,张献涛的压力值就爆表了。

为什么?他发现,六年的计算机专业白读了,妈耶,英特尔大牛们说的话,居然听不太懂。原因是他们讲的那些东西,都牵涉到芯片内部的专业知识。

能主宰一个时代的门派,半导体产业链的顶端,还是有很多秘籍的。脑袋混沌了几天之后,张献涛那股子不服输的劲儿,上头了。

《英特尔系统编程手册》(System Development Manual)是这样一种存在,你看第一遍,包你根本看不懂。

照理说,计算机的操作系统,是按此写出来的。比如,英特尔的64位处理器用的是IA 64,配套的《手册》有好几卷。

《手册》也诚不我欺,卷卷厚如板砖,就不信你能读完。

晚上,师兄睡了,张献涛不敢开大灯,从枕头下面摸出一样东西,手电筒。于是,咳嗽放屁都在一个被窝里,用手电筒的光,照着看《手册》。

老旧小区的黑瓦和夜色融在一起,楼层里闪烁着零星的光,从窗口的方格里冒出来,张献涛屋里的光,从被子里透出来。

开了头才知道,痛苦是一层套一层的套娃。每日不辍的翻读,还要看操作系统的内核代码。这行代码为什么这么写,他要到编程手册里找答案。这还不够,要看Linux和Xen的代码。

看不懂怎么办,英特尔还有一个“师兄帮扶”机制,类似学霸红领巾,不懂问师兄。

左手一本软件编程手册,右手一本硬件编程手册,外加Linux内核代码,一行一行去理解。再看不懂怎么办,去找美国的工程师请教。张献涛吃一口编程手册,蘸几行Linux内核代码,成为每日的例行动作。

日復一日,张献涛对CPU、对操作系统的理解,加深加深,再加深。

在英特尔公司,张献涛知道了一个“冷知识”。

任何一颗芯片,从英特尔公司“走”出来之前,内部员工可能提前三到五年就已经拿到了“未出厂的芯片”。

工程师们要把 CPU所有的新功能用软件“用”起来。

说白了,到手的芯片还没有正式量产。芯片里面会有各种各样的毛病。你要去理解“问题”来自于软件,还是硬件。

不了解这点,你永远不会怀疑CPU会出问题。

DPU的技术领袖,需要对芯片、对芯片组、对PCIe总线、对操作系统、对虚拟化的了解,到达一种境界,关灯取物,如同开灯取物一样自如。

看似行云流水的判断,是在日复一日、年复一年、无声无息中形成的,就像火山爆发后,热风里从早到晚飘落的火山灰,把一切技术难点都掩埋。从火山灰中醒来,看到一个重塑的新世界。

DPU的部署,无异于完成了给高速飞驰的列车换防风材料,给深海作业的潜艇换防水材料。

2017年到2021年,亚马逊云和阿里云均已跑步进入了DPU产品迭代良性循环的新世界。

2021年的夏天,张献涛博士对我说:“以前,没有人相信互联网公司需要芯片技术。现在,大家都相信了。”

裁判一声长哨,男主持人富有磁性的声音播报:观众朋友们,这里是数据中心赛场,IaaS层终场,云计算基础设施最后一场比赛。

当优秀DPU问世的时候,国内云计算厂商在IaaS层,这轮的战斗,宣告结束了。

自研出DPU的云计算厂商说:“我摊牌了,我赢了。”

哪怕五年前,放眼找工作的网站,就算云计算厂商“放出”招芯片专家的岗位,谁敢去?去干啥?再资深的HR一看岗位说明,都懵了,就没接触过搞芯片的人。

软件开发周期何其快,硬件开发周期何其慢。旁人都说,这恋情看上去就不长久。

老牌芯片公司一扭头,眼角余光里都是质疑。云厂商只擅长软件,如何面对芯片 云厂商面对的场景极其复杂,用芯片怎么搞定?

问题是复杂中的复杂,需求是刚需中的刚需。

很抱歉文章科普得迟了,DPU是一种云上服务器的专用芯片。

这句话,有两个关键词,“云上服务器”和“专用芯片”。

先讲,云上服务器。

云上服务器有些像公共澡堂,可以一个人用,也可以多人共用,麻烦都是“一起用”带来的。

可口可乐和百事可乐要在一朵云上,还能互相看文件,立马就翻脸了。

那怎么办?

答案是:得插DPU,而且是每台服务器都得插。十万台服务器,插十万张DPU。杀毒软件是用软件保护安全,DPU的作用之一是用硬件保护安全。

说到安全,硬件比软件更能打。

再讲,专用芯片。

提到专用芯片,挖矿炒币赚到钱的人兴奋了,抢着说:“我最内行。”因为不同的加密货币,要不同的矿机。矿机越对口,挖币越赚钱。

金钱的铜臭味,告诉我们:专门的事情,让專门的芯片去做。

现在还有争议,但是未来,会看得清楚,DPU是云计算的标配。

摩尔和登纳德两位老先生,无情指出“现实之无奈”,CPU成了最昂贵的“打工人”。

所以,DPU作为专用硬件,除了安全,还要来给CPU减负。

几条街之外,都能听见DPU的唠叨:“哎呦,CPU我的祖宗,快放下,您哪敢动这,可不能把资源浪费在网络和存储的负载上。”

CPU则说:救救孩子吧。我太难了。

CPU大声呼救的原因是:CPU既要处理大量的上层应用,又要维持底层软件的基础设施,还要处理各种特殊的IO类协议,不堪重负。

把“负担”从CPU上卸载下来,DPU将有望成为承接这些“负担”的代表性芯片。CPU也很高兴DPU的出现,你行,你上呀。

的确,有人夸DPU是继CPU和GPU之后的“第三颗”主力芯片。

不要因为鲜花和掌声太多,就对DPU的能力有什么误会。

CPU稳坐“主咖”宝座,CPU可以当DPU用,CPU也可以当GPU用,但是反过来不成立。

DPU的事情CPU能做,但是,CPU比DPU昂贵老多了。牛刀太贵,杀鸡的人自然不舍得。

云厂商想实现“一起洗澡(一起用)”,得靠虚拟化技术。虚拟化虽好,但是会引发一堆“糟心事儿”,比如性能损耗,甚至有人把这种损耗比喻成“交税”,搞不定当然多交税。

这种损耗也相当于,还没有开始洗澡,一半水在水管里就浪费光了,肥皂沫都没有来得及冲掉。

技术问题越难,极客们越兴奋,不自觉扬起了手里的小皮鞭。

虚拟化是DPU的精髓,虚拟化的历史几乎和计算机一样悠久,是计算机科学史上最伟大的思想之一,造就了伟大的云计算技术和市场。

“制造假象”“隐藏细节”(给上层应用提供一种假象,降低上层应用使用下层资源的复杂度)。

我们天天在用的操作系统,也是一种虚拟化的“思想”,是对硬件资源的虚拟化。PC机的虚拟化,把计算的核心“变成”进程。把存储介质“变成”文件系统。

云计算的硝烟战火中,虚拟化这个喷涂了迷彩伪装的弹药库,终于藏不住了。

猜你喜欢
虚拟化亚马逊芯片
芯片会议
85亿美元,亚马逊收购米高梅划算否?
装错芯片的机器人
什么是AMD64
浅谈虚拟化工作原理
用户怎样选择虚拟化解决方案
虚拟化整合之势凸显
虚拟化技术:绿色IT的希望