一种虚拟化平台稳定性测试方法与流程

文档序号:17441801发布日期:2019-04-17 04:51阅读:356来源:国知局
一种虚拟化平台稳定性测试方法与流程

本发明涉及的是计算机网络技术领域,具体涉及一种虚拟化平台稳定性测试方法。



背景技术:

随着虚拟化技术的发展,虚拟化在互联网市场中占据越来越重要的地位,特别是近年来虚拟化平台在企业中被普遍使用并且推广,不仅现在发展迅速,在未来的发展和使用也是具有巨大的潜力。随着云被各行各业广泛的应用,虚拟化平台的稳定性也显得越来越重要。许多公司逐渐将关键业务和数据部署到虚拟化平台上。

虚拟化平台给用户提供的最直接的产品就是虚拟服务器,即虚拟机。虚拟化平台资源和业务管理以及虚拟机系统的稳定运行至关重要的,如果在稳定性方面不能够保证业务运行的需要,再高的性能也是无用的。稳定性测试对保证产品质量不可或缺。当前一些虚拟化平台,要么缺少稳定性测试,有这样一些案例平台部署一段时间后出现服务器宕机、虚拟机系统崩溃等稳定性问题,要么是稳定性测试覆盖不够,或者受测试工具和方法的局限,无法全面评估系统的稳定性。这是现有技术所存在的不足之处。



技术实现要素:

本发明的目的就是针对现有技术所存在的不足,而提供一种虚拟化平台稳定性测试方法,该方法在通过给系统加载一定的业务压力的情况下,让接口测试和虚拟机内部加压等业务持续运行一段时间,测试系统在这种条件下是否能够稳定运行,并且测试一旦执行,自动跳过失败业务,保证测试不中断。更加接近用户的真实负载,保障产品质量。

本方案是通过如下技术措施来实现的:一种虚拟化平台稳定性测试方法,包括如下步骤:1)制定稳定性测试项目和虚拟化系统健康检查指标;2)从测试环境中获取主机配置、数量以及存储容量;3)制作加压虚拟机模板;

4)启动稳定性测试;5)进行系统检查,每日检查项目包括管理节点、计算节点运行情况、故障告警信息、资源消耗情况以及虚拟机运行情况;6)稳定性测试结束,通过步骤五获得的运行性能指标、业务失败率指标,完成虚拟化平台的稳定性评估。可见本方法统一管理测试项目,测试时长、测试次数、并发数,根据具体业务灵活设置。

所述的测试项目包括加压虚拟机、虚拟机生命周期、虚拟磁盘生命周期;所述的检查指标包括虚拟化平台管理层检测和虚拟资源层检测,其中虚拟化平台管理层检测包括管理节点检测、业务失败率、数据库检测、资源检测,虚拟资源层检测包括计算节点检测、虚拟机检测。加压虚拟机即背景加压虚拟机,是在虚拟机的cpu、内存、io、网卡进行加压,设定压力60%。每个虚拟机的规格4c8g,每个主机上加压虚拟机数量:(主机内存总量*80%)/8g;虚拟机生命周期包括创建虚拟机、删除虚拟机、创建快照、快照恢复虚拟机、周期定时备份、迁移虚拟机、虚拟机启动、关闭电源;虚拟磁盘生命周期包括创建虚拟磁盘、挂载虚拟磁盘、卸载虚拟磁盘、复制虚拟磁盘、删除虚拟磁盘。虚拟化系统的稳定性测试主要分为管理层和虚拟资源层的稳定性测试。管理层负责虚拟机调度、监控告警和资源管理工作,管理、调度下层的虚拟资源并为上层的应用提供支持。通过调研,选取用户最常用的操作,主要包括虚拟机生命周期管理和虚拟磁盘生命周期管理测试,考量虚拟化平台业务处理能力以及管理层本身的健壮性。虚拟资源层重点关注一定负载下虚拟机系统是否能够稳定运行。虚拟机规格和负载的设定,也是调研客户业务系统情况,参考设定。常用规格4c8g,cpu和内存负载设定为60%,略高于客户通常的压力。通常部署虚拟机时,一般主机上资源预留至少20%,因此每个主机上虚拟机数量的设定为:(主机内存总量*80%)/8g。

管理节点检测包括i1查看系统是否发生过重启、i2查看关键进程是否发生过重启、i3关键进程有无内存泄漏、i4磁盘空间日志增长情况,判断日志空间配置和日志转储是否合理、i5管理节点io是否正常;业务失败率通过数据库中的任务表,查看每日新增业务失败情况;数据库检测包括a查看数据脏数据,b检查数据库有无膨胀现象,c查看数据库状态是否正常,d是否可以一直提供服务,e查看每日数据库连接数占用趋势,是否持续上扬、存在用光可能,f查看数据库日志,从中获取error信息,g数据库备份是否正常;资源检测用于对资源进行一致性检查,从数据库获取的数据和从计算节点获取的数据进行比较;计算节点检测包括:查看系统是否发生过重启,查看关键进程是否发生过重启,关键进程有无内存泄漏,磁盘空间日志增长情况,判断日志空间配置和日志转储是否合理,计算节点io是否正常,计算节点有无不受管控的虚拟机;虚拟机检测包括虚拟机有无内存泄漏,有无蓝屏、反复重启现象,虚拟机的ip有无丢失,虚拟机网络是否可以正常通信。稳定性测试一旦执行,每日的系统健康检查至关重要。从管理节点、计算节点以及虚拟机三个方面进行系统的全面检查。

步骤2)利用collect.sh脚本,获取所有主机的配置信息,包括cpu、内存、hostid;获取主机所连接的存储容量,计算每个主机需要创建的虚拟机数量、环境中主机总数保存到指定的文本中。

步骤3)中,在虚拟化平台中创建虚拟机,把stress、fio工具安装包上传到虚拟机中,根据步骤1)中要求的压力模型,设置压力参数。stress工具用来给虚拟机cpu和内存加压,fio用来给虚拟机磁盘加压,把加压脚本放到虚拟机中指定路径,并设置开机自启动,导出虚拟机模板到测试机共享目录中。

步骤4)通过soapui工具,建立一个稳定性测试project,在工具中编写groovy脚本,调用collect.sh脚本,获取相关参数,写入到project全局参数中,调用虚拟化平台提供的导入模板restapi接口,导入步骤3)种的虚拟机模板到虚拟化系统中,在project中建立名称为prepare的测试套,创建背景加压虚拟机,并启动虚拟机加压。按照指定数量创建完虚拟化后,该测试套自动停止。

建立业务测试套,包括虚拟机生命周期管理和虚拟磁盘生命周期管理,通过调用虚拟化平台提供的api接口向平台发起业务请求,在测试套中,针对每一个操作,建立一个testcase,通过teststep添加任何需要的测试步骤,形成一个循环,测试时,失败业务自动跳过,不影响后续业务的执行。

步骤5)通过shell脚本,调用sar命令自动从环境中获取管理节点、计算节点资源使用情况(cpu、内存、网络带宽、磁盘io等),通过linux命令df–sh、lastreboot等命令查看主机磁盘空间使用率、系统和关键进程是否重启。

由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。

附图说明

图1为本发明具体实施方式的结构示意图。

具体实施方式

为能清楚说明本方案的技术特点,下面通过一个具体实施方式,并结合其附图,对本方案进行阐述。

通过附图可以看出,本方案的虚拟化平台稳定性测试方法,包括如下步骤:

s1制定稳定性测试项目和虚拟化系统健康检查指标;通过给系统加载一定的业务压力(例如资源在50%~60%的使用率,更倾向于趋近真实的平均负载)的情况下,让接口测试和虚拟机内部加压(存储、网络、计算)等业务持续运行一段时间(如7×24),测试系统在这种条件下是否能够稳定运行。

其中,所述的测试项目包括加压虚拟机、虚拟机生命周期、虚拟磁盘生命周期;所述的检查指标包括虚拟化平台管理层检测和虚拟资源层检测,其中虚拟化平台管理层检测包括管理节点检测、业务失败率、数据库检测、资源检测,虚拟资源层检测包括计算节点检测、虚拟机检测。

加压虚拟机是在虚拟机的cpu、内存、io、网卡进行加压,设定压力60%。每个虚拟机的规格4c8g,每个主机上加压虚拟机数量:(主机内存总量*80%)/8g;虚拟机生命周期包括创建虚拟机、删除虚拟机、创建快照、快照恢复虚拟机、周期定时备份、迁移虚拟机、虚拟机启动、关闭电源;虚拟磁盘生命周期包括创建虚拟磁盘、挂载虚拟磁盘、卸载虚拟磁盘、复制虚拟磁盘、删除虚拟磁盘;管理节点检测包括i1查看系统是否发生过重启、i2查看关键进程是否发生过重启、i3关键进程有无内存泄漏、i4磁盘空间日志增长情况,判断日志空间配置和日志转储是否合理、i5管理节点io是否正常;业务失败率通过数据库中的任务表,查看每日新增业务失败情况;数据库检测包括a查看数据脏数据,b检查数据库有无膨胀现象,c查看数据库状态是否正常,d是否可以一直提供服务,e查看每日数据库连接数占用趋势,是否持续上扬、存在用光可能,f查看数据库日志,从中获取error信息,g数据库备份是否正常;资源检测用于对资源进行一致性检查,从数据库获取的数据和从计算节点获取的数据进行比较。

计算节点检测包括:查看系统是否发生过重启,查看关键进程是否发生过重启,关键进程有无内存泄漏,磁盘空间日志增长情况,判断日志空间配置和日志转储是否合理,计算节点io是否正常,计算节点有无不受管控的虚拟机;虚拟机检测包括虚拟机有无内存泄漏,有无蓝屏、反复重启现象,虚拟机的ip有无丢失,虚拟机网络是否可以正常通信。

s2从测试环境中获取主机配置、数量以及存储容量;利用collect.sh脚本,获取所有主机的配置信息,包括cpu、内存、hostid;获取主机所连接的存储容量,计算每个主机需要创建的虚拟机数量、环境中主机总数保存到指定的文本中。

s3制作加压虚拟机模板;在虚拟化平台中创建虚拟机,把stress、fio工具安装包上传到虚拟机中,根据步骤1)中要求的压力模型,设置压力参数。stress工具用来给虚拟机cpu和内存加压,fio用来给虚拟机磁盘加压,把加压脚本放到虚拟机中指定路径,并设置开机自启动,导出虚拟机模板到测试机共享目录中。

s4启动稳定性测试;通过soapui工具,建立一个稳定性测试project。在工具中编写groovy脚本,调用步骤二中的collect.sh脚本,获取相关参数,写入到project全局参数中。调用虚拟化平台提供的导入模板restapi接口,导入步骤三种的虚拟机模板到虚拟化系统中。

准备工作就绪后,在project中建立名称为prepare的测试套,创建背景加压虚拟机,并启动虚拟机加压。按照指定数量创建完虚拟化后,该测试套自动停止。

建立业务测试套,包括虚拟机生命周期管理和虚拟磁盘生命周期管理,通过调用虚拟化平台提供的api接口向平台发起业务请求。在测试套中,针对每一个操作,建立一个testcase,通过teststep添加任何需要的测试步骤,形成一个循环。以虚拟机创建为例,一个testcase包括:获取token和创建虚拟机需要的参数、传递给properties、执行创建虚拟机、获取任务id、查询任务状态、进行断言、删除虚拟机。可以并发发起多个线程同时循环执行,自行设置执行时间和时间间隔以及并发量,完全自动化自行,无需人工干预。连跑多个业务,仅需添加多个不同测试套,一旦测试运行起来,失败业务自动跳过,不影响后续业务的执行。

s5进行系统检查,每日检查项目包括管理节点、计算节点运行情况、故障告警信息、资源消耗情况以及虚拟机运行情况;设置定时任务,每日通过shell脚本,调用sar命令自动从环境中获取管理节点、计算节点资源使用情况(cpu、内存、网络带宽、磁盘io等)。通过linux命令df–sh、lastreboot等命令查看主机磁盘空间使用率、系统和关键进程是否重启。自动连接数据库并从数据库获取失败的业务项目以及失败错误提示信息以及严重告警信息,把每日系统检查的结果下载到本地。

s6稳定性测试结束,通过步骤五获得的运行性能指标、业务失败率指标,完成虚拟化平台的稳定性评估。

本发明并不仅限于上述具体实施方式,本领域普通技术人员在本发明的实质范围内做出的变化、改型、添加或替换,也应属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1