云计算网络技术内幕 小结 (上)

我们对前面12期做一个小结:

云计算的实质是将集中式的计算机基础架构拆散成为分布式的。具体而言,就是云服务器/容器、云存储和云数据库等云服务实例,取代了单机模型中的CPU,内存和硬盘等组件。

在单机模型的计算机中,总线是连接CPU/内存,存储及其他各类设备的控制通道和数据通道。在基于云计算模型的基础架构中,云计算网络实质上起到了总线的作用。

最初云网络的雏形是用于虚拟机迁移的网络。虚拟化系统的代表是VMWare。受到VMWare早期版本的限制,虚拟机迁移必须使用二层网络搬运内存等数据,因此提出了网络大二层的概念。同时,为了让虚拟机带着IP地址迁移,也需要在数据中心IP网络上封装二层隧道来实现虚拟机在数据中心网络内的漫游。这种二层隧道封装技术叫做Overlay。

Overlay的实现,可以在交换机芯片上进行封装,也可以在宿主机的vSwitch上进行封装,一般被称为硬件Overlay和软件Overlay。虽然目前常见的数据中心交换机一般都支持硬件VXLAN Overlay封装,但由于大型公有云平台往往在标准协议上进行了一定的修改,使用交换机作为Overlay封装点有可能出现一些困难。同时,随着DPDK的普及,在vSwitch上进行Overlay封装逐渐成为云计算网络Overlay实现的主流。同时,对于非虚拟化的裸金属服务器接入云网络时,Overlay的封装仍然利用物理交换机实现,以解决裸金属服务器没有vSwitch的问题。

2016年以来,随着Openstack的普及,VXLAN这种封装方式逐渐成为主流,但也暴露出一定的不足,如链路开销大,无法避免ARP仿冒攻击等。因此,出现了新一代的Overlay技术:GRE封装。GRE封装是三层隧道,因此天然避免了工作在二层的ARP仿冒攻击的风险,同时,28Byte的封装开销也比VXLAN 50Byte的封装开销要节约资源。

在较为传统的基础架构系统中,一般使用F5/A10等专用设备实现其他网络功能,而在大型公有云中,考虑到横向扩容,一般使用NFV方式,也就是在通用的服务器硬件上运行SDN网元功能软件来实现网络功能。虽然最初LVS等NFV实现的性能难以让工程师们满意,但Intel DPDK的推出使得NFV网元的性能可以用于生产。

一类NFV网元实现VPC的功能,如Overlay的虚拟机和容器访问位于underlay的PaaS服务集群时,需要网关节点提供服务的发现和服务的路由。考虑到其重要性,在性能与高可用方面采用了一系列巧妙的设计,能够实现多个服务节点的负载分担和高可用。另一类NFV网元则承担四层和七层负载均衡功能,其负载分担和高可用也可以借鉴ipvs和nginx的实现方式。

在大型公有云中,由于网络流量往往高达几百Gbps,NFV一般使用物理机集群实现,集群台数可达数十台。而在私有化部署的情况下,为了降低成本,工程师们就需要将不同的NFV网元压缩到少量的服务器集群中部署,也就是虚拟机部署。

在虚拟机中部署NFV网元主要的挑战是虚拟机入网。由于NFV是网络吞吐密集型的业务,如果把虚拟机通过vSwitch接入云网络,vSwitch本身就会对转发的吞吐和时延造成一定的影响。因此,对于虚拟机NFV网元,往往使用SR-IOV的VF直通方式,把硬件虚拟化的网卡给虚拟机使用,以保证NFV的性能。

在下一期,我们将介绍云原生网络的实现方式。