- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
IXIA虚拟化测试技术介绍
1 引言
根据Gartner公司的研究报告,虚拟化和云计算(Cloud Computing)是2009年最为热门的两大技术,根据调查结果显示,有超过50%以上的企业正在进行虚拟化应用的测试,有20%左右的企业表示已经使用了虚拟化技术。
通过对硬件/软件接口的虚拟化,应用层业务可以不受下面所支撑硬件的限制,特别重要的是,通过虚拟化技术,硬件资源的更换或者升级对重要业务可以没有任何影响。所以,虚拟化已经成为数据中心最重要的IT实现技术之一。本文重点介绍虚拟化技术的测试与IXIA相应的解决方案。
2 IXIA虚拟化测试方案
2.1 虚拟化技术概述
虚拟的数据中心结构可以有效提高硬件的使用效率、减少IT人员的工作量,还可以降低固定资产投资与运营成本。但是虚拟化的软件同时也会对业务性能造成一定的下降,额外的时延、存储接入访问变慢的问题会影响到用户体验质量。网络服务上虚拟软件层对性能的影响有多大?在客户操作系统和主机之间的延迟增加了多少?多个虚拟机同时运行之间是否对性能有很大的影响?这些都需要通过严格的测试进行验证。IXIA IxVM就是为满足下一代数据中心虚拟化的测试要求而推出的2~7层测试解决方案。
首先要区分3个概念,即多任务、超线程和虚拟技术,这3种技术的工作原理示意参见图1。从图1可以看到,虚拟化技术(Virtualization)和多任务(Multitasking)、超线程技术(HyperThreading)是完全不同的。多任务是指在一个操作系统中多个程序同时并行运行,而在虚拟化技术中,可以拥有多个操作系统同时运行,每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟的CPU或者是虚拟主机上。而超线程只是在SMP系统(Symmetric Multi Processing)中单CPU模拟双CPU来平衡程序运行性能,这两个模拟出来的CPU不能分离,只能协同工作。
图1 多任务、超线程和虚拟化技术原理比较图
IxVM虚拟化测试方案包括5个方面:
●2~3层测试:采用无状态的数据流量测试虚拟交换机VLAN泄露(VLAN Leakage)和QoS等特性。
●4~7层测试:采用应用层有状态的TCP流量验证虚拟网络的性能,采用UDP类型的流媒体数据评估应用层网络的丢包率与故障恢复时间等。
●存储测试:模拟存储设备评估虚拟化系统读/写磁盘速度等性能。
●虚拟化:模拟虚拟机(VM,Virtual Machine)来验证VMotion和其他动态资源对网络性能的影响。
●测试管理:在虚拟化的数据中心架构上管理超过上千个测试引擎。
2.2 IxChariot虚拟化测试方案
由于篇幅的限制,本文主要介绍IxVM IxChariot实现的一些典型测试例,这些测试例可以在传统环境或者虚拟化环境中进行,可以帮助用户快速评估在虚拟化环境下不同供应商硬件和软件的性能优化情况。表1列举了典型的使用IxVM IxChariot进行虚拟环境下业务性能测试的例子。图2是典型的虚拟环境下性能测试的示意图,表1所列举的前5个测试例都可以采用该图的测试环境。
图2 虚拟化环境下性能测试示意图
表1 虚拟化典型性能测试例列表
1)TCP吞吐量测试
最大TCP吞吐量标示了系统或者网络所能够处理或者转发的最大流量,TCP协议被大多数网络服务所采用,操作系统协议栈、设备驱动和硬件通常都会对TCP协议做最好的优化,稳定的TCP协议性能需要高速内存以及网卡与其驱动的紧密集成,在虚拟化环境中,这种紧密集成必须通过虚拟化层才能达到最佳性能。TCP吞吐量测试是其它测试的基础,在该测试项中,测试要求包括:
●两台服务器,每台服务器各自运行一个VM。
●VM网络接口直接桥接到服务器的网卡上。
●IxChariot测试引擎(Performance Endpoint)安装在VM上。
●其它VM不使用或者处于空闲状态以得到一个“基准的”测试结果,在第7个测试例中会专门分析多个VMs的影响。
●同样的硬件和操作系统,首先运行在非虚拟化环境下,比较其与虚拟化环境下的性能差异性。
●对于100Mbit/s~1G接口,采用High_performance_throughput.scr脚本,对于10G接口,采用Ultra_high_performance_throughput.scr脚本。
对于下面其它测试例,具有类似的测试要求与测试步骤,可以联络IXIA工程师获得相应的操作手册。
(2)UDP吞吐量测试
和TCP吞吐量测试类似,UDP吞吐量也能够表示基本的网络性能。但一般情况下,特别是在10G网络中,UDP吞吐量要比TCP吞吐量稍低,这是因为UDP协议栈并没有像TCP协议栈那样得到很好的优化。并且TCP和UDP数据包产生机制也有所不同,应用程序产生UDP数据包是以kB为单位,而网卡转发TCP数据是以MB为单位进行的。该测试项采用udp_throughput.scr的测试脚本。
(3)反应时间测试
反应时间测试,有时也称为“乒乓测试”,其原理是从测试引擎端点一发送100字节到测试引擎端点二,测试端点二会回应100个字节,通过比较两个系统的反应时间,可以计算出由于增加虚拟化层的额外时延,该测试项主要验证虚拟化对运行有数据业务频繁交易网络的影响,测试出两个VM之间的双向时延。
(4)典型企业应用业务性能测试
IxVM IxChariot采用企业应用脚本模拟真实应用流量来测试时延和虚拟化的影响,IxChariot包括了很多企业应用业务脚本,比如SAP,Citrix等。IxProfile独有的流量捕捉功能可以从网络上捕获所需要的流量类型来创建定制的脚步类型。在本测试例中,我们以Citrix为例,采用Citrix_ICA_Terminal_Server_Logon.scr脚本,验证测试引擎一为客户端,测试引擎二为Citrix服务器端时的系统登录时间。
(5)缓存大小对性能指标的影响测试
在测试过程中,不同缓存大小设置对测试结果会有很大的影响,一般情况下,不同应用程序在传送数据时使用的缓存大小是不同的,FTP协议通常使用64kB~1MB的缓存大小发送数据,HTTP协议通常采用20~50kB的缓存进行数据传送,而有些应用,比如Microsoft Exchange业务,仅使用几十到几百字节的缓存进行数据交换。本测试就是验证不同发送缓存大小对TCP吞吐量的影响,采用的IxChariot脚本为Response_time.scr。
在实验中,验证了4个不同的系统,分别调整其发送缓存大小,图3是4个不同被测系统在不同缓存大小情况下、吞吐量以及CPU利用率的测试结果示意,从图中可以看到,设置的缓存越大、吞吐量就越高。
图3 4个被测系统,设置不同缓存大小与吞吐量,CPU利用率的关系示意
上面列举的是一些在虚拟化环境下典型的、基本测试项目,但是虚拟化技术的快速发展,主要系统管理程序提供商也在不断提高与优化网络性能与独有的特性,硬件厂商也在努力对虚拟化的产品进行改进,这就需要考虑在测试时,充分评估特定硬件、系统管理程序以及与其协同工作的应用程序所能够提供的用户体验质量(QoE)。
图4是虚拟化的分层结构示意,VM由CPU资源被分成虚拟网卡和虚拟交换机等多个层次,每层都会有增大时延和减少吞吐量的可能性,通常系统都会对吞吐量指标进行优化以减少系统应用的反应时间。
图4 虚拟化的分层结构示意
(6)不同虚拟网卡设置参数的测试
不同虚拟化平台都会将自定义的设备驱动与网络功能扩展相结合以虚拟化的对网络性能影响最小化,比如VMware有3种不同的虚拟网卡:AMD Lance,Intel e1000和vmxnet。每一种都有自己的优点与缺点,微软Hyper-V用户通过停止客用操作系统的TCP offloading参数可以达到更好的性能。
使用上述测试例中的测试脚本可以准确评估虚拟化服务器上不同虚拟网卡设置对性能的影响。
(7)一个CPU所支持的VMs数量测试
在一些公开测试中,一些厂商表示每个CPU可以支持比其他厂家更多的VMs。验证一个CPU支持2~4个VMs的性能之间的相互影响就显得非常重要,同样可以采用前面测试例中的测试脚本。分别在不同VMs上运行IxChariot测试引擎,以观察在每个CPU运行多个VMs情况的吞吐量、时延等多种性能指标。
(8)一个VM支持多个网卡的测试
许多虚拟化产品允许每个VM使用多个网卡,多个物理网卡可以分配到同一个虚拟化的交换机上,在一个公开的报告中,某厂商表示通过在一个VM上关联多个网卡可以显著提高性能。使用前面提到测试例中的测试脚本,可以快速方便地验证这种实现方案的性能优化与提高程度。
3 结束语
作为下一代数据中心以太网测试技术的领导者与推动者,美国IXIA公司在数据中心以太网和虚拟化测试技术方面一直保持领先地位,作为VMware的测试合作伙伴与测试认证产品,IXIA在2009年4月推出了完整的2~7层虚拟化技术测试解决方案。和数据中心网络方案提供商Emulx公司结成合作伙伴,提供融合网络适配器(Convergence Network Adapter)的测试方法学与相关技术。随着虚拟化技术在国内更为广泛的应用,IXIA公司的数据中心以太网测试技术、虚拟化测试技术必将为提升服务质量、用户体验质量提供更为可靠的保障与服务。