@ fnii.cn

登录邮箱

Dr. Junda Liu:Big Data for SDN or Towards Data-Driven Networks

发表日期:2014年06月04日      共浏览 1518 次      编辑:

大家好,我想跟大家汇报一下网络的优化下一步怎么去做,我们一贯的想法就是说从事实出发,从数据出发,但是在正式演讲开始之前,我先说一下,我今天下午所讲的内容是我个人的观点。


传统意义上大家说google是一个互联网公司,看完这张图你的想法就改变了,google有自己的边界网,全球范围的骨干网,和跨数据中心的骨干网,还有企业网。大家看到了google光纤1G的到户,用气球做偏远地区的覆盖,还有一条可能国内不太注意的信息是,著名的星巴克在北美5000家店的wifi是由google提供。在数据中心互联之间有自己的骨干网之间四个单词首字母缩写,每一台机器是100多个10G,万兆的交换口,然后是一台机器,一个数据点会有很多台。这台机器在做的时候,我们知道在广域网协议,运营商这么多年的积淀有很多了,但是当时的协定google是一个愿意冒险的公司,我们就只用open  flow。在控制器方面借用的是著名开源的路由站。大家比较关心的是google的规模。Arista是硅谷那边一家新兴的公司,业务部门的VP他说google在2004年的时候发了一个给所有厂商的一个请求说,我需要1万个1个G非堵塞的fabric,有人偶然发现了一台交换机是google自己做的,有兴趣的人可以去找一个好一点的搜索引擎搜一下。在2014年第一季度,三个月的时间,google用于基础设施的投资是23亿美元,这些钱就是国内讲基础设施。google是一个比较透明的公司,很多信息都公布在下面这个页面上。为什么需要这样的规模,因为需求在那儿,数字时代,数字世界的大规模扩张,而且是一个指数级增长,一个很典型的例子,每一分钟有100小时视频上传到视频网站。还有智能设备的增长,包括物联网,以后终端比现在数量上讲是10倍,成百倍的增长,每一个设备都要联网,另外一个很有意思的事情,大家可能觉得因特网是很自然而然的一件事情,地球上还有30亿人没有互联网。这件事情促进很多人在想那30亿人的互联网在哪里。这是在非洲肯尼亚做交换网,前面尹浩老师提到,非常有意思的是他避开所有地面建基站的事情,直接上台,用低轨卫星加飞机,一个很好的想法是说,我避免了地面建站的占地和成本还有工期。

另外一个硬需求,随着大家对云计算认识进一步的清楚,企业的IT设备和基础设施在向云端移动,意味着以前企业需要自己维护数据中心,现在可能就是去公有云和私有云那儿说你给我几个虚拟机,大规模的数据中心规模的要求。另外一个是程序员都比较熟悉的摩尔定律,摩尔定律以前是程序员最好的朋友,为什么呢?你写了一段代码什么事情都不用做,一年之后就快了,因为CPU快了,但是现在不是这样的了,服务器频率已经有相当一段时间没有再增长。你去看一个现在通用的CPU芯片,一半以上是内存,计算的其实并没有多少。另外一个比较热闹的事情就是多核,但是代码不用修改是不可能真正利用多核的优势,所以你需要利用非常精细。

最后我们讲新的应用,我们看得到已经能够证明自己价值的新应用,第一个就是深入计算,神经网络的深入计算,比较典型的例子就是说他用了1万6千个CPU,还有100万张视频截图,这个系统在没有人提供任何支持的情况下,可以告诉你这个东西是什么呢,生成的图像是一张猫脸,土地看视频图片,他认识了猫这个东西,但是他没有猫的概念,但是他知道这是一个出现频率非常高的。另外在google新的安卓系统里面提供的语音,你可以跟手机做人机交互,这件事情是想了很多年,语音的交互。但是瓶颈在哪儿,第一是识别,第二是上下文,你先问明天北京天气怎么样,你再问一句话下午交通怎么样,下午交通怎么样这句话他得知道是北京交通怎么样,这些简单的上下文,在以前传统计算机人工智能,或者是人机交互也好,觉得还是受制于很多技术的限制。在技术出现以后,通过大规模数据的挖掘,通过学习,能够针对用户建立模型,效果非常好。接着就讲Big  Data,搜索是用户告诉你他想要什么东西,现在更有意思的是说用户很懒,他希望在问之前就拿到答案,你怎么能让他在问之前就拿到答案呢?当我下飞机到南京的时候,他告诉我说南京的天气情况,他看到我地理位置移动了,他知道我可能会关心,比如说南京会有个球队,他不会吧球队比赛分数推送给我,他需要知道我的行为,我到底对什么感兴趣,这些东西都是通过大规模的数据分析做出来。另外一个很有意思的google照片故事,现在数码照相设备实在是太普及了,很轻松的成千上万张的照片,回去之后没有人整理,也没有人去挑,你说照婚纱你照几千张让人花钱去修。比如说去加勒比海玩了几天,花了很多照片,第一回来行为变化了,地理位置变化了,行为本身出发有很多东西不一样,他再拿这些照片和已知名胜地方的,有地理位置信息在照片里最好,没有怎么办,他就可以做全球的知名景点匹配,最后给你生成一个非常漂亮的,专业做都很难达到水准的一个行云流水一般,从第一天,你去哪儿,然后把你行程标出来,然后再给你放一张专业照的是什么样子,这些东西完全不需要任何人工参与,这我觉得也是一个大数据的,真正说应用上非常让人兴奋的地方。

回到SDN这件事情上来,它的好处有很多,从这个角度看,通过集中的控制,加上能够对包级别的操作,你必须要有可编程程序的接口。传统的网络对比一下,是你用人用网络管理员调协议参数,相当于给了你几个开关,现在不是这样子。我需要做到包级别的操作,你就算是雇再多的人也赶不上,必须要用程序自动化的。最关键的一个有意思的地方是说他能够解决今天大规模的挑战的需求。简单的讲就是一个N平方到N复杂度的降低,传统分布式系统里,每一个节点通信给所有的节点,每一件事情发生之后会引发一个地规的效应。简单的说是一个N2N的通信,SDN里面因为你有一个集中的控制器,你可以想象从N到控制器,从控制器到所有节点,从指数的复杂度变成一个线性复杂度。另外因为你有API,你向上层开放之后,三个月的时间完成从研发到测试到部署这么一个快速的迭代,快速迭代我觉得是互联网公司能够这么多事情一个很重要的。你永远不能保证第一次就做对了,但是你只要有快速修正自己的能力你总是可以开衩的。另外一个想法是说超越标准,标准是很重要,尤其是网络,涉及到互联互通,运营商这个角度讲,更看中这件事情,涉及到采集设备。从另外一个角度看呢,标准相当于说问题已经定义好了,解决方案也提好了。这个东西有多领先多超前,或者多有意思,换个角度讲,google当年有1万个1个G交换机的时候,很多人都没有想过,现在就出现了。十年以前,google现在想要的事情是标准是肯定不能满足的,SDN至少给了你这么一个途径,与其说我等RETF,厂商实现标准化测试,十年一个周期我有人,有技术实力就可以投进去,做一个符合我自己的解决方案。SDN有很多问题,第一件事是你集中控制其怎么知道到底发生了什么事情,而且非常有意思的是,你说链路掉了,但是你的控制器根本就区分不了这件事情。你会先发现链路掉了。另外网络里故障情况有各种各样,尤其大规模网络设备多了以后,并不是一个简单灵活工作不工作,或者是工作30%,你就不知道到底是什么一个情况,控制器需要对全网有一个非常精确的判断,如果最下面上来的信息都已经是一个模糊的东西,到底怎么来提供路由,怎么来提供。假设这件事情做完了,控制器算好了一个最优化的解,你要下发到下面交换机上。你想想看到底有多少次才能真正实现,从open  flow接口到一般软件在交换机硬件抽象层,你会去芯片驱动,最后不知道你什么时候才可以确定真正进了流表里面,这件事情,而且很多时候你为了优化性能,不是说所有事情做完,才是说我控制器做完了。其实你可能甚至,有可能上秒级延迟在真正的实现。最后是两件事加起来有一个一致性的问题。你怎么能够确定你的网络里的状态是一致的,这件事情也是我下面讲的工作,讲工作之前用SDN的公司看到网络的问题,因为用了SDN之后,这是每个月出现的,相当于跟路由最相关的事情,蓝色表示路由丢掉了,蓝色是相当于有黑洞,所有东西到这个地方就丢掉。你要看bug的数量是不少。我们做四这么一个工作大规模网络上怎么确定转发平面,这是一个联合工作,是斯坦福和google一起做的,我们在两个月之前的NSID上公布的文章,大概是1万个交换机,100万条转发规则。google文章是发表在2004年也是10年以前,很多新的东西已经在出现了,我们还要继续去,也算是,所用的手段,我的目标就是去检查所有这些转发规则到底正确不正确,一致不一致,我希望尽可能的不受控制平面的影响。你控制平面刚才说了,就是因为控制平面出了bug,所以才有各种各样的问题。这套系统的输入就是目的地还有规则,输出就是哪些规则有可能有问题。

真正你要去做这件事听起来也不是很难,第一件事情就是发现你要,某一个时刻说,然后我把所有东西都抓下来,第一件事这个网络里规则是一直在变化,有没有那么一段时间让你说。第二个根本没有土布,你从一个交换机拿到的事情,事件A,一定应该在实践B之前发生,你从网络里拿回来按照排序,发现事件B在事件A之前,你知道是因为这个网络时间不精准,有一个可能的办法,成本虽然比较夸张,把所有成本都放原子中。是不是规则一直在变化,我们说真的。24小时里有2万8千个事件在真正生产环境的数据中心里发生。好处是什么,真正我们看时间序的时候发现,95%的事件是发生在相近的时候。99%的时候网络是没事干的,这个事情是很好的消息,网络一直在更新,更新和更新之间是有间隔,间隔就是我们的机会。另外说我们知NTP,网络也有更精确的版本,延迟就是1到100毫秒,你可以做一些探索有很多研究工作在里面,但是工程上一个很简单的想法,如果是1到100毫秒,我取一个上限,都用上下限去傍,对我来说不是一个精确的点,而是一个时间段。我把所有时间段不是所有事情都有事情发生,是稳定镜像。我们发现是非常好,实际上用效果也很好。我们很早以前有一版系统,算起来有2个礼拜,而不是用普通的笔记本或者台式机算,正儿八经的两个星期算。我们肯定需要,做不到就是把这个延迟尽可能的压缩。怎么能够降低处理的时间。一个是可以根据目的地并行化,互相转发目的地的话,肯定是相互独立的,算出来之后再根据目的地把这个图整合起来。所有转发规则在正常情况下,没有错误的情况下,应该是一个为最终节点是有效的图,这件事情上就很简单了,第一步说传统设备里信息,你就根本拿不到,用了SDN才有这个可能,网络出了什么事我能够拿到,进去这个系统里,按照目的地去分,分完之后再把这个图组合起来,组合起来同时,每组合完一个我去检查它是不是,整个流程就是这样。从结构上看还是比较鼓舞人的。规则数乘以2,是260万的规则,用50台服务器,在1分钟之内就把所有的交验做完了,技术上证明的可行性。很显然规则特别多,也是同样用50台机器1分半左右,这结果从从大规模数据处理到SDN的结合算是一个阶段性成果,很高兴,谢谢大