总第9期
2017年5月刊
Test Theory    测论
Test Theory    测论
虚拟化平台测试方法探讨
文/王琦
分享

目前云计算局点增加迅速、大量大规模云计算平台需要部署,使得虚拟化平台的主要功能是否满足应用系统的要求,虚拟化平台的性能指标是否符合客户要求,服务器虚拟化后是否增强了可靠性与安全性等成为了云运维人员急需了解的问题。本文将以新华三CAS虚拟化管理平台为例对云运维中常用的虚拟化主要功能以及性能的测试方法进行介绍和分析。

1、虚拟化平台功能测试

H3C CAS虚拟化管理为客户提供了一个集计算、网络、存储管理资源管理、虚拟机资源管理与性能监控管理、虚拟化安全管理的高可用的全融合虚拟化平台。我们选出几项客户最关心的功能进行介绍和分析,这些功能直接关系到客户的数据安全和业务运行的稳定性,在部署实际业务前,根据本文所述的测试要点可以有针对性的对虚拟化平台的主要功能进行验证。

虚拟机资源在线调整

在线调整虚拟机资源,需要重点测试在虚拟机业务运行状态下,为虚拟机热添加CPU、内存、磁盘或网卡时业务是否产生中断,热添加后资源能否正常生效。实际用户应用中,还涉及大内存的一次性添加,大容量磁盘的添加,以及多次热添加等情况,所以,测试中上述操作都需要重点考虑。

虚拟机在线迁移

虚拟机迁移有两种应用模式:一种是集群内主机上的虚拟机运行时动态迁移,另一种是集群内或集群间的虚拟机在运行或关闭时手工迁移,管理员手工对虚拟机的运行载体(包括计算资源和存储资源)进行变更,以达到系统运行最优化的目的,这也是日常运维中比较常用的管理动作。

对在线迁移功能进行测试时首先需要关注虚拟机在集群内与集群间的在线迁移、虚拟机镜像文件的存储迁移、同时迁移虚拟机和存储文件以及虚拟机批量迁移等基本功能,测试过程中需要持续观察虚拟机内部的业务运行是否正常。其次,对于快速部署或快速克隆的虚拟机会生成三级镜像文件,对有三级镜像文件的虚拟机要进行重点测试,尤其是迁移存储后,虚拟机的三级镜像文件会分布在不同的存储上,需要关注虚拟机存储文件的链接关系是否正常生效,测试时需要通过后台命令查看虚拟机镜像文件的链接关系,同时也需要通过界面对虚拟机进行启动、暂停、关闭等生命周期操作进行验证。虚拟机迁移功能还涉及多项组合功能测试,比如上文提到的虚拟机资源热添加后进行迁移,带快照虚拟机的迁移,带块存储设备虚拟机的迁移以及HA、DRS的动态迁移功能等等,都需要考虑组合场景并进行相应的测试设计。

虚拟机备份

全量备份、增量备份和差异备份是数据备份领域中常用的三种备份方法,保证虚拟机数据的安全性也是用户的基本需求之一。在实际应用中,用户的备份场景也是多种多样,所以除基本备份功能测试外,在测试中需要考虑的组合测试点很多,比如多级镜像文件的备份、镜像文件在不同存储位置下的备份、不同存储格式(raw/qcow2)的虚拟机备份、本地存储和远端存储的交叉备份、多磁盘或大容量磁盘的备份以及不同虚拟机还原场景等等,还需要考虑备份过程中出现主机状态异常、网络状态异常等异常测试。

三种备份方式的内部工作流程都不尽相同,我们需要先对备份的内部工作流程了解透彻,再进行相应的测试设计。比如全量备份过程中,需要对磁盘创建内部快照,再将快照转换为一个镜像文件,这个镜像文件也可以选择为压缩,以便节省目的存储位置的空间要求,最后,将虚拟机镜像文件、虚拟机配置文件、MD5文件等全部通过网络拷贝到目的备份存储目录中。所以,我们需要考虑与快照的组合测试,考虑多磁盘的备份测试,所需的临时空间大小,也需要关注每一步执行的时间,是否能够对备份时间和流程进行优化。

高可靠性(HA)

H3C CAS云计算管理平台集群HA机制定时对集群内的主机和虚拟机状态进行监测,当服务器发生故障的时候,受影响的虚拟机将自动迁移到集群中其它主机上并自动重启,从而将停机时间和业务中断降低到最低。H3C CAS云计算管理平台提供多种高可靠性(HA)方案,如集群HA、操作系统HA和应用HA等,下面我们对物理主机故障和虚拟机故障的测试方法进行介绍:

物理主机故障

物理主机故障是较常见的故障场景之一,在测试中,要构造多种主机故障场景,如主机短时间断电再上电,长时间断电再上电,断电后不再恢复模拟硬件永久故障,主机硬件故障导致主机异常状态,通过控制台reset主机等,也需要制造多台主机同时故障、集群全部主机故障后再恢复能否恢复正常等场景进行测试。测试中要结合CVM双机热备、共享存储同时进行测试,观察物理主机故障恢复后,主机节点及其下的虚拟机能否正常被HA集群所管理,集群HA消息同步是否正常,主备CVM有异常时进行物理主机故障测试,恢复后主备CVM数据库是否保持同步。对于故障的主机要触发相应的告警信息通知。

虚拟机故障

虚拟机故障分为虚拟机状态异常导致的故障和操作系统故障两种故障状态。第一种虚拟机异常状态,测试中可以通过后台 Kill虚拟机进程的方式构造异常状态,观察HA是否能够正常重启虚拟机,同时需要结合使用不同存储方式的虚拟机进行测试。第二种操作系统故障,对于Windows操作系统,可以通过NotMyFalut工具制造操作系统蓝屏的方式制作故障,Linux操作系统可以使用相应的Panic工具模拟操作系统Panic,对于每种故障策略要分别验证,也需要考虑不同存储方式的虚拟机以及各种操作系统的兼容性。

2、虚拟化平台性能测试

虚拟化平台性能测试范围比较广泛,我们需要选取不同的测试工具,有一些衡量虚拟化系统单方面性能的基准测试工具,也有诸如SPECVirt这种测量端到端所有系统组件的性能,包括硬件,虚拟化平台,虚拟客户机操作系统和应用软件的。本文对日常测试中常用的CPU、内存、磁盘IO和网络测试工具进行介绍。

CPU与内存性能测试

CPU的性能直接决定了系统的计算能力,在虚拟化平台中,我们通常选择对客户机中的CPU性能进行测试。测试CPU性能重点关注CPU整形和浮点数的运算速度和效率、进程创建性能以及内存访问的性能数据,常用的CPU性能测试工具如Windows操作系统下的PassMark Performance Test、GeekBench以及Linux操作系统下的phoronix-test、UnixBench等。

与CPU性能一样,内存性能同样也是衡量虚拟化平台的性能的重要指标之一。测试内存性能也有多种工具,如phoronix-test、Stream、SiSoftware Sandra等,每种测试工具的关注点不尽相同,我们测试时需要关注两个内存的重要指标:内存带宽(bandwidth)和访问延迟(Latency)。

H3C CAS虚拟化平台为方便用户对虚拟机CPU和内存性能进行调优,提供了多种CPU工作模式,比如直通模式能带来更优的性能,兼容模式提供更好的主机兼容性 ,也可以设置绑定物理CPU或NUMA绑定功能,提高内存访问性能,同时也支持配置CPU和内存的预留、限制等功能,测试中需要对每一种优化进行数据对比。

磁盘IO性能测试

测试磁盘IO性能需要分别测试小字节(如512B、4K)、大字节(如1M、2M)以及顺序读写、随机读写、混合读写等各种情况,也需要在虚拟化平台调整不同的磁盘缓存方式和磁盘格式进行测试。测试工具有很多,简单的如linux使用DD命令直接读写磁盘测试,专用测试工具如IOmeter、Fio、IOzone等,可选择配置参数较多。

需要注意的是,当我们说文件(或者磁盘)IO性能的时候通常指的是应用程序(例如FIO)进行文件读写操作时所看到的IO性能。这个性能通常是与系统相关的,包括了多级缓存(磁盘自身的缓存机制、操作系统的缓存机制)的影响,而不仅仅是磁盘本身。利用FIO进行文件IO性能测试时,测试结果与主机的CPU线程数、内存大小、测试数据块的大小、测试文件的大小都有很大的关系。

网络性能测试

网络带宽测试工具通常选用iperf或者netperf工具。以iperf为例,测试方法是在一台虚拟机上运行iperf服务端,另外一台虚拟机上运行iperf客户端,分别测试虚拟机在同一台主机和虚拟机在不同主机两种情况下的网络带宽。

测试完成后,在客户端会显示两台虚拟机之间的网络带宽。Iperf工具默认使用TCP连接,如果测试UDP转发,可以通过配置相关参数进行调节,同时转发字节大小也可以做相应的调节。如果有条件,也可以选用Spirent公司的STC-V测试工具,这款工具是TestCenter的虚拟化版本,可配置参数和显示信息都较为丰富。

结束语

虚拟化平台作为云计算的底层基础架构,直接承载了用户的重要业务运行,保证虚拟化平台稳定、可靠、安全运行始终是测试工作的首要任务,把用户放在第一位,想用户之所想,解用户之所困,让我们的虚拟化平台变的越来越稳定,越来越好用!

分享到
关闭