神龙云服务器的幕后英雄,十三年虚拟化技术的探索者
发布时间:2018-05-22 10:13
2017年的杭州云栖大会上,当阿里云副总裁李津振臂一挥,宣布神龙云服务器时,台下观众一片惊呼,媒体对这一“新物种”的报道顿时铺天盖地…..
为何说其是“新物种”?
阿里云虚拟化技术总监张献涛解释说,它兼具物理机和虚拟机优点。用专业的术语描述就是,“神龙”在保证物理机的性能优势和硬件级隔离能力的前提下,又具有虚拟机的可扩展性以及弹性优势,可以说是集万千宠爱于一身。
当然,神龙云服务器的神奇之处不仅仅是产品形态的革新,从立项到发布,张献涛博士带领其团队仅仅用了不到一年的时间,在虚拟化技术诞生的几十年历史里,这本身就是一种奇迹。
张献涛,花名旭卿,现为阿里云资深技术专家及虚拟化技术总监。
一、国内首批虚拟化技术的探索者
如果现在要给虚拟化技术一个通俗的定义,答案或许是“把IAAS层通过资源化的形式,软件进行切分,提供新的资源交互方式IAAS”。
但在十几年前,云计算也仅仅停留在概念阶段,虚拟化的定义与现在大相径庭。那时候,国内企业对虚拟化技术的掌握几乎为0,即便是放眼全球,做虚拟化技术的公司也屈指可数,最著名的就是VMware,剑桥大学以及英特尔亚太研发中心,当时国内研究虚拟化技术的技术人才主要聚集在后者。
2005年,凭借研究生期间积累的项目经验,还在读博的张献涛在众多求职人员中脱颖而出,成功加入了英特尔亚太研发中心虚拟化部门,并且成为了国内最早一批做虚拟化的技术人。
“2005年加入英特尔,那个时候还没有云计算,我们就在做虚拟化。”张献涛如此回忆。
当时英特尔亚太研发中心刚刚在上海成立,这家由国际巨头打造的研发型机构从创立之初就非常注重本土化,因此国内工程师在机构里占据了绝大多数,而张献涛可以说是这其中的佼佼者。
在这期间,张献涛参与了无数虚拟化项目:在开源虚拟化项目Xen、Linux/KVM等社区贡献颇多,曾担任Xen项目子系统的Maintainer,并为KVM虚拟化项目增加了跨平台支持,独立实现了KVM在IA64平台的支持,并担任KVM/IA64项目的Maintainer。
2011年,他在英特尔主力参与研发的HAXM虚拟机加速器为Android系统模拟器性能提升数倍,开发效率倍增,惠及数以百万的Android应用开发人员,多次受到Google公司赞扬,并因此获得英特尔最高成就奖(IAA)。
在虚拟化方向做出的突出贡献也让张献涛在行业内的影响力水涨船高,在团队内,仅仅不到8年的时间,就从一名实习生晋升到掌管整个英特尔的虚拟化技术团队的leader。
二、与阿里的情缘
2009年,阿里云正式成立并成为国内首个云计算服务商,张献涛和阿里的交集也是从这时候开始的。此后,他和阿里云有过多次线上的交流,但这时的阿里云在他眼中只是英特尔的一个客户。
张献涛和阿里云团队面对面接触是在2010年阿里云ECS发布前夕。因为当时产品底层出现了一个问题,情况非常紧急否则无法正常上线。作为阿里云的供应商,英特尔亚太研发中心派张献涛亲自到阿里云解决问题。
“大概一点多钟到阿里云,不到三点就把问题解决了”,张献涛回忆道。
由于那段时间整个行业的虚拟化技术人才短缺,张献涛可以说是那个时代可遇不可求的人才,不少企业向他抛出了橄榄枝,阿里云也不例外。但最初张献涛拒绝了所有企业,理由很简单:在英特尔可以继续沉淀技术。
“最开始我确实没有想着要换工作,我觉得在英特尔是一家可以把技术做得非常深的公司,每天也可以学习到很多新的东西”。
真正让张献涛萌生去意的时间是在2013年,此时他已经是英特尔亚太研发中心的虚拟化部门负责人,在外界看来,这时候离开似乎并不是一个好的选择。
“我觉得技术方面的挑战几乎不大了,所以想着换一家公司。”
2014年初,张献涛和阿里HR进行了几个小时的交流。
“她当时讲了很多阿里集团的开放文化以及工程师文化,让我印象非常深刻;另一方面,虽然自己在做云计算的核心技术多年,但是自己做的技术有多少人在用,能够解决多少客户的问题,这才是技术最大的价值。”
于是,张献涛很快就做出了自己人生当中最重要的决定,2014年的6月份正式加入了阿里云。
三、倚天剑项目:釜底抽薪,底层架构的巨变
“加入阿里云后最深刻的体会就是做云计算不易。”
入职阿里云第一个月张献涛就碰到了一个很严重的问题,当时有运维同事把线上的机器的频率参数设置错了,这对当时上万个客户虚拟机的性能会产生巨大的影响。
“因为参数一旦设错,就需要重启所有的机器把参数再设置回来。”
如果重启将会对客户造成巨大的损失。面对这类比较紧急的底层问题,本身在虚拟化技术积累多年经验的张献涛显得非常从容。
“当时花了几乎是两天两夜,去分析这个问题,最终拿到了一个解决方案,用一个tricky的手段把参数给修改过来。”
这是张献涛来到阿里云之后首次做出的技术创新,但这只是挑战的开始。
早期ECS的稳定性表现并不好,这对客户来说其实是一颗定时炸弹。对此,2014年的7月份,张献涛提出了一个解决方案,是把虚拟化层所有的东西全面进行一次升级,即Xen到KVM的切换,这一提议出来后在当时遭到了诸多的挑战。
因为原有Xen架构已经运行了5年,谁也无法预测替换后的效果到底如何。但他没有放弃,在多次向上汇报之后最终说服当时的领导,当然前提是先预研,如果通过那么就进行底层的全面改造。
领导的支持给张献涛带来了极大的鼓舞。大概两个多月的时间,他带了2个人的团队把原型做出来了,并且性能表现达到了预期。
巧合的是,当时阿里云另外一个同时进行的战略级项目是磁盘更换成SSD,希望通过新的软件架构和更高性能的存储介质把IO性能提升,目标是云盘做到一万IOPS。但测试结果并不理想,在Xen架构下测试IO性能只提升到了3000,离预先设定的目标是一万差距非常大。
张献涛反应极其迅速,他再次提出把SSD和新的KVM架构融合,不同的是,这样的建议很快得到了团队的采纳,。
“根据我的判断,SSD在新的架构下性能绝对可以大幅度提升。”
从测试结果来看效果立竿见影,首次在KVM架构测试下云盘的性能超过了一万,后来经过几次优化甚至超过了两万。这也再次验证了架构切换的价值。
很快阿里云总裁孙权便号召集团队其他专家进行观察,几番评估后最终确定KVM切换以及和SSD融合的项目规划,项目名称为“倚天剑”。
2014年7月,项目正式开始,整个ECS团队就有28个人主动加入这一项目组,项目的目标有二:一是对KVM进行深度定制,把底层的虚拟化架构进行升级替换,并让其具备全组件热升级、高稳定、高可用、可维护性以及可迭代性的特点;二是提供更加极致的云盘的IO性能;三是保持和老架构的ECS的使用体验完全不变。整个项目持续了近9个月,最终在2015年5月4号正式上线,产品的稳定性解决了,IO性能提升了40倍。
“倚天剑”的新架构上线到今天为止已经是三年整了,张献涛表示,这三年来表现非常稳定,完全具备支撑互联网和大规模的企业级客户的业务上云。
四、集团云化技术战略下催生的新一代虚拟化技术
2014年底,阿里巴巴集团启动了名声大噪的“集团云化”技术战略,而首当其冲的战役当然是双十一。在这个大的项目里,张献涛负责ECS的集团云化的技术方案制定和落地。
现实很骨感,真正将集团业务模拟在阿里云上后,老的架构下的ECS上的性能只有使用物理机的10%,这意味着什么?原本一台物理机能实现,在ECS上要用十台机器去支撑,成本翻了10倍。
集团给项目团队定下了一个在当时看来不切实际的目标:在2015年双十一之前做到90%的物理机性能。摆在张献涛面前最大的难题是:老的架构无法支撑2015年双十一的规模,而新的架构还未上线。
“如果再在老的架构下面去做,今年的双十一就泡汤了。”
于是,张献涛又发出了一个大胆的提议——使用新架构。这时离2015年5月新架构发布还有两个月的时间。当然,现在看来,在老架构已经出现瓶颈的情况下,这似乎是一项单选题。
在这之后的半年时间里,项目团队做了大量底层的优化,最终在当年的双十一期间虚拟化性能开销完美的控制在了10%以内。
阿里巴巴集团云化第一年的表现几近完美,同时也为后续的双十一打下了坚实的基础,后续的两年性能在不断提升。
第二年性能达到了物理机的98%,即整体的性能和物理机媲美的情况,底层技术需要再次升级,在原来的基础上做了大量的技术的改进。2016年阿里云就支撑了整个双十一流量的60%,在内部来看云上做双十一规模已经不是问题了。
2017年的双十一,集团提出了更大的目标:和物理机的性能完全一致,甚至在有些领域可能性能比物理机还要好,光做虚拟化层的优化,98%已经是极限了,所以我们做了整个软件栈的优化,从客户机内核到虚拟化层甚至到一些应用层,最终媲美物理机的性能,甚至个别场景下比物理机的表现还要好一些。
三年双十一的大规模流量检验,KVM都发挥了极致的性能表现。但张献涛从2016年开始思考新的问题——下一代虚拟化的技术会是什么?下一代IAAS层的核心技术应该往哪个方向发展。”
“如果大家都用同样的技术,大家唯一拼的就是成本。”
而且对于对计算需求较高的业务场景来说,KVM其实支持的还不够好,这一点他非常清楚。
2016年11月23日的双十一的总结会上,阿里巴巴CTO行癫提出要让虚拟化做到0损耗,这与张献涛思考的下一代虚拟化技术不谋而合。
所谓下一代的虚拟化技术就是做到性能无损的同时,还可以具备虚拟机的灵活性。这本身看起来是天方夜谭,但集团上线的口径一致,下一代虚拟化技术的研发必须提上议程。
2017年4月,下一代虚拟化技术项目立项,而最终的产物就是大家熟知的神龙云服务器。
在现有的技术上去做到性能0损耗可能性为0,无论是KVM还是Xen架构,服务器几乎都是千篇一律,原有的设计理念是软件适配现有服务器做虚拟化,而
神龙云服务器的设计思路是反其道而行之,做出一款适合虚拟化技术的硬件服务器。
“通用的硬件解决不了了,我们就要使用自己开发的芯片,然后去解决这个问题,原来是服务器不变,软件怎样变更做虚拟化。”
今年3月,神龙云服务器正式商业化。在张献涛看来,这一产品形态也是整个行业的趋势,不仅仅是因为它兼具了物理机和云主机的优势,这样的判断来自对客户的理解。
在大洋彼岸的AWS曾在2015年1月收购了以色列一家创业公司,这家公司从2014年开始研发的正是与神龙云服务器技术路线类似的产品,只不过阿里云捷足先登,神龙云服务器率先实现了商用。
五、大计算时代下的计算平台思考
提到未来,人工智能是一个不得不提的词。最近几年人工智能爆发,有计算能力提升的原因;但在丰富的人工智能应用场景需求下,又推动了计算平台的升级。
最明显的变化就是,传统CPU的计算能力已经逐渐无法满足新型的应用场景,这一点已成事实。
从2017年开始,张献涛团队就先后发布了GPU、FPGA以及云上超算产品,这是一套可以满足大计算时代下的计算产品。但在他看来,无论是ECS的虚拟化还是GPU、FPGA、神龙云服务器,未来的产品形态可能一直在变化,但技术创新的理念才是永恒不变的驱动力。