华为云计算——网络虚拟化

Posted IT小组

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华为云计算——网络虚拟化相关的知识,希望对你有一定的参考价值。





01



网络虚拟化
在介绍网络虚拟化之前,需要考虑一个问题——为什么需要网络虚拟化呢?
之所以要对网络进行虚拟化,是因为在没有进行虚拟化之前,每个服务器都有自己独立的网卡,服务器上的OS独占物理网卡的使用。而现在通过虚拟化技术在一台物理服务器需要运行多个VM,而多个VM都要有自己的网卡,VM之间的网卡彼此之间是独立的,但一台服务器物理网卡是有限的,为了解决VM之间的通信、VM与外网通信等问题,所以有了网络虚拟化。
网络虚拟化之后的特点:
隔离性: 不同租户的流量,相互之间不能访问。 不同租户的IP/MA C地址可以独立规划,甚至可以相互重叠。

可移动性:拟机可以跨二层/三层迁移,甚至可以跨广域网进行迁移。逻辑网络和物理网络解耦,不受物理网络限制,逻辑网络可以跨越二层/三层物理网络,可扩展性、逻辑网络规模可扩展、逻辑网络数量可扩展等。


网络虚拟化有三种实现方式,如下:
1.Domain 0 实现的网络虚拟化
2.智能网卡INIC实现的网络虚拟化
3.SR—IOV技术实现的网络虚拟化

Domain 0 实现的网络虚拟化:
在Xen架构中,直接是Domain 0(所谓的Domain 0是Xen架构中的一台特殊的VM,它有后端驱动和设备驱动,后端驱动用于和其他的VM进行通信,而设备驱动则是对设备进行管理)来完成网络虚拟化,由Domian 0负责网桥队列,属于一次数据拷贝(一次数据拷贝是指:VM发送的流量只通过CPU复制,完成一次转换即可),利用Domain 0来实现网络虚拟化的优点是方便和快捷,缺点是对物理主机的CPU开销较大。

智能网卡实现 (INIC) 实现的网络虚拟化:
在服务器的网卡硬件中使用“ 智能的网卡 (INIC) ,由此智能网卡来完成数据交换等操作。在使用了智能网卡的物理主机上,在此物理主机中的VM侧装Tools (华为自研驱动软件) ,利用Tools的驱动来使用INIC网卡,完成网络的虚拟化。不过VM发送数据包的路由需要经过VMM做少量的运算,运算的目的是让数据包找到对应的INIC网卡 (有可能不同的VM对应不同的INIC网卡) ,数据包到达对应的INIC网卡后还需在队列中排队,这是INIC网卡直通技术。 也叫VMDq直通技术 (VMM利用二层Flag的标识来识别数据包要分配到哪个网卡所在的队列中,Flag标识有:MAC和Vlan等)

SR—IOV Single Root-Input/OutputVirtualization 直通技术:
通过服务器物理层的特殊网卡INIC(支持SR—IOV技术的),虚拟出来PF。 所谓的 PF是指 有完 整功能的 PCI 功能的网卡,利用这个 PF再次 虚拟的 VF VF 具有 独立 完整 轻量级 功能的 PCI 功能的网卡 来承载VM的数据转发
在VM侧有VF的驱动,利用驱动绑定底层INIC网卡虚拟出来的VF。PF虚拟出来的VF是相互独立的,多个VM可以共享一个VF。 华为云计算平台中VM侧的Tools驱动里包含的VF驱动。 SR—IOV是半虚拟化

以上三种网络虚拟化的实现方式的区别,如下图: 华为云计算(3)——网络虚拟化
Domain 0 网络虚拟化方式使用的是普通网卡,所以网络虚拟化是服务器的CPU的性能决定的。
INIC和SR—IOV网络虚拟化方式是用智能网卡实现的,普通网卡和INIC智能网卡两者的在流量上也是不同的,如图:华为云计算(3)——网络虚拟化
一次数据拷贝和零拷贝的区别:
普通网卡的数据流:普通网卡是“一次数据拷贝
从APP下发数据包—>OS接送—>虚拟网卡驱动—>VMM管理平台—>物理网卡驱动。数据包到VMM时会进行一次复制,VMM将VM下发的数据包复制下来,发送到物理网卡。一次数据拷贝会浪费主机CPU资源并且会造成数据流量的延迟。

 INIC智能网卡的数据流:智能INIC网卡是数据“零拷贝
从APP—>Buffer(缓存器)—>DMA(直接内存读取技术)将Buffer与底层网卡之间建立连接。不需要利用VMM来对数据包的复制和计算等。不浪费主机资源,零拷贝技术数据延迟低,不浪费主机计算资源等。



02



网络虚拟化的层次

网络虚拟化的层次,可分为四部分,如下图:

华为云计算(3)——网络虚拟化

第一部分为服务器内部的IO虚拟化,这就是前面Domian 0、智能网卡(INIC)、SR—IOV三种网络虚拟化技术所在的区域。
第二部分是服务器内部的虚拟接入,此部分主要是虚拟机交换机(DVS)所在的区域,用于接入不同网络的VM。
第三部分是网络连接,此部分主要是物理服务器使用网卡连接到真实的网络设备,如交换机等,前面两个部分都是要通过此真实的链路将数据包发送出去。
第四部分是网络交换,此部分主要是用来将VM发送的数据包通过路由器或防火墙等物理设备转发到对应的目的端。

03



业界分布式虚拟交换机的实现方式

前面网络虚拟化的三种实现方式都是从VM侧到物理服务器网卡侧,VM数据包一般还会经过交换机、路由器设备等等。在云计算里面VM使用的交换机也是虚拟化的,具体虚拟交换机的实现方式如下:
1.基于服务器CPU
2.基于物理网卡
3.基于物理交换机


基于服务器CPU:
基于服务器CPU的解决方案来说,如下图,VM1访问VM2,将数据包发送给OVS。 (OVS:Open virtual switch,OVS是开源的虚拟机实现技术对应华为的EVS OVS根据MAC地址转发到VM2,性能较优,如果VM1访问VM3,VM1将数据包发给OVS,OVS转发到网卡,这个网卡的链路类型是Turk类型的,而且PVID为0,意味着不打PVID。再由网卡发送给交换机TOR (云接入交换机) TOR在转发到VM3。如果是VM1与VM2流量过大的话,此方式是性能较好,但是如果VM1访问VM3流量过大,则此性能不佳。此实现方式而且对于流量包的监控不利。

华为云计算(3)——网络虚拟化

基于物理网卡(INIC):
第二种利用INIC网卡来实现虚拟交换,如下图,VM1访问VM2时,数据包经过OVS,OVS不进行计算,将数据透传到INIC,由INIC网卡来计算,发现目的是VM2,则将数据包发送到OVS,再由OVS透传到VM2。如果VM1访问不在同Host上的VM时,则是由OVS将数据透传到INIC,由INIC将数据发送到TOR,由TOR发送给其VM,性能较优。

华为云计算(3)——网络虚拟化

基于物理交换机(TOR)
第三种是利用TOR交换机实现网络虚拟化(此TOR支持虚拟化功能),如下图,VM间访问流量走向是OVS—>INIC—>TOR—>INIC—>OVS。因为是使用TOR来实现网络虚拟化,对于主机侧来说降低了主机的开销,所以性能优。 

华为云计算(3)——网络虚拟化


华为分布式虚拟交换机方案如下:
华为云计算的虚拟交换机的概念,在CNA01上,有OVS,在OVS上创建端口组,将虚拟机加入端口组,CNA02上有OVS,VM加入端口组。这里的OVS只有二层功能,但是也可以有三层交换功能。通过VRM,接入多个OVS,形成一个逻辑的DVS,如果在DVS上创建Vlan,则DVS则将创建Vlan的信息发送给OVS,由OVS来具体实现。(补充:OVS是上面的一次拷贝的实现。OVS是开源的虚拟交换实现方式之一。EVS是华为特有的,是在OVS基础之上实现的零次拷贝技术,在虚拟交换实现时OVS与EVS只能使用一种。)
华为的分布式虚拟交换支持基于开源Open vSwitch的纯软件的虚拟交换的功能,同时提供支持完整虚拟交换卸载的智能网卡的虚拟交换。
开源Open vSwitch与智能网卡的虚拟交换提供的功能完全一致,虚拟交换管理通过不同的插件管理Open vSwitch和智能网卡,DVSM在VRM中,而OVS在CNA中。如下图:

华为云计算(3)——网络虚拟化



04



Vxlan的补充知识

Vxlan是一种进行大二层虚拟网络扩展的隧道封装技术。解决了VM因为Vlan标识不够用的问题,在VLan网络下,VM在迁移后为了正常的提供业务所以只能在二层网络下迁移。Vxlan引入了UDP格式的外层隧道,作为数据的链路层,而原有的数据报文内容作为隧道净荷来传输。端口号为4789。Vxlan支持16M个网络标识,而vlan只支持4096个标识。
Vxlan 通常被认为是overlay,所谓的overlay是指 在三层路由网络上面跑二层数据,将二层物理网络扩宽了范围。
如图:华为云计算(3)——网络虚拟化
Vxlan具体实现的细节:

华为云计算(3)——网络虚拟化

正常的VM1与VM2通信,先将数据封装到二层帧中,后发送到VTEP,VTEP将二层帧封装到Vxlan的包中,Vxlan的包有mac,IP(对端VTEP的IP),UDP,Tag(帧)),两个VTEP之间建立Vxlan隧道关系。VTEP在CE设备(华为核心高端路由器)上实现如果对端没有VTEP,则用VTEP网关。(可以在公有云上申请一个VM做VTEP的网关)VTEP到VTEP的通信与VTEP与非VTEP的通信。 

在打通了Vxlan隧道的情况下,数据包一般经过两端的VTEP交换机,如果是Vxlan和非Vxlan间的数据通信则需要Vxlan网关。如下图:

华为云计算(3)——网络虚拟化


华为云计算(3)——网络虚拟化


~往期干货~







喜欢


以上是关于华为云计算——网络虚拟化的主要内容,如果未能解决你的问题,请参考以下文章

小非大人说?华为云——第六期?虚拟私有云VPC

华为云计算HCNA--虚拟化

云计算学习(5-1)云平台产品介绍-华为的FusionCloud产品

云计算奇妙学习之旅第四期:华为计算虚拟化精讲

华为云计算FC创建虚拟机

华为云计算之FusionStorage虚拟机部署FSM