感谢这款“黑科技”,吃鸡不担心掉线

举报
技术火炬手 发表于 2018/11/01 16:55:13 2018/11/01
【摘要】 揭秘“黑科技”

近些年来,各种“黑科技”层出不穷,华为云也推出了“黑科技”产品C3ne,这款基于eVS技术,可以带来千万级网络转发性能的“神器”一度成为行业内关注的焦点,有了它,千万用户同时在线观看视频不用担心网络卡顿,吃鸡、LOL也不会出现掉线“神坑”队友了。

这一款黑科技产品正是由我们中央软件院罗素部云网络、IT芯片,海思和云BU团队共同打造的。8月14日,在由中国信息通信研究院主办的“2018可信云大会”上,C3ne云服务器获得了“2018可信云技术创新奖”的荣誉。当我得知这一喜讯时,内心百感交集……

 “黑科技”一路“黑”到底

大家平日里观看视频,特别是视频直播类节目,比如世界杯,奥运会,如果出现了卡顿的现象,那可是会极度影响心情的,现在随着视频直播等业务上云,如何解决宽带问题,让更多的人同时在线并且还流畅的上网已经成为客户迫切的需求,从专业上来说,就是需要我们能提供更高性能的交换能力。

“工欲善其事,必先利其器。”要想拥有强大的交换能力就需要有厉害的交换机,华为公有云从2013年开始已经开始研发自己的虚拟交换机软件eVS (即弹性虚拟交换机),这是云场景下虚拟网络的核心部件,广泛应用于华为公司各个云产品和云服务中。

但当时我们的eVS直接来自于开源的OVS软件,发展缓慢。到2015年的时候,已经远远落后于行业其他竞争对手自行开发的虚拟交换机水平。2016年,我入职华为,这时eVS的技术性能正受到最大的质疑和挑战。

我还记得那是秋天的时节,我开始主持eVS 3.0的立项工作,并为这个项目设立了一个宏大的目标:我们的eVS要彻底扭转虚拟交换的短板,要达成业界性能第一。

为了完成这次飞跃,我和我的团队经过严谨的技术分析,确定了如下两条设计原则。首先,eVS将采用用户态软件技术,这样对比以前内核态性能更高;其次,eVS将走“软硬结合”的道路,结合硬件,通过智能网卡卸载的方式大幅度提升性能,并选用公司IT芯片部自研的智能网卡u-NIC。u-NIC搭载了公司集五年努力,匠心打造的高性能网络处理芯片,并具有完全的可编程性,非常适合eVS 3.0的软硬协同设计的需要。

对于这样一套全新的eVS架构,刚开始的时候还是有不少的反对的声音的,有人认为纯粹的软件转发就可以满足未来的发展,也有人认为新的架构会影响当前生态,还有人则怀疑自研软硬件的能力。但是我们认为,随着网络性能的不断提高,当前的单CPU核的处理将会远跟不上网络速度的发展,而增加更多的核,将会成倍的增加成本。因此,我们需要专门的智能网卡硬件,协同CPU做网络处理,打造“软硬结合”的“黑科技”。因此面对外界的质疑我们静守己心,潜心进行技术研究,我们相信一定可以发掘出其中巨大的商业价值。

“软硬”的完美结合

黑科技”的特点之一就是“软硬结合”,这个设计的关键是如何把操作在软件(CPU)和硬件(智能网卡)上划分,让软硬件各自处理它们擅长的操作,从而提升整体的处理效率。

对于eVS而言,这个核心设计就是“集成流表”。为了实现虚拟网络的功能,eVS实际上不简单是一个交换机,而是一系列网络功能的集合,例如,路由,有状态防火墙,封装/解封装等。每一个报文都需要依次经过这些功能,才能得到最终的结果,就如一条生产流水线,只有经过一道道工序,才能获得最终的成品。但是直接在硬件上实现所有这样的网络功能是不现实的,而且即使能够实现,性能也未必好。

“黑科技”的大招——“快”,就是通过“集成流表”这一个设计思想达成的,我们利用软件来计算一个流的第一个报文的所有操作,把计算的最终结果记录下来,保存到“集成流表”中,然后后续的报文通过查表的方式获取结果,并不需要重复所有的计算。这就如,我们已经做好了一系列的样品,后面的产品照着模子做,就可以了。更令我们欣喜的是,利用硬件来实现这个查表转发是非常高效的,就这样软件和硬件完美结合,分工合作,大大提高了性能。

其实这个思路并不是我们第一次提出的,在开源OVS里就利用了类似的思路来提升软件转发的效率。但对于我们来说,真正的挑战是如何使“集成流表”能够适用于任意的组网模式,不论是eVS自身的策略流表,还是Linux的网络模块,也就是说这个样品如何成为不同生产线都可以参照的模板?

那段时间我们几个架构师经常“喝咖啡”,最终想出了一种自学习的集成流表生成算法,并能够自动优化掉重复的操作步骤,最终获得最优化的组合操作。通过不断的创新和打磨,如今经过一年的开发eVS 3.0不仅通过“软硬结合”实现超高的性能,而且也实现了对当前软件生态的完全兼容,实现了高可用和高可运维的特性。

最值得一提的是,随着云计算业务的不断发展,几年前还被看好的软件转发已经成为了系统的瓶颈,而此刻搭载自研u-NIC的eVS 3.0技术则成为突破这一瓶颈的法宝。eVS 3.0技术,与友商同规格的产品相比,转发性能提升2.5倍以上,带宽提升2倍以上,成为名副其实的“黑科技”。我们可以骄傲地说,“在云网络性能上,我们已经实现了从落后到全面超越!”

“一骑绝尘”的巨大价值

如今我们正在迈入的万物互联时代,未来网络设备的连接数可能增长至百亿甚至千亿级,各行各业都需要积极应对随之而来的高并发业务挑战。每当介绍起我们团队的“黑科技”,我总是由衷地自豪,因为C3ne首次达成千万级虚拟网络交换能力,在性能和成本上有着绝对的领先优势,可以给客户带来巨大的价值。

以前网络服务厂商要做到网络能力强大,一般会购买服务器,配上高性能的网卡,这时候就会需要自己起来维护服务器了,这就从而提高了成本。云化时代到来后,可以降低维护成本,但是同时网络性能下降了,这成为困扰业界的问题。

比如,迅游作为全国领先的游戏加速厂商,为1亿+用户、13000+款网游提供加速服务,例如绝地求生,也就是我们常说的“吃鸡”游戏,英雄联盟,魔兽世界等游戏的背后都有它的助力。在使用了我们的C3ne产品后,它的业务转发性能实测从300万提升至1300万,单机支撑用户量从3万提升到13万,整体效益提升333%。对于游戏玩家来说,网络不再卡顿,有效减少坑队友的几率。

C3ne不仅在游戏场景有优秀表现,在视频、电商、移动应用、物联网等高并发场景下,也能从容应对,效益倍增。比如视频转播,可以支撑千万人同时观看,不再担心卡出“马赛克”。

 

科技火花就在灵光一现

我们这个团队是由一群年轻又有活力的人组成的,大家敢想敢干,即使有“天马行空”的点子我们也乐于一起讨论,一起落实。大家经常自由地交流,不限时间和场地,畅所欲言,很多思想火花就是在这样漫不经心的交流中碰撞产生的。

    我印象最深的就是现在的低时延拥塞控制算法LDCP,那天我和几个同事讨论拥塞控制,这是一个关于解决延时和网络带宽利用率的方案,我就顺手画了一个图展示了一下,这时有个同事半开玩笑地指着TCP经典的窗口反应的“锯齿”曲线说,如果把这个曲线拉直了,我们是不是就可以解决延时和网络带宽利用率的矛盾了?

   这句话立刻给了我灵感,的确可以尝试一下,对这个问题可以通过交通系统来做一个直观的解释。我们平时开车出门,如果一个方向上流量很大,就会拥堵(带宽利用率大),这样即使走不同方向的车也会排在后面,形成很大延时。理想的方式是如果一个方向上拥堵了,那么这个方向上的车辆应该待在家里,这样路口就不会拥堵,大家都走得很快(延时低)。但如果在家等的时间太长,路口没车了,也会浪费带宽。

现在的拥塞控制算法采用的是一种固定的试错方式,就是按照固定的速率“发车”,如果拥堵,那就立刻“发车”速度减半,这样的方式使得路口的排队总在震荡,其实这个过程展现出来就是那条“锯齿”。

我们的思路是根据拥塞的情况来动态地调整发送速率:拥塞越轻微,则增长的速率越大,而减速越小;反之,拥塞越严重,则增速越小,而减速越大。当排队达到一定数值时,增减速相抵,达成稳定状态,从而路口始终维持着一个稳定的浅队列,同时达到高带宽利用率和低延时。

我的这个想法很快被团队的其他成员所接受。于是LDCP项目产生了。在内部测试中,LDCP比传统的RDMA在动态时延上降低了40~58%。对于很多分布式应用而言,每一微秒延时的减少可能都意味着客户体验的提高。目前我们和周边团队合作,正在把这个算法应用在自研的RDMA网卡中,请大家拭目以待。

来华为这几年感触良多,其实很多时候,科技的火花就出现在想法碰撞的那一瞬间,这一瞬间也是学术成果和工程能力相碰撞的结晶。但是要实现它,不仅需要自身的努力,更需要一个团队付出大量时间和努力才能完成。一个人的力量有限,但团队,让我们走得更远。


本文为《华为人》版权所有,未经允许不得转载。如需转载请联系编辑部hwrb@huawei.com


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。