当今云计算、人工智能、大数据平台正产生着一系列颠覆性的技术创新,软件的价值被前所未有的推向高峰,“软件吞噬一切”在整个 IT行业中盛行。几十年沉淀下来的网络技术领域也开始热闹非凡,各大标准组织、学派、企业都争先恐后地制定网络行业标准,试图用通用硬件来承载软件,为用户带来物美价廉、互通性高、可持续性升级换代的新一代网络解决方案。
而我和团队却无暇顾及这场“热闹”,因为我们有自己的故事——“思华分布式 ExpressNet 解决方案与盛大游戏 G云 2.0的故事。
很多人觉得奇怪:在残酷的云计算市场,其烧钱程度异常惊人。作为游戏行业巨头的盛大游戏为何要选择思华科技?这个问题同样困扰着我。相比“出奇制胜”,我和团队选择了更稳健的做法,在设计盛大 G云 2.0网络过程中,结合系统架构的通用性和易用性,同时针对游戏行业的痛点,例如网络延时、弹性扩容、安全等,进行定制化的架构设计。新的网络架构主要要着眼于以下几点:
标准且开放化:无论是物理网络还是虚拟化网络,必须采用业界相对标准的组网模型和网络协议,兼顾开放性和互通性,实现网络的模块化设计,为今后平台的演进提供标准化模型;
灵活扩展性:需要引入 Overlay VxLAN技术替代原有的 VLAN来更加灵活的支持云主机对于网络的要求,包括:热迁移、租户隔离、多租户等;
高性能:对于虚拟化网络 Overlay,必须满足游戏场景下对网络延时的苛刻要求。VPC网络需要满足租户各云主机(虚机、物理机)之间高吞吐、低延时的网络互通要求;
高可靠性:无论是 Underlay网络,还是 SDN控制器,必须考虑单点故障和 HA等机制,从而保障整个网络 7 x 24小时高可靠性要求;
解耦合:需要考虑控制和转发平面的解耦合,以及虚拟化网络和物理设备的解耦,以便实现云主机的灵活接入,热迁移等功能;
自动化:引入 SDN控制器,实现对租户网络 VPC的集中管理,支持物理网络和虚拟化网络的快速部署和灵活扩展;
在我看来,提供一个切实可行的,能满足盛大游戏现有网络架构紧迫需求的方案才是此次合作的制胜法宝。发现需求、满足需求比没头没脑的创造一个解决方案要好得多。
经过需求分析和论证工作,我和团队最终决定,引入以盛科 SDN白牌交换机为网络承载(同时支持华为等数据中心交换机),思华科技 ExpressNET为控制平面的方案。该方案没有僵化地采用纯 OpenFlow的方式,而采用了支持 VxLAN的数据中心交换机和开放 API相结合方式,由网络设备提供出足够灵活的 API供思华的 SDN控制器(ExpressNET)调用,思华 Express NET整体架构如下图所示:
盛大 G云 2.0 整体网络部署架构如下图所示:
思华 ExpressNET网络平台为云主机、裸机提供了必要的实体和虚拟网络环境,包括但不限于:VPC内部二三层东西访问、南北向公网访问、虚机和物理机访问、跨云跨 IDC访问等,同时以 VPC为单元对租户进行安全隔离、公网 QoS限制。整个网络架构主要包含了下列组件及其功能特点说明:
由可编程标准化网络硬件设备(例如盛科 E系列,华为 CloudEngine系列等)组成 Clos IP Fabric:其承担了整个底层网络(underlay)功能,为上层的虚拟化网络提供了坚实的网络基础,同时作为 VxLAN的端点,提供高性能的 VTEP隧道终结。该架构具有运维简单、等价多路径、水平扩容和可编程化特点,已被互联网公司,数据中心和传统企业 IT所广泛接受;
位于各计算节点和 Neutron节点的思华 ExpressNET分布式控制器:作为思华 ExpressNET尤为重要的虚拟化网络的控制平面,提供二层、三层网络、DHCP、NAT、QoS、ARP proxy等功能,各功能采用 App plugin的方式实现,易于扩展。采用分布式控制器的好处在于消除了单点故障,性能有保障,同时兼顾了 SDN的设计理念,将控制和转发平面进行了解耦;
位于 Neutron节点的思华 ExpressNET分布式控制器:该控制器负责通过厂商自定义 RPC或者标准的 NetConf协议对 Underlay网络设备进行管控,从而打通虚拟和物理网络的控制平面,真正做到虚实网络的结合与联动;
位于各计算节点的 OpenVswitch(OVS):以 OpenFlow流表的形式提供了高效的网络转发平面,并支持 Intel DPDK扩展,满足今后对性能的进一步要求;
采用 VxLAN隧道封装技术提供租户 VPC虚拟化网络:不仅实现了虚机到虚机的二 /三层网络连通,同时实现了 VPC内虚机到裸机的二 /三层直通,以及 G云到用户线下 IDC的直通,各 VPC安全隔离;
考虑到 Host VxLAN性能的限制,采用 VxLAN offloading技术将 VxLAN加 /解封装上移到物理交换机 ToR上,不仅提高了网络吞吐、降低了网络延时,同时将宝贵的主机计算资源预留给云主机。
网络设计之初,分析了 OpenStack 原生 Neutron网络架构上的一些缺陷和不足,在兼容 Neutron ML2 Framework的基础上,参考了市面上已有的开源项目,引入了思华 ExpressNET全面替换原生 Neutron网络的方案,从而弥补了原生方案的不足,主要体现在以下几个方面:
1. ExpressNET 以 OpenFlow流表实现分布式 DHCP取代集中式的 DHCP:
OpenStack原生模型设计会在 Neutron节点上造成大量的资源占用和单点故障风险,例如有 100个租户,每个租户有 100个子网,那么在 Neutron节点上就要维持 100 x 100 = 10,000个 DHCP进程,消耗大量 CPU资源,并且增加了维护和排障难度。
思华 ExpressNET解决方案利用 OVS OpenFlow流表将 DHCP功能分散到各个计算节点实现,不仅有效的避免单点故障,同时减少了对计算资源的消耗,简化了系统部署,降低了运维排障难度。
2. ExpressNET以 OpenFlow流表方式实现的分布式 vRouter和 DNAT替代原生 Neutron的 vRouter模型:
OpenStack原生的 Neutron有两种 vRouter模型:
一种是早期版本的集中式 vRouter实现,该模型下所有的三层流量都会经过位于 Neutron节点的虚拟路由器(通过网络 NameSpace实现),不仅增加了网络单点故障、限制了网络吞吐,同时加大了网络延时,如下图所示:
随后 OpenStack提出了分布式 vRouter即 DVR的概念,在各计算节点上为租户创建多个 NameSpace并安装相应路由作为租户本地化的 vRouter,虽然该方案在一定程度上解决了集中式模型的一些问题,但由于其依旧采用 NameSpace的实现方式,不仅耗费计算节点大量的 CPU资源,公网 IP地址(用于 Floating IP NameSpace),同时并未降低网络延时和排障难度,如下图所示:
而在盛大的案例中,思华 ExpressNET拥有 L2/L3和 DNAT App plugin,使得位于各计算节点的本地控制器提供路由和地址转换等控制平面功能,并结合 OVS OpenFlow流表实现转发平面功能,不仅有效的解决了集中式路由带来的诸多问题,同时降低了复杂度、提高了网络弹性,释放了本地计算资源,减少了公网 IP地址浪费以及降低了网络延时,如下图所示:
3. ExpressNET支持多公网网段(Multiple Elastic IP Pool):
原生的 OpenStack无法很好的支持多外网功能,导致平台无法使用多个公网 IP网段,从而增加了网络实际部署难度。如下图所示,当申请了多个公网网段后,由于 OpenStack的限制,无法让虚机 VM1申请缺省公网网段 Pool 1以外的地址段,如 EIP Pool 2 & Pool 3(每个虚机一个公网 EIP):
ExpressNET取消该限制并增加相应的保护机制,使得平台可以将任何可用的公网地址段与分布式的路由器相关联,极大的降低了对 IDC网络的需求。如下图所示,在平台管理员创建完额外的外网及网段后(External Network 2 & 3),租户可以在控制台中从 EIP Pool 1, 2 &3中随机挑出一个公网 IP,绑定到其指定的虚机或者物理机上。
4. ExpressNET扩展 OpenStack 网络功能,支持 VPC与线下 IDC互联互通:
盛大案例中必须要考虑用户云上资源和原有 IDC的互联互通,典型的应用场景是各工作室或者技术部门既有在原平台中的 legacy系统,又有新业务在 G云 2.0上开展,同时新旧系统需要二层或者三层网络直通而不经过 NAT。如下图所示,思华 ExpressNET方案利用分布式虚拟路由器和底层 Underlay网络设备,实现了云上 VPC与云下 IDC不经过 NAT转换的网络直通,云上的虚机或者物理机可以直接访问盛大原有 legacy系统的 IP,不仅满足了用户原有的使用习惯,降低了上云的复杂度,同时保证了网络的延续性和透明性。
5. ExpressNET支持跨 IDC的 VPC Peering:
虽然该需求目前在盛大云平台中并不是非常强烈,但是伴随着多地 IDC服务的提供,部分平台使用者希望将分散在各地 IDC的 VPC进行互通,这也是很多公有云例如 AWS、阿里云所推出的 VPC Peering网络服务。相应的解决方案可以按照以前 AWS或者阿里云以用户 VPC为单位,部署相应的软件 VPN网关,实现 VPC的互联互通,但是缺点是用户参与度过高,部署方案复杂,性能受限。参考了最新的阿里云和 AWS的 VPC Peering高速互联方案,依托盛大原有的内网资源,思华 ExpressNET通过在虚拟路由器中引入成熟的静动态路由协议,结合外部网络设备,打造了一张高性能、高扩展性的 DCI(数据中心互连)网络。数据中心之间的网络设备借助成熟的 BGP-EVPN技术实现控制平面,依旧采用 VxLAN作为转发平面以保证整个设计的一致性。
通过引入思华科技 ExpressNET SDN解决方案后,盛大游戏 G云 2.0网络平台收获了以下的显著成效:
高度自动化:整个物理和虚拟化网络实现了自动化管理、运维和监控,提升了平台效率、减少了人为操作故障;
高度灵活和开放:通过将软件和硬件、转发和控制平面解耦,提供了一张灵活的租户虚拟化 Overlay VPC网络,同时不被硬件网络设备商绑定,支持多种网络设备而无需改动上层 overlay网络设计;
高性能:通过软件和硬件协同工作,将网络硬件设备先天性能优势发挥到极致;
高可靠性:通过思华分布式的 SDN控制器,消除了单点故障,保障了平台 7 x 24稳定运行。
在盛大游戏的案例中,SDN带来的好处不仅仅是数据中心、也不仅仅是基础架构,而是包括盛大游戏各个场景的服务和功能,都能在通用的策略框架下实现高效、可靠、安全地运营,实现无缝的移动性、无缝的工作负载迁移。
随着盛大 G云 2.0的不断深化运营和各个系统上线,网络方面也将陆续面临一些新的需求和挑战,例如裸机网络的优化,分布式 SNAT的需求,NFV,VPC内的服务链(Service Function Chain),与容器网络的融合等等。因此,我们也将在未来结合自身的研发经验,结合诸如 OpenStack等开源软件社区、白牌 SDN交换机等,以思华 ExpressNET为基础为盛大构建一个可持续演进、高质量的网络架构。