> 厂商 >

Tungsten Fabric:连接CMP的金钥匙

作者:钱誉

“我们找了差不多10个SDN技术,从商用的到开源的,再到国产小范围应用的。”

“对比所有的Portal去看,不管是OpenStack还是原生的K8s,基本都是以运维视角出发的,不是一个对外提供业务的case。”

“K8s不是一个PaaS平台,只是解决了一个docker管理的问题。”

“在云网络环境里,可能一个租户下面无数虚拟机,里面跑了无数不同的应用方式,所有流的走向又是乱七八糟的。”

“OpenShift虽然是有OVS,能不能和OpenStack互通是存疑的,最后验证下来也是不能通的,完全是两个体系。”

“进入CMP的时代,如果一个应用场景在15分钟内开不起来的话,那它就失败了,更不要说借助第三方外力。”

Tungsten Fabric:连接CMP的金钥匙

本文整理自上海数讯CIO钱誉在TF中文社区“2020第一次Meetup”上的演讲,分享早期云网络实际应用和二次开发过程中的经验教训。XXX作为合作方,经主办方和演讲者审阅授权发布。

在TF中文社区1月7日的“2020第一次Meetup”活动上,来自Tungsten Fabric技术研发和一线使用者、关注多云互联的从业者、开源SDN的爱好者们互相切磋、支招,现场气氛热烈,精彩内容不断。Tungsten Fabric在中国的广泛应用正在越来越真切地走来。

本次演讲及TF中文社区“2020第一次Meetup”活动资料,请在“TF中文社区”公众号后台点击“会议活动-Meetup”领取。

Tungsten Fabric:连接CMP的金钥匙

上海数讯CIO钱誉

上海数讯是一家以传统数据中心业务为主的公司,为什么会转到云计算呢?在2011年以后,整个数据中心行业越来越像房地产了,数据中心这种业务可复制性比较强,竞争激烈。到2013年的时候,有一些新的技术出来,包括OpenStack的爆发式增长,于是2014年开始决定去做云计算这个事情。

当初的定义是多平台,从实际应用场景来看的话,不是说虚拟机和容器哪个好,它们两个应用在不同的场景,没有谁替代谁的问题,要做两个平台的时候,又碰到一个很尴尬的问题,虚拟机的网络和容器的网络,完全是两回事。

中间我们找了差不多10个SDN技术,从商用的到开源的,再到国产小范围应用的,那个时候Tungsten Fabric还叫OpenContrail,当时的版本还只支持OpenStack。

Tungsten Fabric:连接CMP的金钥匙

CMP是这几年提出来的,但刚开始做的时候,已经有CMP的理念了。

对比所有的Portal去看,不管是OpenStack还是原生的K8s,基本都是以运维视角出发的,不是一个对外提供业务的一个case。所以从使用者来看的话,是一件非常痛苦的事情,当时我们就决定把两个平台统一,在Web上做一个完整的、基于用户自己界面的平台。

Tungsten Fabric:连接CMP的金钥匙

在那个时候,确定了数讯云平台和SDN的方向,当时主要是OpenStack和K8s。我们发现一个问题,K8s不是一个PaaS平台,只是解决了一个docker管理的问题。如果是小环境的话,用不用都无所谓,不一定非要搞SDN,包括OpenStack也一样,如果业务环境不是过于复杂的话,其实跑传统的VLAN,只要控制量,没有广播风暴,没有任何问题。

TF中文社区3月Meetup活动,将聚焦Tungsten Fabric与K8s的集成,由重量级嘉宾分享Tungsten Fabric与K8s的部署和实践,详细演示操作过程,并解答关于Tungsten Fabric和K8s的一切问题。关注“TF中文社区”公众号,后台点击“会议活动-Meetup”参与。

但如果你的业务场景非常复杂,以前收纳在虚拟机,现在收纳在容器里,这种业务的出现,会对网络造成非常大的困境,不可能对每个线的业务去做策略。一旦出现业务迁移或trouble shooting的时候,后端运维人员是崩溃的,没法调。以前写个PBR,写个静态路由,最多是挂几个交换机路由。在云网络环境里完全不是这样,可能一个租户下面无数虚拟机,里面跑了无数不同的应用方式,所有流的走向又是乱七八糟的,这种情况下,如果用传统的方式,基本就不用做了,因为看不到头。所以要采用SDN的方式。

Tungsten Fabric的确非常优秀,但也有一些问题存在,完全支持OVSDB的交换机,对Tungsten Fabric的兼容会更好一点。也不是说Openflow不行,用流表的方式也能做,但那就比较折腾了。

Tungsten Fabric:连接CMP的金钥匙

数讯的底层Port,就是底层通过Tungsten Fabric的SDN技术支持线。当时2015年OpenContrail时代的时候,K8s刚开放,我们提出要采用基于容器的方式,因为虚拟机的方式对运维、扩容、迁移有弊端的话,后面业务是很难有保证的。那个时候OpenStack也比较早期,基本上都是自己统一部署,和Juniper networks联合开发的时候,把OpenContrail放在一起部署。

另外,数讯作为数据中心运营商,提供的是传统的hosting,大家都在考虑上云的问题。在云计算中我们已经使用了SDN技术,非传统VLAN的方式,那么用户上云的时候怎么接呢,不可能再开个VLAN做个什么映射,比较困难。

还有,怎么把用户实际在机房里的一堆业务场景,跟云计算的overlay网络去连接,而不是以某个独立的服务去试。

这里就解决了VLAN映射的问题,不可能为用户提供专线,还要改变他的VLAN网络,这是不现实的,所以在这上面做了大量的二次开发。包括OpenStack和OpenShift,开源社区的版本都是单节点,到真正地应用到场景的话,最起码要保证多节点,社区版的东西要落到生产环境,包括和Tungsten Fabric对接,还是有很多二次开发要做。

Tungsten Fabric:连接CMP的金钥匙

这是在开发和调研中碰到的实际用例的问题,有些是我们自己的,有些是用户应用场景中的。

Neutron稳定性比较差,我们曾经实测过,开到2500个虚拟机会出现莫名其妙的抖动,导致全部崩溃,对于原生的Neutron,我们还是比较谨慎的。

如果K8s只是实现单一业务,基本原生的Flannel或Calico都能解决,Calico对于多数据中心多任务的方式是不提供支持的,Calico是目前K8s开源环境使用最多的。

OpenShift虽然是有OVS,能不能和OpenStack互通是存疑的,最后验证下来也是不能通的,完全是两个体系。

另外VNF和CNF是否能够共存,也是未知。为什么虚拟机要去访问容器?在我们看来极其不合理,但在金融行业或电商行业,某些业务可以跑虚拟机,某些已经买了商业软件,或者有些用户自己有开发能力,已经把一部分东西放到容器里了。

以前我们在虚拟机开一堆负载均衡,但在容器里直接一个Node无数port就解决了,包括很多注册机机制不能portal,总不能把网络做分段再做代理转接,他们觉得非常难,看有没有可能解决这个问题。我们最后试错下来,在最近解决了VNF和CNF在OpenStack虚拟机层面的互通问题,要用到管理网去做互通。

虚拟机网络与容器网络二层互访,在Tungsten Fabric 4.0版本的时候是基于标签的方式,能用,但是用起来不方便。到现在5.1版本的时候,整个Portal也没有把这个拉出来作为一个选项,每次都要去翻虚拟机和容器去做对应,这个操作比较麻烦,我们也试过做二次开发,比较累。如果有可能的话,把这两个东西放在一起,管理起来就会非常方便。

软件定义的FW、LB如何在跨场景中业务落地?大部分用户场景里,都是用商业软件,各种品牌都有,自己本身提供image,放到虚拟机都有自己的feature,怎么和Tungsten Fabric互通,肯定是要做二次开发的,但目前看来也就Tungsten Fabric有可能去做,其它的比较困难。

VPC的问题,在我们的理解里,Tungsten Fabric的VPC可以理解为现在国内SDN web更合理,两段VPN建立隧道。至于你要管到公有云的虚拟机,好像不太可能。即使是给到你,可能最后也会放弃,光是版本迭代问题就没法解决。没人做这样的事情。好处是有Portal,能够看到整个业务的实际情况。

Tungsten Fabric:连接CMP的金钥匙

吐槽一下,Tungsten Fabric确实解决了OpenStack网络拓展和稳定性问题,但对网卡有点挑,在一些特殊的应用场景里,比如跑VDI的IDP协议,我们发现Intel和Broadcom的网卡不那么友善。

相比OpenStack,目前为止Tungsten Fabric和OpenShift的对接难度更大一点。OpenShift开源的OKD本身就有一些问题,另外只是把Tungsten Fabric和OpenShift或K8s装在一起,简单应用看不出问题,但如果跑几个业务链,比如标签、应用、路由网关、业务编排等,整个流程走下去会有问题。

TF中文社区3月Meetup活动,将聚焦Tungsten Fabric与K8s的集成,由重量级嘉宾分享Tungsten Fabric与K8s的部署和实践,详细演示操作过程,并解答关于Tungsten Fabric和K8s的一切问题。关注“TF中文社区”公众号,后台点击“会议活动-Meetup”参与。

的确我们看下来,Tungsten Fabric就像文档上面所说的,对OpenShift的支持,还是比其它开源软件或商业软件要好很多,至少还能看到用Tungsten Fabric做二次开发的曙光。

关于服务链,如果能够和端口去做匹配,可能更好一点,不要干预整条网络的属性,在某些特定场景里面会比较复杂。

多云环境我们目前适配下来,只有AWS和Azure是可以的,不过还是根据实际的应用场景出发,也没必要把所有的公有云平台对接一遍,业务也没有那么复杂。

支持DPDK及smartNIC我们实测过,在OpenStack默认的kernel环境下,达到安全厂商他们的软件标准,基本达不到,只有使用DPDK的方式才能达到标称值,但DPDK又是Intel的专属,在实际场景中碰到了一些问题,有的应用能跑起来,有的就不行。所以,要使用DPDK方式的话,还是要根据自己的使用场景去看一下。

Tungsten Fabric提供类似REST的API,所以即使自己要做CMP的话,去调用后端的参数,相对还是比较容易的,但针对API的文档有点乱。

Tungsten Fabric:连接CMP的金钥匙

到现在,我们做云计算是非常认真的,从2014年到现在一直在不断打磨自己的平台,所有的视角都是以用户实例去呈现,包括把Tungsten Fabric后端的API腾挪到前端,针对某个租户他就能根据自己的策略去调。进入CMP的时代,如果一个应用场景在15分钟内开不起来的话,那它就失败了,更不要说借助第三方外力。把很多权限都开放给用户。

Tungsten Fabric:连接CMP的金钥匙

我们的PaaS后端是OpenShift,基于PaaS平台的所有业务都在前端重做,包括Tungsten Fabric针对OpenShift的功能,都放在前端,包括Tungsten Fabric内部都可以监控,不用非常原始的SNMP的方式做采集,完全不需要。

Tungsten Fabric:连接CMP的金钥匙

目前为止,数讯的平台做到了这个程度。选择Tungsten Fabric是因为协议相对标准,BGP VPN就能解决,我比较抵触私有协议,某些友商总想搞个大一统,最后也不太可能,还是开放式大家比较能接受。

谈到VXLAN的问题,实际用下来,如果用kernel方式,如果量很大损耗还是很大,特别针对VXLAN没有做特别优化的交换机或网卡,直接性能损失大概在30%左右。

从整个Tungsten Fabric去看的话,基本上把不同的平台、不同的网络特性都统一管理起来了,只是容器和虚拟机还是有一定手动的工作量,如果Tungsten Fabric把这个问题解决掉会更好。另外,Tungsten Fabric在OpenStack和OpenShift认证机制上不太一致。

这几年比较痛苦的是支持比较少,不管开源社区还是官方,主要侧重于安装,有一部分trouble shooting,但针对于实际的应用场景部署相对比较缺失。做云计算不是开虚拟机,用不用OpenStack无所谓,KVM就解决了。所以说云计算不是虚拟化,它有一定的业务逻辑在里面,意味着平台要能对实际落地用户的业务提供很多支持。

我们应用Tungsten Fabric比较早,从3.2版本就开始搞,4.0版本正式对接。我相信如果有自己的业务逻辑,有一定的开发能力,基于Tungsten Fabric能打造出属于自己的好的产品,Tungsten Fabric可编程型比较强,通用性也比较强。满分100的话,我打80分,剩下的20分是支持方面。

以上,我从实际的应用场景,到开发当中遇到的各种情况,抛出了一些问题。

非常感谢大家!

本次演讲及TF中文社区“2020第一次Meetup”活动资料,请在“TF中文社区”公众号后台点击“会议活动-Meetup”参与。


企业会员

免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。

2020-02-26
Tungsten Fabric:连接CMP的金钥匙
作者:钱誉“我们找了差不多10个SDN技术,从商用的到开源的,再到国产小范围应用的。

长按扫码 阅读全文

Baidu
map