1 OPPO 云网络现状
随着 OPPO 业务的疾速倒退,OPPO 云规模增长迅速。大规模虚构实例的弹性伸缩、低延时需要对网络提出了诸多挑战。原有基于 VLAN 搭建的公有网络无奈解决这些问题,给网络运维和业务的疾速上线带来了挑战。
梳理存在的次要问题如下:
- 网络不足集中的控制系统,业务开明以手工配置为主,主动开明能力简直没有,为前期保护、降级埋下隐患。
- 虚构网络和物理网络耦合严密,没有做到业务拆散。虚构网络的 MAC 或者路由会传递到物理设施上,对物理设施的二、三层表项的容量提出了很高的要求。虚构实例大规模扩容后可能会使硬件设施上的路由表项耗尽,导致业务无奈应用。
- 虚构网络不足安全策略,已有的安全策略不能很好的管控虚构网络之间的互访互通,网络访问控制机制不健全。
- 虚构网卡带宽无奈反对高性能业务。网络的虚构网卡只反对 veth/tap 设施,网络带宽不高,满足不了网络数据密集型业务的需要。
- 虚构网络系统没有实现管制和转发拆散,管制面故障或者降级会影响业务。
2 虚构网络选型
剖析上述问题的根本原因之后,决定抉择目前业界支流的 SDN 网络技术来解决上述网络隔离和运维自动化能力有余的问题,抉择智能网卡 OFFLOAD 性能来实现虚构实例的网络减速,选用虚构公有云 (VPC) 技术来治理不同用户的业务网络、进步零碎的健壮性、安全性。
SDN 的数据面采纳开源的 OVS 来实现,次要起因是 OVS 曾经在数据中心中大规模利用,其转发性能、稳定性和安全性曾经失去实践证明,其保护老本也绝对升高。
VPC 控制器、VPC 网络接口 (CNI) 插件、VPC 网关、VPC 负载平衡 (Load Balance) 决定采纳自研的形式实现,尽管社区曾经有相似的计划(Neutron/OpenDaylight),然而这些我的项目都比臃肿,侧重于电信业务场景,保护老本较高,不能间接利用于数据中心互联网业务场景,并且和已有的平台零碎,集成开发工作也比拟多。而自研也有很多长处,比方新性能开发疾速不在依赖社区、定制开发不便、轻量化、性能高、稳定性强。
3 VPC 网络计划
整个 VPC 网络系统架构如下图所示。
VPC 控制台提供对立业务入口和便捷的界面操作,业务操作可视化,要害数据存于数据库中,便于保护和应用。
VPC SERVER 是整个零碎的核心,对云平台提供高效,简洁的业务接口。是整个零碎的音讯转发枢纽。
FlowEngine 是位于计算节点的 OVS 控制器,它采纳规定推理的形式计算流表,批示 OVS 如何转发业务报文。FlowEngine 与 VPC Server 一起称作网络的地方中枢。
VPC CNI Agent 负责计算节点网卡资源的治理和调配,同时对云平台提供了创立、删除等业务接口。它采纳智能网卡虚拟化 (SR-IOV) 技术实现虚构实例的网络减速。
VPC 网关分为东西向的分布式网关和南北向的集中网关,提供不同子网的通信,解决了集中网关的单点故障问题。南北向的集中网关反对 VXLAN 隧道,实现虚构网络和物理网络的互通,并且反对横向扩大和 DPDK 减速技术。
VPC LB 实现四层负载平衡,对外提供业务的高可用计划。
3.1 VPC 网络类型
以后 VPC 网络反对租户网络、公共网络和弹性 IP 网络。租户网络中虚构实例之间能够相互拜访,只能通过 VPC 网关拜访内部网络,虚构实例的 IP 地址不会公布进来,因此不能被内部主机拜访。只有绑定上弹性 IP 才能够对外间接提供服务,这种网络特地适宜于开发测试环境向生产环境的切换,有利于业务的疾速公布。
租户网络也能够借助 LB 网关,公布虚构 IP(VIP)路由,对外提供业务。
公共网络相似于传统的 VLAN 网络,它的网段会被 VPC 网关公布到上联设施上,间接能够和 IDC 网络互通。不便部署根底虚构云平台的监控服务以及公共服务。
3.2 租户隔离的隧道 VXLAN
VPC 网络的类型为 VXLAN 隧道,每个子网调配惟一的 VXLAN 隧道 ID,同平安组技术一起应用保障不同用户网络的齐全隔离,解决了业务上云的平安危险。
OVS 的数据面转发由本地控制器来管制,控制器故障不会影响其余节点的通信和已有隧道业务流的转发。
采纳智能网卡的 VXLAN 卸载性能,不会因为 VXLAN 的性能损耗影响业务转发,同时节俭了主机的 CPU 资源。
3.3 VPC 隧道封装阐明
3.3.1 VXLAN 隧道隔离
VPC 网络反对虚拟机和容器位于同一个二层网络,从网络角度看,他们都在同一个 VPC 子网内。不同节点虚构实例互访,须要借助 VXLAN 隧道实现。同子网虚构实例通信,报文的 VXLAN ID 是本子网的 ID,异子网虚构实例通信,报文的 VXLAN ID 是目标子网的 ID。
虚构实例拜访 VPC 内部网络须要借助 VPC 网关,VPC 网关采纳软件实现,通过 DPDK 和高速网卡减速,运行在 X86 服务器上即可。以后也反对第三方 VPC 网关,VPC 网关能够通过 HTTP API 或者 BGP-EVPN 接口与 VPC SERVER 交互 VXLAN 的路由信息。
3.3.2 VPC 负载平衡
VPC 负载平衡采纳全 NAT 形式实现,报文封装在 VXLAN 报文中进行转发。路由和隧道信息由 VPC SERVER 同步给 LB 控制器,LB 控制器负责将路由信息更新到对应的网元。
从上图能够分明的看出报文的交互计划,LB 网元会放弃业务的会话 session,反对轮巡、最小负载优先等调度算法。反对一致性哈希算法,无缝迁徙业务性能。
LB 网元采纳 DPDK 和高速网卡实现,报文转发速率 (PPS) 能够达到 800 万以上,会话数目能够达到 10 万以上,时延小于 1ms。满足互联网及 IOT 场景高并发业务要求。
3.4 VPC 性能指标
VPC 虚构实例透传 VF 网卡后,转发性能能够到 25000Gbit/s。PktGen 测试报文转发速率(PPS) 能够达到 2400 万,带宽能够达到 25Gbps。带宽和 PPS 都能够达到虚构的 tap 设施的两倍以上,同时升高了网络转发的 CPU 使用率。
VPC 租户隔离的个性很好的解决多个租户内百万虚构实例的疾速互访问题。单实例和 LB 性能的进步了解决了现网中百万节点数据计算的带宽瓶颈。大大提高了零碎的业务承载能力。VPC 网络技术赋能 AI 和大数据计算平台。
4 收益与瞻望
上线运行后,VPC 架构简化了网络架构,进步了网络的安全性、进步了零碎的业务承载能力及运维效率,为用户带去良好的体验并失去客户的统一赞叹。
VPC 版本仍在一直迭代中,行将公布的新性能有 VPC 对立治理容器、虚拟机、逻辑等多种类型的计算实例,数据面的高可用,OVS 流表计算引擎高可用,100G 最新智能网卡等。