专访UCloud徐亮:UCloud虚拟网络的演进之路云计算

来源:互联网 / 作者:SKY / 2018-10-12 01:07 / 点击:
当今,几乎所有的IT基础架构都在朝云的方向发展。在基础架构中,服务器和存储虚拟化已经发展的比较成熟,作为基础架构中的虚拟网络,为了迎合云计算和互联网发展

【新产品上线啦】51CTO播客,随时随地,碎片化学习

【51CTO.com原创稿件】当今,几乎所有的IT基础架构都在朝云的方向发展。在基础架构中,服务器和存储虚拟化已经发展的比较成熟,作为基础架构中的虚拟网络,为了迎合云计算和互联网发展的需求,迎来了新的挑战,UCloud虚拟网络平台负责人徐亮对此进行了梳理。

徐亮,UCloud虚拟网络平台负责人,公司首位5级技术专家。先后任职于上海贝尔、腾讯,有超过18年电信与互联网行业研发管理经验。加入UCloud后主要负责云平台网络架构,包括UXR网络解耦、网络产品架构升级、虚拟网络架构升级等。

徐亮

网络虚拟化与SDN

网络虚拟化是一个历史比较悠久的概念,普遍认为最初的网络虚拟化是起源于VLAN。网络虚拟化让一个物理网络能够支持多个逻辑网络。虚拟化保留了网络

设计中原有的层次结构、数据通道和所能提供的服务,使得最终用户的体验和独享物理网络一样。因此带来了三大优势:帮助更好的利用网络资源,平摊被过度使用的资源上的通信量;无需部署专用物理架构就可以实现一些隔离操作, 提高网络安全性;合并端口,以提高网络的利用率和性能。

SDN(Software-defined Networking)是将网络设备的控制平面(control plane)从数据平面(data plane)中分离,改用软件的方式实现,即软件定义网络。SDN可使网络管理员在不变更硬件设备的前提下,以中央控制的方式用程序重新规划网络,为控制网络流量提供了新方案,也为核心网络和应用创新提供了良好平台,成为网络虚拟化发展的有力推动者。

云计算给网络虚拟化带来新挑战

首先,云计算,特别是公有云,需要网络虚拟化提供多租户和VPC的能力。VPC(Virtual Private Cloud)允许不同租户甚至同一租户的网络地址重叠,广播域独立,必然导致对网络虚拟化的需求。最早的网络虚拟化是VLAN协议,但VLAN协议中的VID只有12个bit,仅支持4094个虚拟网络,在公有云的环境下是远远不够的。这就促使公有云厂商纷纷引入Overlay技术解决这一问题。从早期的NVGRE到现在比较主流的VxLAN,和比较新的GENEVE,都支持24 bits(16M)的租户ID,满足了公有云的需求。

其次,云计算需要SDN帮助提供灵活、弹性的控制面。传统网络中大多使用硬件设备,如果新增了一个租户,去配置硬件设备是一件比较困难的事情,因为每家配置都是不同的。但是如果用计算的方式,通过软件可以在不触及物理网络设备的情况下,动态的去修改网络配置,从而使网络虚拟化能够像计算一样轻松、快速、动态。

举个例子来说明:当租户VPC-100下的一台VM10.10.12.34要访问同子网下的另一个IP 10.10.56.78时,首先需要通过ARP协议去获得10.10.56.78的MAC地址。当这个ARP请求报文到达宿主机的vSwitch上时,由于VPC的存在IP地址可能被不同租户复用,所以首先必须要识别出该ARP请求来自VPC-100,才能识别出这个ARP报文请求的是VPC-100下的IP 10.10.56.78. 由于Overlay网络不支持广播,所以需要知道该子网下所有VM所在的宿主机在哪里,才能够把这个ARP请求加上Overlay封装送到目的宿主机上。当然如果vSwitch了解VPC-100的10.10.56.78的MAC是52:54:12:34:56:78,也可以采用ARP代答技术,直接返回ARP响应。所有的这一切都不是依赖网络设备自动完成,而是通过SDN用软件控制实现的。

除此之外,Overlay给物理网络也带来了非常大的复杂度,硬件的支持非常慢。徐亮在此举例为据:最流行的万兆网卡芯片Intel 82599不支持任何Overlay协议的卸载,直到今年Mellanox的网卡才开始逐步支持VxLAN的TSO卸载。而交换机芯片用了5年的时间才支持VxLAN协议,其他Overlay协议仍然没有交换机芯片支持,导致Overlay网络的性能长期低于物理网络。

UCloud虚拟网络发展历程

在2012年UCloud成立之初,虚拟网络就是IaaS的一个核心组件,当时采用EBTables和IPTables的组合来实现租户隔离。但是UCloud的团队很快发现这个技术方案不足以向客户提供安全、稳定的服务。

于是从2013年开始,UCloud的虚拟网络开始采用SDN技术实现租户隔离,也就是VPC(Virtual Private Cloud)。同年年底,UCloud意识到客户在使用云主机的同时也有使用物理机(bare metal)的需求,所以率先采用盛科的SDN交换机,推出了和公有云网络互通物理云主机产品。

2015年,随着客户业务的快速发展,硬件SDN交换机OpenFlow流表有限的条目已经不足以支撑物理云主机的需求。UCloud迅速开发了采用DPDK技术的服务器集群来替代硬件SDN交换机。随后更多的DPDK网关作为OVS的补充出现在UCloud的虚拟网络中,为客户提供更快速的虚拟网络。

从2017年开始,随着25G网络的发展,UCloud开始研发基于硬件卸载的虚拟网络方案。最后确认下来的方向是可编程交换机和智能网卡两者同时推进。

在控制面流表管理方面主要有两种方案,被动触发方式和主动推送方式。被动触发方式是传统的OpenFlow流表管理方式,在收到报文时首先检查是否本地有流表命中,如果没有,则通过OpenFlow Packet-in消息发送给Controller处理,Controller下发新的流表处理此类型报文。主动推送方式则是在网络拓扑发生变化的时候主动将变化的流表推送到转发面。

早期,UCloud以被动触发方式为主。其优势在于实现简单,但缺点是首包会有延迟,且控制面受用户行为影响大,可能会有很多突发情况。针对首包延迟问题,UCloud采用主动模拟用户对外发送报文的方式触发流表下发,达到类似主动推送的效果。针对控制面突发较多的问题,采用本地Controller先对Packet-in消息进行去重、限流后再发给远程Controller的方式进行规避。

在大量引入DPDK网关后,UCloud也在使用主动推送方式。其优势在于有效消除首包延迟,且控制面压力更可控,不影响转发面。但主动推送方式存在的问题是,如果虚拟网络规模很大的时候,推送的范围就会很大,可能会造成推送时间过长而导致网络变化无法实时生效。

针对以上问题,目前UCloud也在探索两者结合的一些新方法。

UCloud虚拟网络的挑战及解决方案

虚拟网络领域经过近10年的演进仍然处于一个快速发展变化、百家争鸣的阶段,同时也给UCloud虚拟网络团队带来了很多挑战。

转发面的挑战与解决方案

一、网卡性能大幅从1G提升到10G、25G、100G带来的性能挑战

网络性能的提升速度,已经超过了CPU性能提升的速度,这是一大挑战。UCloud目前主要采用硬件卸载的方式来解决,包括可编程交换机和智能网卡。

可编程P4交换机方案

2017年第四季度,UCloud开始预研Barefoot的支持P4的可编程交换机(Tofino芯片),发现P4 and Barefoot Tofino能够很好地满足需求。P4 and Barefoot Tofino的优点主要有:

阅读延展

1
3