财经365(www.caijing365.com)11月13日讯:人类对于计算的梦想,像一条河。涓涓细流,奔腾入海。
计算的载体,从楼船一般的大型机,到快艇似的小型机,到如今万吨巨轮的云计算,我们的武器如史诗般演化,但背后却有同一个技术的身影,那就是“虚拟化”。
简单理解,虚拟化技术就像变形金刚,把无数台计算机“组合”成一台超级计算机,或者把一台整计算机“切割”成无数小计算机。1962 年诞生的人类第一台超级计算机 Atlas,就用了名为 Supervisor 的虚拟化组件来管理物理主机资源。如今最先进的生产力——云计算,底层的重要技术也是“虚拟化”。
按照正常的故事剧情发展下去,未来云计算会成为人类应用的底座,就像我们熟悉的水电一样。但是,事情并不那么简单。
云计算带有一道“伤痕”——经过虚拟化技术提供的计算力是“打折”的。
世界因此徘徊不前:上汽集团曾希望用云计算来解决汽车仿真的大算力场景需求,但实测结果让公司大跌眼镜,虚拟化性能损失高达60%,最终不得不忍痛放弃计划。
类似的例子比比皆是,而且越是密集计算的场景,虚拟化带来的损耗问题越明显,无数企业因此被挡在云计算的大门之外,眼看着新时代的浪潮奔流走远。
这个巨大的伤痕,成为了云计算“房间里的大象”,人人都能看到它,却没人有能力除掉它。以至于到后来, 芯片厂商、虚拟化厂商、云厂商,整个产业链对此讳莫如深,从来没有人捅破这层窗户纸。
今天的故事,就从这里开始。
(一)
2016年底,阿里巴巴几十位技术“长老”围坐在会议室里。
这是每年一度阿里巴巴的丰收仪式——“双11”复盘会。这一年,双11当天成交额创下了1682亿的纪录,淘宝天猫的后台像一部硕大而精密的数字机器,没有一个零件掉链子。阿里云费了九牛二虎之力,将虚拟化性能损耗降到了当时业界的最低值,大家脸上自然洋溢着轻松和笑意。
轮到行癫发言。
所有人都把目光投向他。在大家心里,这个阿里巴巴集团首席技术官(CTO)有两个特色:“善于拿捏理想和现实的技术信徒”+“爱曝金句的耿直 Boy”。
行癫的套路是这样的:每年双11,他一边波澜不惊,一边启发大家构想出一些宏大的技术方向,足够整个阿里巴巴集团接下来奋斗一整年,今年也不例外。我们要定义哪些是核心问题,然后根本性地解决它。比如,虚拟化损耗问题就是之一。我们的目标很简单,必须想办法把损耗降到“0”。
行癫对满屋子人说。
会议室里的这些技术宅听完差点一口老血喷出来。阿里巴巴过去二十年虽然逆天,但我们已经膨胀到想要挑战几十年来的行业潜规则了么?故事讲到这里,需要先按一下暂停键。中哥强势插入给你科普一下:云计算的性能损耗究竟是怎么来的?
你肯定熟悉你自己的电脑。如果你把你家的计算机想象成一块蛋糕。那么,云计算就是一块“双层蛋糕”。双层蛋糕的下面一层是无数台和你家电脑一样的物理机,上面一层是无数虚拟机。
你去购买云计算,买的可不是下面的物理机,而是上面的虚拟机。
这样对你来说其实更舒爽:比如你今天需要一台阿里云的4核8G的服务器,明天需要一台8核16G的服务器,不用重新攒电脑,只要轻轻点一个按键,你的虚拟机就自动变大了。至于下面的物理机怎么调度,那不是你的事儿,是阿里云的事儿。
而把物理机变成虚拟机的这个技术,就是“虚拟化”。
好,重点来了:“虚拟化”的舒爽不是白白得来的,它的代价就是性能损耗。
举个例子:假设你是厂长,工厂流水线上有104个工人,你一个人管不过来104人,他们经常上班摸鱼。于是你从中选出8个小组长,每个小组长管12名工人。这样一来,生产秩序加强了,但是有8个本来能干活的人做了管理工作——原来绝对生产力是104分,现在只剩下96分了。
在这个例子里,我们就说“虚拟化的性能损耗大概是8%”。
同样,在2017年,云计算的性能损耗也差不多在这个量级。粗略地说:104个CPU放在一起,要有8个CPU做“管理”,剩下96个才是干活的。你算算,这个损耗也是8%。
用初物理知识想想也知道,虚拟化性能损耗这件事儿,是天经地义的。最多只能无限降低,不能消失。
好,科普完毕,我们回到双11复盘会上。
行癫提的目标很美好,让CPU全部用于真正的计算。如果成功把虚拟化损耗降下来,绝对是云计算历史上的大功一件,那些企业上云最后的顾虑也将烟消云散。但这个技术难度,似乎不亚于证明“哥德巴赫猜想”。。。
围坐的人里,有一个人心里“咯噔”一下——因为这是他的职责范围。
此人名叫旭卿,阿里云弹性计算的技术负责人,听到行癫“点将”,按捺不住内心的激动。因为这也是他团队一直想做的事情,只是如何实现,还拿捏不准。
当然,过去几年,世界主流的云计算玩家都在试图通过各种“补丁方案”降低资源损耗,阿里云也没闲着。2015年,阿里云的底层虚拟化技术架构被更换掉(从 Xen 到 KVM),虚拟化的开销从极端场景的超过一半,降低到了平均10%的水平。2016年,阿里云越来越稳定,用户也开始迅速超过百万。但在当时的虚拟化架构路线上,这10%的“硬核开销”基本上属于奥特曼消灭不了的小怪兽。
那次会议结束后,阿里云副总裁李津就拉着旭卿团队促膝长谈,他们追踪到了一个行业真相:过去芯片商、硬件商、虚拟化软件厂商等几乎所有的角色一如既往地扮演好自己的角色,按照各自的进化逻辑和速度演进,他们之间的配合就成了“三不管地带”——虚拟化损耗被视作必然。
在计算力规模较小的时候这不会被当做是个大问题,然而放在数百万台规模的云计算时代,这个损耗才异常可观。
李津和旭卿一致认为,事到如今,再研究“补丁方案”肯定没戏,必须在计算体系结构上做创新:以往的解决路线都是让虚拟化软件去迁就CPU的特性,好比是让管理学符合流水线工人,明摆着强扭的瓜不甜。而阿里云的新计划则是让“上帝的归上帝,凯撒的归凯撒”:新造出一个带有智能芯片的专用板卡负责虚拟化调度,从而把那些CPU解救出来。
也就是说不从原来的工人里选拔小组长,而是阿里巴巴自己研制一个“专业组长”,直接空降管理104个工人,这样104个人不就都可以全力干活了么?
看完方案之后,大家眼珠一转,技术构想很NB,没意见。但问题有两个:第一、做芯片,做板卡,这可都是门槛极高的硬件设计。第二、举头望去,就连世界公认的云计算领头羊,亚马逊 AWS,也没听说有这么激进的“硬件计划”。
看这意思,整套事情玩下来,难度不亚于两万五千里长征,未来一年团队可要生死未卜咯。