加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

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

发布时间:2018-10-17 08:37:30 所属栏目:移动互联 来源:赵立京
导读:【51CTO技术沙龙】10月27日,让我们共同探索AI场景化应用实现之道 【51CTO.com原创稿件】当今,几乎所有的IT基础架构都在朝云的方向发展。在基础架构中,服务器和存储虚拟化已经发展的比较成熟,作为基础架构中的虚拟网络,为了迎合云计算和互联网发展的需

1、 与DPDK相比,有更高的转发性能。DPDK基本上用网卡的方式,单机10G或者25G的性能。对于可编程交换机来说,起步就是1.8T到6.5T的性能,相对于DPDK在性能上是几十倍甚至接近一百倍的提升。而且交换机的时延更低,它的单根网线支持100G,基本上可以避免单线被拥塞的效果。

2、 交换机的转发性能是很稳定的,并且是可以预期的,而DPDK的转发性能随业务模型可能会发生变化。

3、 与其他硬件交换机相比,可编程P4交换机更开放。可编程能力强,可以定制转发面整个处理包的p4lang。可编程P4交换机可以完美解决Ethernet Over GRE和Flow Based Tunneling的问题。用P4语言写程序,比用DPDK的C语言写程序更简单,开发效率更高。可编程P4交换机基本上采用gRPC的接口进行远程的管理,操作系统采用 Open Network Linux(基于Debian),这使交换机更像一个传统的服务器。另外相对于其他交换机,可编程P4交换机有一个生态圈,有P4 Runtime、Stratum这样的开源社区,更好的促进交换机的发展。

目前UCloud采用P4可编程交换机完成了一个新增的核心Gateway的开发和测试工作,已经开始部署和灰度上线。

智能网卡方案

同期,在计算节点上,UCloud也在探索如何解决25G网络带来的性能挑战。

在VMware主宰虚拟化的早期阶段,通过VLAN实现租户隔离,通过SRIOV的方式将硬件网卡虚拟化成多张虚拟网卡供虚拟机使用,是非常成熟而高效的解决方案。采用SRIOV的方式,虚拟机可以获得物理网卡95%以上的PPS性能。但12位的VLAN只能支持最大4094个租户,并不能满足公有云的需求,而二层的组网方式也不适合公有云的大规模数据中心。几乎所有的公有云都是采用的Overlay的解决方案。而Overlay的方案相对VLAN要复杂很多,大多数新一代非智能网卡的ASIC芯片目前仅可以完成VXLAN的封装和解封装工作,但虚拟机所在的宿主机地址信息需要控制面提供,使得SRIOV技术在Overlay的网络里完全无用武之地。

基于DPDK的vSwitch方案对比基于Linux Kernel的vSwitch,在报文转发性能上提升了几倍。通过DPDK的Vhost Library,VM的网络报文可以通过Virtio虚拟网卡,以Zero Copy的方式到达宿主机上的vSwitch进行处理。宿主机上的vSwitch根据控制面信息了解目的MAC或者IP所在的宿主机信息,然后加上Overlay封装高速转发。但代价是绝大多数网卡只能支持Busy Poll的DPDK工作方式,无论虚拟机当前的PPS是多少,DPDK都会占用固定的CPU Cores,而这部分计算资源原本在闲时是可以出售的。

而智能网卡(SmartNIC)的目标就是将网络转发所占用的宿主机计算资源释放出来,从而达到降低TCO的目标。目前智能网卡的实现百花齐放,例如:AWS采用基于通用ARM的众核方案、AZure采用基于FPGA的方案、华为云采用基于专用网络处理器(NP)的方案、阿里云采用基于可编程ASIC芯片的方案。就目前来看各个方案各有优势,并没有特别突出一统天下的方案。

基于通用ARM、MIPS的众核方案,简单将原来跑在宿主机上的vSwitch移植到网卡上,既可以支持Linux Kernel也可以支持DPDK,从而达到释放宿主机计算资源的目的。其他基于FPGA、NP和可编程ASIC的方案,大多在网卡上维护一个快速转发路径(FastPath),当收到报文后,首先检查是否在FastPath已经缓存了该类报文的处理规则,如果找到,则直接按照规则执行动作,否则就转发到SlowPath去处理。而这个SlowPath可以是DPDK,也可以是Linux Kernel。因此,FastPath最重要的是看是否支持足够多的Action,以及自定义Action的可扩展性。SlowPath和FastPath通信除了各厂商的私有接口外,也有标准的TC Offload接口和DPDK提供的RTE Flows接口。

智能网卡几乎都可以采用SRIOV的方式接入虚拟机。VF支持的队列个数也非常重要,只有支持多队列的VF,才能够通过RSS充分发挥出虚拟机的多核优势,从而达到较高的网络处理性能。整合FastPath和SRIOV,智能网卡也能够使虚拟机的网络性能接近物理网卡。

但阻碍SmartNIC采用SRIOV方式的一大原因就是虚拟机热迁移(Live-Migration),SRIOV方式虚拟机直接管理VF,这导致无法Live-Migration。Live-Migration的问题较传统的解决方案是通过VF和Virtio Bind的方式来规避,在正常工作的时候,使用VF进行高性能转发,在Live-Migration前热拔出VF网卡无缝切换到Virtio网卡工作,在Live-Migration完成后再热插入VF网卡。

显而易见,在Live-Migration过程中使用Virtio网卡会造成网络性能下降,使得Live-Migration需要选择闲时进行。Intel提出vhost data path acceleration(vDPA)技术,在VF上兼容Virtio,从而更好地支持Live-Migration。同时Virtio 1.1规范的推出使得网卡硬件兼容Virtio更加容易。

目前UCloud基于SRIOV支持热迁移的高性能25G智能网卡正在内测阶段,即将上线。

二、有状态服务(如:安全组)引入带来的性能挑战

UCloud希望能够通过智能网卡来卸载有状态业务,例如:防火墙、NAT和安全组。有状态业务要求实现连接追踪(Connection Track)。新建连接需要在

FastPath插入新规则,这要求非常高的规则更新速度。每个连接都需要在FastPath维护一条规则,这对内存提出了非常高的要求。连接的状态变化需要在FastPath和SlowPath间同步,TCP的状态变化时还需要检查SEQ。

目前UCloud在测试一些商用的SmartNIC,智能网卡对有状态业务的支持正在越来越好,有望在不久的将来,能够提供足够成熟的有状态业务解决方案。

控制面的挑战与轻量级ServiceMesh方案

虚拟化的优势很明显:可以提高服务器、计算及网络容量的使用效率,减少资金投入。但同时,虚拟化也给负责管理虚拟网络的数据中心人员带来了新的挑战。

SDN的控制面需要在每台计算节点上部署,本质上就是一个超大规模(x万节点)的分布式系统。它面临的问题也和常规分布式系统一样,需要解决CAP问题、可扩展性问题等等。为了降低变更的影响范围,UCloud也逐步开始进行微服务改造。同时更好地实现按用户灰度发布,因此引入了轻量级ServiceMesh架构。

轻量级ServiceMesh是基于Envoy和Istio Pilot的Istio变种方案。Istio是一个非常优秀ServiceMesh方案, UCloud团队对Istio的流量管理功能非常满意,同时通过评测也能够接受Envoy的性能开销。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读