云计算中虚拟网络服务的性能测量及运营实践

2015-12-02 03:00刘辉邦黄保青金耀辉
关键词:网络服务网卡虚拟化

刘辉邦, 罗 萱, 黄保青, 金耀辉,

(1.上海交通大学区域光纤通信网与新型光通信系统国家重点实验室,上海 200240;2.上海交通大学网络信息中心,上海 200240)

1 引 言

云计算已经成为当下互联网的一个很重要的服务方式,它能够为用户提供按需的计算、网络和存储资源.云计算可以分为三个层面:软件即服务(Software as a Service,SaaS),平台即服务(Platform as a Service,PaaS)和基础设施即服务(Infrastructure as a Service,IaaS).IaaS通过虚拟化技术以共享资源池的形式为用户提供计算、存储和网络等IT资源,用户可以部署、控制和运行操作系统和应用软件,并只需按照实际使用量付费,极大地降低了建设和运营成本.

越来越多的企业将自己的业务迁移到云计算平台之上,对于高校来说,建设面向校园提供服务的云平台也是势在必行的.由于向云服务提供商租用云服务可能需要较多花费,越来越多的高校选择开源软件技术搭建属于自己的IaaS平台[1].OpenStack[2]就是目前最为流行的开源云计算平台,它是一个由社区开发推动的开源云计算项目,用于建设和管理公有/私有云,具有良好的可扩展性,现在已被广泛的应用于工业界.

在OpenStack中,虚拟网络服务是最复杂的一个服务[3].用户可以在OpenStack中自行创建网络、子网、端口、路由器等虚拟部件,它们所起的作用和真实的物理部件类似.比如,路由器起的是一个路由选择和转发的功能;端口起的是连接设备进入网络的功能.随着OpenStack版本不断的更新,其虚拟网络服务的功能也越来越强大,可以通过不同的方法和技术来实现,方法和技术的不同势必会造成性能的差异,而虚拟化的存储资源和计算资源最终都要通过虚拟网络为用户提供服务,因此.虚拟网络的性能是非常值得关注的一点.

本文针对当前OpenStack最新发行版,对其虚拟网络服务进行了介绍,着重对虚拟网络服务不同的实现方法和技术进行了分析与性能测量[4-6],并详细介绍了上海交通大学云计算平台的运营实践现状,为高校云计算虚拟网络服务提供了参考.

本文的第二部分主要是OpenStack虚拟网络服务介绍与分析;第三部分是性能测量以及结果分析;第四部分介绍上海交通大学云计算平台运营实践;第五部分是结论.

2 OpenStack虚拟网络服务

在OpenStack中有两种模式来实现OpenStack虚拟网络服务,分别是Nova-network和Neutron,两者各有优缺点:Nova-network的优点是它可以分布式地部署在每个计算节点上,每个计算节点可自行提供虚拟网络服务,稳定性比较好;而Nova-network的主要缺点就在于支持的插件、技术太少,比如只支持Linux Bridge这一种虚拟网桥,在网络虚拟化技术上,只支持虚拟局域网(VLAN)技术.

相对于Nova-network,Neutron在功能上比较强大.在Neutron很重要的一个插件中叫做模块化二层插件(ML2),它的一个强大的功能就是可以支持不同的网络虚拟化技术像VLAN、通用路由封装虚拟网络(NVGRE)、虚拟可扩展局域网(VXLAN)等;同时,它也可以支持多种不同的虚拟网桥,比如像Linux Bridge、OpenvSwitch等等.而Neutron的缺点在于它只能集中地部署在网络节点上,而不能分布式的部署在计算节点,可扩展性差.

OpenStack虚拟网络服务的不断演变给用户带来了云平台建设上的更多选择,但也同时给用户带来了困扰.采用不同的方法与技术来实现虚拟网络服务,其性能必然会有差异,对于高校来说,如何建设适合高校的云计算虚拟网络服务是非常重要的.下面我们将从以下三方面对OpenStack虚拟网络服务的不同实现方法和技术进行具体的分析.

2.1 Nova-network和Neutron

Neutron的功能相对于Nova-network来说更加强大,但是主要的缺是不能在多个计算节点上进行分布式的部署,虚拟机所有向不同子网和公共网络的流量必须要经过Neutron网络节点中的路由器进行三层转发,这就会造成网络节点的负载过大,并且延长了包转发的路径.

如图1,这是一个基于Neutron的OpenStack虚拟网络服务架构,虚拟机1和虚拟机2属于同一个计算节点不同的网络.如果虚拟机1要和虚拟机2通信的话,就一定要先经过Neutron服务所在的网络节点上的路由器进行转发,之后才返回计算节点上的虚拟机2;虚拟机1和虚拟机3的通信过程同样要经过网络节点.而对于基于Nova-network的Open-Stack部署架构来说,则并不需要这么麻烦.如图2所示,Nova-network服务部署在计算节点上,虚拟机1如果要和属于不同网络的虚拟机2通信的话,直接经由计算节点上的路由器转发之后,数据包就可以到达虚拟机2了.

由以上分析可知,Nova-network和Neutron这两种网络模式在三层转发上的不同必然造成性能上的差异.

图1 Neutron架构

图2 Nova-Network架构

2.2 虚拟网桥

虚拟网桥在OpenStack虚拟网络服务中主要起的是数据包的交换功能,相当于交换机,是一个非常重要的部件.OpenStack中有两种虚拟网桥可供选择,分别是Linux Bridge和OpenvSwitch,Openvswitch只能在Neutron架构下部署.OpenStack在流量安全方面做了很多的控制,包括在虚拟机与虚拟网桥的接口处做Iptables,在路由器端口做防火墙设置.而对于OpenvSwitch来说,并不支持在其接口处做Iptables这一功能,而通过Linux bridge是可以实现这一功能的,但是Linux Bridge又不如OpenvSwitch可以支持NVGRE和VXLAN等网络类型.因此,比较常见的虚拟网桥架构是单独用Linux Bridge或者是Linux Bridge和OpenvSwitch级联的模式,如图3所示.

图3 虚拟网桥架构

Linux Bridge和OpenvSwitch相级联的模式虽然可以带来功能上的增强,但是是否会对性能带来影响还是未知的,所以这两种不同的网桥架构的性能上的优劣是非常值得研究和关注的一点.

2.3 网络虚拟化技术

OpenStack中采用网络虚拟化技术对不同用户的网络进行隔离,可支持的技术包括VLAN技术、NVGRE技术和VXLAN技术.VLAN技术将一个局域网从逻辑上划分为多个不同的网段,从而实现不同的网段的隔离,每个网段通过VLAN tag来识别.但由于VLAN tag只有12 bit,个数有限,并不适用于大型的数据中心网络.因此,业界提出了两种基于隧道技术的解决方案:NVGRE、VXLAN.NVGRE和VXLAN都有24 bit的字段来标识不同的租户网络,很好的解决了VLAN个数的限制.但是,这三种网络虚拟化技术性能上的优劣性还是有待实验来验证的.

3 性能测量

3.1 测试方法与测试工具

基于以上分析,我们搭建了实验环境来进行具体的测试.在实验中,我们主要关注的两个典型的网络性能指标:带宽和时延.为了保证实验的严谨性,本文所有的实验都是在同一个Open-Stack环境中进行的,搭建OpenStack平台的三个节点使用的都是同样的服务器与操作系统,相关的安装配置也是参照OpenStack Icehouse官方文档操作的.在OpenStack中创建虚拟机时,我们统一选择2 G内存、双核CPU的配额.在实验中的网络环境都是独立的,不受其他因素影响.

3.1.1 带宽

我们通过在OpenStack创建虚拟机,然后测试两台虚拟机在万兆网络下最多能够占用多少带宽,在测量工具方面,采用Iperf工具来测网络带宽.Iperf是一个被广泛使用的网络性能测试工具,可以测试最大的TCP、UDP带宽性能,并且可以设置传输的总时间,默认时间是10 s,在本文实验中,统一采用的是100 s的传输时间.

3.1.2 时延

在时延测试中,我们主要通过发Ping包来测试包从虚拟机到另一虚拟机之间所需要的时间,经过多次测试取平均值.

3.2 实验环境搭建

本文测试的机器为英特尔2U4节点服务器,内存为64 G,CPU为16核,四个节点的操作系统都是Ubuntu14.04 LTS X86_64.每个节点都用了两个网卡,一个千兆网卡,一个万兆网卡,其中千兆网卡用于OpenStack管理网络,万兆网卡用于OpenStack虚拟机之间通信的数据网络.千兆网卡所连接的交换机NetGear,万兆网卡所连接的交换机为IBM BNT G8124.

在OpenStack中所创建的虚拟机内存配置为2 G,CPU为双核,操作系统为Ubuntu 12.04.2 LTS X86_64.

3.3 测量结果展示与分析

3.3.1 Nova-network和Neutron性能测量

我们分别在Nova-network和Neutron两种不同模式下对虚拟机之间的带宽和时延做测试.在带宽测试中,我们以一个虚拟机作为Iperf server,然后另一虚拟机作为Iperf客户端向主机端发包.一共分以下四种情形:

1)主机端的虚拟机和客户端的虚拟机在相同网络相同计算节点上;

2)主机端的虚拟机和客户端的虚拟机在相同网络不同计算节点上;

3)主机端的虚拟机和客户端的虚拟机在不同网络相同计算节点上;

4)主机端的虚拟机和客户端的虚拟机在不同网络不同计算节点上.

在时延测试中,我们使用的方法是以一台虚拟机作为主机,然后通过作为客户端的虚拟机向主机发Ping包.

从图4、图5中可以看到,当两虚拟机在同一网络下,Nova-network和Neutron的性能基本是一致的,但是当虚拟机不在同一网络下,Nova-network的性能要明显优于Neutron.从以上结果可知,由于在Neutron模式下,所有属于不同网络的虚拟机之间的通信数据包都要经过网络节点,从而造成了网络性能的较大下降.

图4 Nova-network和Neutron带宽测试

图5 Nova-network和Neutron时延测试

3.3.2 虚拟网桥性能测试

由于Nova-network不支持OpenvSwitch,因此,只能在Neutron架构下分别对Linux Bridge和Linux Bridge级联OpenvSwitch这两种网桥模式下做虚拟机之间的带宽和时延测试,两种网桥模式所连接的虚拟机都是在相同网络相同计算节点的.同样也是通过Iperf和Ping来分别测带宽和时延.由于Linux Bridge只支持VLAN技术,而不支持NVGRE和VXLAN技术,所以在这里我们也只能通过VLAN类型的网络虚拟化来进行测量.

从图6-7中可以看到,Linux Bridge的性能要优于Linux Bridge级联OpenvSwitch模式的性能.

图6 不同虚拟网桥的带宽测试

图7 不同虚拟网桥的时延测试

3.3.3 网络虚拟化技术测量

由于Nova-network和Linux Bridge不支持NVGRE和VXLAN技术,所以只能采用的在Neutron架构下,以Linux Bridge级联OpenvSwitch作为虚拟网桥,来对三种不同的网络虚拟化技术进行性能测量.通过图8-9可以看到,当虚拟机属于相同网络相同计算节点的情况下,三者的性能是差不多的,但是对于其他三种情况,VLAN的性能要明显优于其他两者.同时,在实验中我们发现,当虚拟机网卡的MTU和物理机网卡的MTU相等时,会造成虚拟机之间的带宽性能急剧下降,只有10Mbit/s,这是因为从虚拟机出来的包经过NVGRE和VXLAN的封装后MTU会大于物理机的MTU,这就造成了这些包将会在IP层进行分片,最终就造成了性能上的急剧下降.

图8 网络虚拟化技术的带宽测试

图9 网络虚拟化技术的时延测试

3.4 测量结果总结

通过以上测量,我们可以得出总结,如表1:

表1 测量结果总结

4 上海交通大学云计算的运营实践

上海交通大学网络中心以OpenStack为基础,配合其他开源软件,建设了IaaS平台,可以提供类似Amazon的EC2、S3和EBS等服务.所建设的IaaS平台拥有计算服务、存储服务、虚拟网络服务、镜像服务、身份认证服务等等.平台总共包括40台服务器,300 TB本地存储,24 TB块存储,60 TB对象存储,设备之间数据网络通过全万兆以太网互联,管理网络通过千兆以太网互联,平台支持水平扩容,可管理超过1000台服务器以上规模的集群.平台的虚拟网络服务采用的是Neutron模式,以Linux Bridge作为虚拟网桥,不同租户之间的虚拟网络采用VLAN技术隔离.之所以这样选择,主要出于以下几点考量:

(1)由于平台需要为不同的用户提供服务,为了确保用户的网络地址空间相互不受影响,有必要对用户网络的IP地址实现可重叠;

(2)Neutron可提供稳定的负载均衡API;

(3)虽然Neutron不能分布式地部署在每个计算节点上,但我们可以采用部署多个网络节点以减轻其负载压力,保证服务的可靠性;

(4)Neutron支持多种API,例如支持部署软件定义网络(SDN)控制器;

(5)VLAN的个数对于校园级别的网络是充分够用的,因此不会出现VLAN ID不足的情况,并且VLAN技术的性能较好.

上海交通大学云计算平台从2013年6月份开始提供服务,到目前为止未曾出现任何虚拟机/存储/网络等方面的故障.高峰时期有200多台虚拟机,最大单个用户有30多台虚拟机.服务对象多样化,包括科研,教学,信息系统开发,PaaS平台和创新实践等.

5 结 论

虚拟网络服务是云计算平台核心的一个服务,其性能的好坏直接影响到了云计算的计算服务和存储服务.作为OpenStack众多服务中最复杂的一个,随着版本的不断更新,有多种方法和技术可以实现其虚拟网络服务.对于高校来说,如何选择方法和技术构建合理的虚拟网络服务是非常重要的.本文针对当前OpenStack虚拟网络服务的实现方法和技术进行研究与性能测量,详细分析了各种方法和技术的优缺点,并介绍了上海交通大学云计算平台的运营实践现状,为今后高校的云平台虚拟网络服务建设提供了参考.

[1] WEN Xiaolong,GU Genqiang,LI Qingchun,et al.Comparison of Open-Source Cloud Management Platforms:OpenStack and OpenNebula[C]//9th International Conference on Fuzzy Systems and Knowledge Discovery,2012.

[2] OpenStack[EB/OL].[2014-10-31].http://www.openstack.org.

[3] WANG G H,EUGENE T S.NG.The Impact of Virtualization on Network Performance of Amazon EC2 Data Center[C]//INFOCOM,2010 Proceedings IEEE,2010.

[4] SHARATH S,BASU A.Performance of Eucalyptus and OpenStack Clouds on Future Grid[J].International Journal of Computer Applications,2013,80(13):31-37.

[5] KAWASHIMA R,MATSUO H.Non-Tunneling Edge-Overlay Model using OpenFlow for Cloud Datacenter Networks[C]//IEEE International Conference on Cloud Computing Technology and Science,2013.

[6] OpenStack Performance[EB/OL].[2014-10-31].http://docs.openstack.org/security-guide/content/ch031_Neutron-architecture.html.

[7] Neutron[EB/OL].[2014-10-31].https://wiki.openstack.org/wiki/Neutron.

[8] OpenStack networking administration guide[EB/OL].[2014-10-31].http://docs.openstack.org/grizzly/openstack-network/admin/content.

猜你喜欢
网络服务网卡虚拟化
网络服务合同的法律问题研究
基于网络服务者在侵权法中的应用分析
部署Linux虚拟机出现的网络故障
基于OpenStack虚拟化网络管理平台的设计与实现
Server 2016网卡组合模式
对基于Docker的虚拟化技术的几点探讨
网络服务行为的可罚性
网络服务安全效率两相宜
H3C CAS 云计算管理平台上虚拟化安全防护的实现
挑战Killer网卡Realtek网游专用Dragon网卡