一种磁盘性能的测试方法及测试装置与流程

文档序号:14156974阅读:182来源:国知局

本发明涉及虚拟机技术领域,尤其涉及一种磁盘性能的测试方法及测试装置。



背景技术:

在云计算时代,虚拟化技术越来越受到人们的重视,虚拟机的应用不仅能提高物理资源的利用率,还便于维护和管理。在虚拟机中,磁盘性能的优劣会直接影响用户的体验,因此由多台虚拟机组成的集群在部署完成之后,运维人员往往都需要对每台虚拟机的单个磁盘的性能测试,对每台虚拟机的磁盘的性能进行综合测试,对整个集群中所有虚拟机的磁盘的性能进行综合测试。

相关技术中,当要进行这些测试时,需要运维人员根据不同的待测试对象,即单磁盘、单虚拟机以及集群编写相应的测试脚本,然后在测试待测试对象时依次将所待测试对象对应的测试脚本拷贝到每台虚拟机上,以使得虚拟机根据测试脚本进行测试。

因此,整个测试过程十分繁琐,并且十分耗费人力成本。



技术实现要素:

为了解决上述技术问题,本发明提供一种磁盘性能的测试方法及测试装置,能够极大程度地简化测试过程,节省人力成本。

为了达到本发明目的,本发明提供了一种磁盘性能的测试方法,包括:

主虚拟机根据预先存储的配置信息生成磁盘性能测试脚本;

将生成的磁盘性能测试脚本发送给集群中的所有从虚拟机;

主虚拟机运行生成的磁盘性能测试脚本,并将脚本运行指令发送给所有从虚拟机,以使得每个从虚拟机运行获得的磁盘性能测试脚本。

所述将生成的磁盘性能测试脚本发送给所有从虚拟机,包括:

根据预先存储的虚拟机互联网协议地址确定所有从虚拟机;

根据预先存储的虚拟机根密码登录对应的从虚拟机;

将生成的磁盘性能测试脚本发送至每个从虚拟机的预设目录中。

所述运行生成的磁盘性能测试脚本,并将脚本运行指令发送给所有从虚拟机,以使得每个从虚拟机运行接收到的磁盘性能测试脚本之后,还包括:

向所有从虚拟机发送测试结果获取请求;

接收每个从虚拟机发送的测试结果。

所述配置信息包括预设的时延测试块大小、读测试块大小、写测试块大小、读写测试块大小、读测试块并发数、写测试块并发数、读测试块并发数、读写测试块并发数和测试时间;

所述主虚拟机根据预先存储的配置信息生成磁盘性能测试脚本,包括:

所述主虚拟机根据所述时延测试块大小和所述测试时间生成单磁盘响应时延测试脚本;

根据所述读测试块大小、所述读测试块并发数和所述测试时间生成单磁盘读性能测试脚本、单虚拟机读性能测试脚本以及集群读性能测试脚本;

根据所述写测试块大小、所述写测试块并发数和所述测试时间生成单磁盘写性能测试脚本、单虚拟机写性能测试脚本以及集群写性能测试脚本;

根据所述读写测试块大小、所述读写测试块并发数和所述测试时间生成单磁盘读写性能测试脚本、单虚拟机读写性能测试脚本以及集群读写性能测试脚本。

所述每个从虚拟机发送的测试结果包括单磁盘响应时延测试结果、单磁盘读性能测试结果、从虚拟机的每个磁盘的单虚拟机读性能测试结果、从虚拟机的每个磁盘的集群读性能测试结果、单磁盘写性能测试结果、从虚拟机的每个磁盘的单虚拟机写性能测试结果、从虚拟机的每个磁盘的集群写性能测试结果、单磁盘的读写性能测试结果、从虚拟机的每个磁盘的单虚拟机读写性能测试结果以及从虚拟机的每个磁盘的集群读写性能测试结果;

所述接收每个从虚拟机发送的测试结果之后,还包括:

将获得的同属一个从虚拟机的每个磁盘的单虚拟机读性能测试结果相加,得到所述单虚拟机读性能测试结果;

将获得的同属一个从虚拟机的每个磁盘的单虚拟机写性能测试结果相加,得到所述单虚拟机写性能测试结果;

将获得的同属一个从虚拟机的每个磁盘的单虚拟机读写性能测试结果相加,得到所述单虚拟机读写性能测试结果;

将获得的所有单虚拟机读性能测试结果相加,得到所述集群读性能测试结果;

将获得的所有单虚拟机写性能测试结果相加,得到所述集群写性能测试结果;

将获得的所有单虚拟机读写性能测试结果相加,得到所述集群读写性能测试结果。

本发明实施例还提供的一种磁盘性能的测试方法,包括:

从虚拟机接收主虚拟机发送的磁盘性能测试脚本;

接收所述主虚拟机发送的脚本运行指令;

运行所述磁盘性能测试脚本,并生成测试结果。

所述磁盘性能测试脚本包括单磁盘响应时延测试脚本、单磁盘读性能测试脚本、单虚拟机读性能测试脚本、集群读性能测试脚本、单磁盘写性能测试脚本、单虚拟机写性能测试脚本、集群写性能测试脚本、单磁盘读写性能测试脚本、单虚拟机读写性能测试脚本以及集群读写性能测试脚本;

所述运行磁盘性能测试脚本,并生成测试结果,包括:

运行所述单磁盘响应时延测试脚本,生成单磁盘响应时延测试结果;

运行所述单磁盘读性能测试脚本,生成单磁盘读性能测试结果;

运行所述单虚拟机读性能测试脚本,生成自身的每个磁盘的单虚拟机读性能测试结果;

运行所述集群读性能测试脚本,生成自身的每个磁盘的集群读性能测试结果;

运行所述单磁盘写性能测试脚本,生成单磁盘写性能测试结果;

运行所述单虚拟机写性能测试脚本,生成自身的每个磁盘的单虚拟机的写性能测试结果;

运行所述集群写性能测试脚本,生成自身的每个磁盘的集群写性能测试结果;

运行所述单磁盘读写性能测试脚本,生成单磁盘的读写性能测试结果;

运行所述单虚拟机读写性能测试脚本,生成自身的每个磁盘的单虚拟机读写性能测试结果;

运行所述集群读写性能测试脚本,生成自身的每个磁盘的集群读写性能测试结果。

所述运行磁盘性能测试脚本,并生成测试结果之后,还包括:

接收所述主虚拟机发送的测试结果获取请求;

向所述主虚拟机发送生成的测试结果;其中测试结果包括单磁盘响应时延测试结果、单磁盘读性能测试结果、自身的每个磁盘的集群读性能测试结果、单磁盘写性能测试结果、自身的每个磁盘的单虚拟机的写性能测试结果、自身的每个磁盘的集群写性能测试结果、单磁盘的读写性能测试结果、自身的每个磁盘的单虚拟机读写性能测试结果以及自身的每个磁盘的集群读写性能测试结果。

本发明实施例还提供的一种主虚拟机,包括:

第一处理模块,用于根据预先存储的配置信息生成磁盘性能测试脚本;

第一发送模块,将生成的磁盘性能测试脚本发送给所有从虚拟机;

第二发送模块,用于运行生成的磁盘性能测试脚本,并将脚本运行指令发送给所有从虚拟机,以使得每个从虚拟机运行获得的磁盘性能测试脚本。

本发明实施例还提供的一种从服务器,包括:

第一接收模块,用于从虚拟机接收主虚拟机发送的磁盘性能测试脚本;

第二接收模块,用于接收所述主虚拟机发送的脚本运行指令;

第二处理模块,用于运行所述磁盘性能测试脚本,并生成生成测试结果。

与现有技术相比,本发明至少包括主虚拟机根据预先存储的配置信息生成磁盘性能测试脚本;将生成的磁盘性能测试脚本发送给所有从虚拟机;运行生成的磁盘性能测试脚本,并将脚本运行指令发送给所有从虚拟机,以使得每个从虚拟机运行获得的磁盘性能测试脚本。从本发明提供的技术方案可见,由于主虚拟机根据配置信息生成了磁盘性能测试脚本,并将测试脚本自动发送给从虚拟机,由从虚拟机运行测试脚本,从而避免了因运维人员编写测试脚本,进而拷贝脚本到每台虚拟机上所带来的测试过程繁琐的问题,极大地简化了整个测试过程,节约了人力成本。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为本发明实施例提供的一种磁盘性能的测试方法的流程示意图;

图2为本发明实施例提供的另一种磁盘性能的测试方法的流程示意图;

图3为本发明实施例提供的又一种磁盘性能的测试方法的流程示意图;

图4为本发明实施例提供的一种主虚拟机的结构示意图;

图5为本发明实施例提供的另一种主虚拟机的的结构示意图;

图6为本发明实施例提供的一种从虚拟机的结构示意图;

图7为本发明实施例提供的另一种从虚拟机的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

本发明实施例提供一种磁盘性能的测试方法,如图1所示,该方法包括:

步骤101、主虚拟机根据预先存储的配置信息生成磁盘性能测试脚本。

需要说明的是,所生成的磁盘性能测试脚本的语言可以是linuxshell。

具体的,配置信息包括预设的时延测试块大小、读测试块大小、写测试块大小、读写测试块大小、读测试块并发数、写测试块并发数、读测试块并发数、读写测试块并发数和测试时间。其中,时延测试块大小指的是测试时延时所采用的数据块的大小;读测试块大小指的是测试读数据性能时一次所要求读取数据的数据块大小;写测试块大小指的是测试写数据性能时一次所要求写入数据的数据块大小;读写测试块大小指的是测试边读边写性能时一次所要求读取写入数据的数据库大小,并且,读写测试块大小中还应该包含有读写数据的比例;读测试块并发数指的是测试读数据性能时一次所要求的数据块的个数;写测试块并发数指的是测试写数据性能时一次所要求的数据块的个数;读写测试块并发数指的是测试读写数据性能时一次所要求的数据块的个数,并且,读写测试块并发数中还应该包含读的测试块并发数和写的测试块并发数。

具体的,步骤101可以通过步骤101a~101d实现:

步骤101a、主虚拟机根据时延测试块大小和测试时间生成单磁盘响应时延测试脚本。

步骤101b、根据读测试块大小、读测试块并发数和测试时间生成单磁盘读性能测试脚本、单虚拟机读性能测试脚本以及集群读性能测试脚本。

需要说明的是,单虚拟机读性能测试脚本是测试单个虚拟机读性能的脚本,但由于实际的读操作是在该虚拟机所挂载的磁盘中进行的,因此单虚拟机读性能测试脚本实际是综合测试单个虚拟机所有磁盘读性能的脚本;同样,集群读性能测试脚本是测试集群读性能的脚本,但由于实际的读操作是在该集群中的虚拟机所挂载的磁盘中进行的,因此集群读性能操作脚本实际是综合测试集群中所有虚拟机的磁盘读性能的脚本。

步骤101c、根据写测试块大小、写测试块并发数和测试时间生成单磁盘写性能测试脚本、单虚拟机写性能测试脚本以及集群写性能测试脚本。

需要说明的是,单虚拟机写性能测试脚本是测试单个虚拟机写性能的脚本,但由于实际的写操作是在该虚拟机所挂载的磁盘中进行的,因此单虚拟机写性能测试脚本实际是综合测试单个虚拟机所有磁盘写性能的脚本;同样,集群写性能测试脚本是测试集群写性能的脚本,但由于实际的写操作是在该集群中的虚拟机所挂载的磁盘中进行的,因此集群写性能操作脚本实际是综合测试集群中所有虚拟机的磁盘写性能的脚本。

步骤101d、根据读写测试块大小、读写测试块并发数和测试时间生成单磁盘读写性能测试脚本、单虚拟机读写性能测试脚本以及集群读写性能测试脚本。

需要说明的是,单虚拟机读写性能测试脚本是测试单个虚拟机读写性能的脚本,但由于实际的读写操作是在该虚拟机所挂载的磁盘中进行的,因此单虚拟机读写性能测试脚本实际是综合测试单个虚拟机所有磁盘读写性能的脚本;同样,集群读写性能测试脚本是测试集群读写性能的脚本,但由于实际的读写操作是在该集群中的虚拟机所挂载的磁盘中进行的,因此集群读写性能操作脚本实际是综合测试集群中所有虚拟机的磁盘读写性能的脚本。

具体的,读性能测试还包括顺序读性能测试和随机读性能测试,写性能测试还包括顺序写性能测试和随机写性能测试,因此,配置信息中的读测试块大小具体还可分为顺序读测试块大小和随机读测试块大小,写测试块大小具体还可分为顺序写测试块大小和随机写测试块大小,读测试块并发数包括顺序读测试块大小和随机读测试块大小,写测试块大小包括顺序写测试块大小和随机写测试块大小。相应的,根据预先存储的配置信息所生成的磁盘性能测试脚本包括单磁盘响应时延测试脚本、单磁盘顺序读性能测试脚本、单虚拟机顺序读性能测试脚本以及集群顺序读性能测试脚本、单磁盘随机读性能测试脚本、单虚拟机随机读性能测试脚本以及集群随机读性能测试脚本、单磁盘顺序写性能测试脚本、单虚拟机顺序写性能测试脚本以及集群顺序写性能测试脚本、单磁盘随机写性能测试脚本、单虚拟机随机写性能测试脚本以及集群随机写性能测试脚本、单磁盘读写性能测试脚本、单虚拟机读写性能测试脚本以及集群读写性能测试脚本。

具体来说,同步骤101a生成单磁盘响应时延测试脚本,根据顺序读测试块大小、顺序读测试块并发数和测试时间生成单磁盘顺序读性能测试脚本、单虚拟机顺序读性能测试脚本以及集群顺序读性能测试脚本;根据随机读测试块大小、随机读测试块并发数和测试时间生成单磁盘随机读性能测试脚本、单虚拟机随机读性能测试脚本以及集群随机读性能测试脚本;根据顺序写测试块大小、顺序写测试块并发数和测试时间生成单磁盘顺序写性能测试脚本、单虚拟机顺序写性能测试脚本以及集群顺序写性能测试脚本;根据随机写测试块大小、随机写测试块并发数和测试时间生成单磁盘随机写性能测试脚本、单虚拟机随机写性能测试脚本以及集群随机写性能测试脚本;同步骤101d生成单磁盘读写性能测试脚本、单虚拟机读写性能测试脚本以及集群读写性能测试脚本。

步骤102、将生成的磁盘性能测试脚本发送给集群中的所有从虚拟机。

需要说明的是,主虚拟机和一些从虚拟机组成集群,其中,主虚拟机可能是和某些从虚拟机同在一台物理服务器上,也可能是单独存在于一台物理服务器上,本发明对此不作限定。

具体的,可以是每生成一个测试脚本就向集群中的所有从虚拟机发送一个测试脚本,也可以是所有测试脚本生成完成后向集群中所有从虚拟机发送所有测试脚本,本发明对此不作限制。

步骤103、运行生成的磁盘性能测试脚本,并将脚本运行指令发送给所有从虚拟机,以使得每个从虚拟机运行获得的磁盘性能测试脚本。

具体的,主虚拟机可以是生成一个磁盘性能测试脚本,向集群中的所有从虚拟机发送,然后运行生成的这个磁盘性能测试脚本,并同时将脚本运行指令发送给所有从虚拟机,以使得每个从虚拟机运行主虚拟机生成的磁盘性能测试脚本;接着再生成下一个磁盘性能测试脚本,向集群中的所有从虚拟机发送,然后运行生成的这个磁盘性能测试脚本,并同时将脚本运行指令发送给所有从虚拟机,以使得每个从虚拟机运行主虚拟机生成的磁盘性能测试脚本,直到主虚拟机生成完所有的磁盘性能测试脚本。也可以是,主虚拟机生成完所有的磁盘性能测试脚本,向集群中的所有从虚拟机发送生成的所有磁盘性能测试脚本,然后运行生成的磁盘性能测试脚本中的一个,并同时将该脚本的脚本运行指令发送给所有从虚拟机,以使得每个从虚拟机运行与主虚拟机正在运行的相同的磁盘性能测试脚本;接着再运行生成的磁盘性能测试脚本中的下一个,并同时将该脚本的脚本运行指令发送给所有从虚拟机,以使得每个从虚拟机运行与主虚拟机正在运行的相同的磁盘性能测试脚本,直到所有所生成的磁盘性能测试脚本执行完。

本发明实施例所提供的磁盘性能的测试方法,主虚拟机根据预先存储的配置信息生成磁盘性能测试脚本;将生成的磁盘性能测试脚本发送给所有从虚拟机;运行生成的磁盘性能测试脚本,并将脚本运行指令发送给所有从虚拟机,以使得每个从虚拟机运行获得的磁盘性能测试脚本。从本发明提供的技术方案可见,由于主虚拟机根据配置信息生成了磁盘性能测试脚本,并将测试脚本自动发送给从虚拟机,由从虚拟机运行测试脚本,从而避免了因运维人员编写测试脚本,进而拷贝脚本到每台虚拟机上所带来的测试过程繁琐的问题,极大地简化了整个测试过程,节约了人力成本。

本发明实施例提供另一种磁盘性能的测试方法,如图2所示,该方法包括:

步骤201、从虚拟机接收主虚拟机发送的磁盘性能测试脚本。

步骤202、接收主虚拟机发送的脚本运行指令。

步骤203、运行磁盘性能测试脚本,并生成测试结果。

具体的,磁盘性能测试脚本包括单磁盘响应时延测试脚本、单磁盘读性能测试脚本、单虚拟机读性能测试脚本、集群读性能测试脚本、单磁盘写性能测试脚本、单虚拟机写性能测试脚本、集群写性能测试脚本、单磁盘读写性能测试脚本、单虚拟机读写性能测试脚本以及集群读写性能测试脚本。

具体的,步骤203可以通过步骤203a~203j实现:

步骤203a、运行单磁盘响应时延测试脚本,生成单磁盘响应时延测试结果。

具体的,从虚拟机挂接的磁盘数量可能是一个也可能是多个,本发明对此不做限制,当从虚拟机挂接的磁盘数量是多个时,由于所挂接的磁盘的性能在时延表现上大致相同,因此从虚拟机可以只对其中一个磁盘根据单磁盘响应时延测试脚本进行测试,具体测试时,从虚拟机根据单磁盘响应时延测试脚本从一个磁盘中读取一个时延测试块大小的数据,得到所读取数据的时间就是最终的单磁盘响应时延测试结果。

步骤203b、运行单磁盘读性能测试脚本,生成单磁盘读性能测试结果。

具体的,从虚拟机在运行单磁盘读性能测试脚本时,会分别在自身的每个磁盘中读取一个读测试块大小的数据,以生成单磁盘读性能测试结果。

步骤203c、运行单虚拟机读性能测试脚本,生成自身的每个磁盘的单虚拟机读性能测试结果。

具体的,从虚拟机在运行单虚拟机读性能测试脚本时,会在自身的一个或多个磁盘中同时读取数据块个数与读测试块并发数相等的数据块,且每个数据块中的数据量与数据读测试块大小相等的数据,以生成自身的每个磁盘的单虚拟机读性能测试结果。

步骤203d、运行集群读性能测试脚本,生成自身的每个磁盘的集群读性能测试结果。

具体的,从虚拟机在运行集群读性能测试脚本是集群中的所有从虚拟机一同在自身虚拟机中一个或多个磁盘中同时读取数据块个数与读测试块并发数相等的数据块,且每个数据块中的数据量与数据读测试块大小相等的数据,以生成自身的每个磁盘的集群读性能测试结果。

步骤203e、运行单磁盘写性能测试脚本,生成单磁盘写性能测试结果。

具体的,从虚拟机在运行单磁盘读性能测试脚本时,会分别在该自身的每个磁盘中写入一个读测试块大小的数据,以生成单磁盘写性能测试结果。

步骤203f、运行单虚拟机写性能测试脚本,生成自身的每个磁盘的单虚拟机的写性能测试结果。

具体的,从虚拟机在运行单虚拟机读性能测试脚本时,会在自身的一个或多个磁盘中同时写入数据块个数与读测试块并发数相等的数据块,且每个数据块中的数据量与数据读测试块大小相等的数据,以生成自身的每个磁盘的单虚拟机写性能测试结果。

步骤203g、运行集群写性能测试脚本,生成自身的每个磁盘的集群写性能测试结果。

具体的,从虚拟机在运行集群读性能测试脚本是集群中的所有从虚拟机一同在自身虚拟机中一个或多个磁盘中同时写入数据块个数与读测试块并发数相等的数据块,且每个数据块中的数据量与数据读测试块大小相等的数据,以生成自身的每个磁盘的集群写性能测试结果。

步骤203h、运行单磁盘读写性能测试脚本,生成单磁盘的读写性能测试结果。

具体的,从虚拟机在运行单磁盘读性能测试脚本时,会分别在自身的每个磁盘中读取写入一个读测试块大小的数据,以生成单磁盘读写性能测试结果。

步骤203i、运行单虚拟机读写性能测试脚本,生成自身的每个磁盘的单虚拟机读写性能测试结果。

具体的,从虚拟机在运行单虚拟机读性能测试脚本时,会在自身中一个或多个磁盘中同时读取写入数据块个数与读测试块并发数相等的数据块,且每个数据块中的数据量与数据读测试块大小相等的数据,以生成自身的每个磁盘的单虚拟机读写性能测试结果。

步骤203j、运行集群读写性能测试脚本,生成自身的每个磁盘的集群读写性能测试结果。

具体的,从虚拟机在运行集群读性能测试脚本是集群中的所有从虚拟机一同在自身虚拟机中一个或多个磁盘中同时读取写入数据块个数与读测试块并发数相等的数据块,且每个数据块中的数据量与数据读测试块大小相等的数据,以生成自身的每个磁盘的集群读写性能测试结果。

需要说明的是,单磁盘读性能测试结果、从虚拟机的每个磁盘的单虚拟机读性能测试结果、从虚拟机的每个磁盘的集群读性能测试结果都可以以每秒进行读操作的最大次数和带宽表示,单磁盘写性能测试结果从虚拟机的每个磁盘的单虚拟机写性能测试结果、从虚拟机的每个磁盘的集群写性能测试结果都可以以每秒进行写操作的最大次数和带宽表示,单磁盘读写性能测试结果从虚拟机的每个磁盘的单虚拟机读写性能测试结果、从虚拟机的每个磁盘的集群读写性能测试结果都可以以每秒进行读写操作的最大次数(input/outputoperationspersecond,iops)和带宽表示,其中带宽都可以以mb/s表示。

本发明实施例所提供的磁盘性能的测试方法,从虚拟机接收主虚拟机发送的磁盘性能测试脚本;接收主虚拟机发送的脚本运行指令;运行磁盘性能测试脚本,并生成测试结果。从本发明提供的技术方案可见,由于从虚拟机接收主虚拟机自动发送的磁盘性能测试脚本,并运行所接收到的磁盘性能测试脚本以生成测试结果,从而避免了因运维人员编写测试脚本,进而拷贝脚本到每台虚拟机上所带来的测试过程繁琐的问题,极大地简化了整个测试过程,节约了人力成本。

本发明实施例提供又一种磁盘性能的测试方法,如图3所示,该方法包括:

步骤301、主虚拟机根据预先存储的配置信息生成磁盘性能测试脚本。

步骤302、主虚拟机根据预先存储的虚拟机互联网协议地址确定所有从虚拟机。

步骤303、主虚拟机根据预先存储的虚拟机根密码登录对应的从虚拟机。

步骤304、主虚拟机将生成的磁盘性能测试脚本发送至每个从虚拟机的预设目录中。

步骤305、从虚拟机接收主虚拟机发送的磁盘性能测试脚本。

步骤306、主虚拟机运行生成的磁盘性能测试脚本,并将脚本运行指令发送给所有从虚拟机。

步骤307、从虚拟机接收主虚拟机发送的脚本运行指令。

步骤308、从虚拟机运行磁盘性能测试脚本,并生成测试结果。

步骤309、主虚拟机向所有从虚拟机发送测试结果获取请求。

步骤310、从虚拟机接收主虚拟机发送的测试结果获取请求。

步骤311、从虚拟机向主虚拟机发送生成的测试结果。

其中,测试结果包括单磁盘响应时延测试结果、单磁盘读性能测试结果、自身的每个磁盘的集群读性能测试结果、单磁盘写性能测试结果、自身的每个磁盘的单虚拟机的写性能测试结果、自身的每个磁盘的集群写性能测试结果、单磁盘的读写性能测试结果、自身的每个磁盘的单虚拟机读写性能测试结果以及自身的每个磁盘的集群读写性能测试结果。

步骤312、主虚拟机接收每个从虚拟机发送的测试结果。

其中,每个从虚拟机发送的测试结果包括单磁盘响应时延测试结果、单磁盘读性能测试结果、自身的每个磁盘的集群读性能测试结果、单磁盘写性能测试结果、自身的每个磁盘的单虚拟机的写性能测试结果、自身的每个磁盘的集群写性能测试结果、单磁盘的读写性能测试结果、自身的每个磁盘的单虚拟机读写性能测试结果以及自身的每个磁盘的集群读写性能测试结果。

步骤313、主虚拟机根据获得的测试结果得到单虚拟机读性能测试结果、集群读性能测试结果、单虚拟机的写性能测试结果、集群写性能测试结果、单虚拟机读写性能测试结果以及集群读写性能测试结果。

需要说明的是,由于单磁盘响应时延测试结果、单磁盘读性能测试结果、单磁盘写性能测试结果、单磁盘的读写性能测试结果不需要处理,因此这些结果可以作为最终结果呈现,而由于从虚拟机的每个磁盘的单虚拟机读性能测试结果、从虚拟机的每个磁盘的集群读性能测试结果、从虚拟机的每个磁盘的单虚拟机写性能测试结果、从虚拟机的每个磁盘的集群写性能测试结果、从虚拟机的每个磁盘的单虚拟机读写性能测试结果以及从虚拟机的每个磁盘的集群读写性能测试结果都是针对磁盘的,所以要得到针对虚拟机或集群的性能测试结果要经过处理。

具体的,步骤313可以通过步骤313a~313f实现:

步骤313a、将获得的同属一个从虚拟机的每个磁盘的单虚拟机读性能测试结果相加,得到单虚拟机读性能测试结果。

具体的,假设集群中虚拟机的数量为n个,那么所得到的单虚拟机读性能结果也有n个(n-1个从虚拟机的单虚拟机读性能结果和1个主虚拟机的单虚拟机读性能结果),第1个单虚拟机读性能结果通过将第1个单虚拟机的每个磁盘的单虚拟机读性能测试结果相加得到,第2个单虚拟机读性能结果通过将第2个单虚拟机的每个磁盘的单虚拟机读性能测试结果相加得到…第n个单虚拟机读性能结果通过将第n个单虚拟机的每个磁盘的单虚拟机读性能测试结果相加得到。

步骤313b、将获得的同属一个从虚拟机的每个磁盘的单虚拟机写性能测试结果相加,得到单虚拟机写性能测试结果。

具体的,仍然假设集群中虚拟机的数量为n个,那么所得到的单虚拟机写性能结果也有n个(n-1个从虚拟机的单虚拟机写性能结果和1个主虚拟机的单虚拟机写性能结果),第1个单虚拟机写性能结果通过将第1个单虚拟机的每个磁盘的单虚拟机写性能测试结果相加得到,第2个单虚拟机写性能结果通过将第2个单虚拟机的每个磁盘的单虚拟机写性能测试结果相加得到…第n个单虚拟机写性能结果通过将第n个单虚拟机的每个磁盘的单虚拟机写性能测试结果相加得到。

步骤313c、将获得的同属一个从虚拟机的每个磁盘的单虚拟机读写性能测试结果相加,得到单虚拟机读写性能测试结果。

具体的,仍然假设集群中虚拟机的数量为n个,那么所得到的单虚拟机读写性能结果也有n个(n-1个从虚拟机的单虚拟机读写性能结果和1个主虚拟机的单虚拟机读写性能结果),第1个单虚拟机读写性能结果通过将第1个单虚拟机的每个磁盘的单虚拟机读写性能测试结果相加得到,第2个单虚拟机读写性能结果通过将第2个单虚拟机的每个磁盘的单虚拟机读写性能测试结果相加得到…第n个单虚拟机读写性能结果通过将第n个单虚拟机的每个磁盘的单虚拟机读写性能测试结果相加得到。

步骤313d、将获得的所有单虚拟机读性能测试结果相加,得到集群读性能测试结果。

具体的,假设有n个单虚拟机读性能结果(n-1个从虚拟机的单虚拟机读性能结果和1个主虚拟机的单虚拟机读性能结果),将这n个结果相加就得到集群读性能测试结果。

步骤313e、将获得的所有单虚拟机写性能测试结果相加,得到集群写性能测试结果。

具体的,假设有n个单虚拟机写性能结果(n-1个从虚拟机的单虚拟机写性能结果和1个主虚拟机的单虚拟机写性能结果),将这n个结果相加就得到集群写性能测试结果。

步骤313f、将获得的所有单虚拟机读写性能测试结果相加,得到集群读写性能测试结果。

具体的,仍然假设有n个单虚拟机读写性能结果(n-1个从虚拟机的单虚拟机读写性能结果和1个主虚拟机的单虚拟机读写性能结果),将这n个结果相加就得到集群读写性能测试结果。

本发明实施例所提供的磁盘性能的测试方法,主虚拟机根据预先存储的配置信息生成磁盘性能测试脚本;将生成的磁盘性能测试脚本发送给所有从虚拟机;运行生成的磁盘性能测试脚本,并将脚本运行指令发送给所有从虚拟机,以使得每个从虚拟机运行获得的磁盘性能测试脚本。从本发明提供的技术方案可见,由于主虚拟机根据配置信息生成了磁盘性能测试脚本,并将测试脚本自动发送给从虚拟机,由从虚拟机运行测试脚本以生成测试结果,从而避免了因运维人员编写测试脚本,进而拷贝脚本到每台虚拟机上所带来的测试过程繁琐的问题,极大地简化了整个测试过程,节约了人力成本。

本发明实施例还提供一种磁盘性能的测试方法,该方法以脚本的形式表现,测试脚本中包含如下配置文件:

1、parameter.cfg:各待测虚拟机ip、每个虚拟机的数据盘符、主机root密码。

2、config_pretest.cfg/config_delay.cfg/config_volume.cfg/config_node.cfg/

cfg/config_system.cfg:

pretest文件是先将待测试磁盘写满数据,保证后续测试读性能时,不会读取空数据,影响测试结果。其他文件分别是测试单盘时延的文件、测试单磁性能的文件、测试单虚拟机性能的文件已经测试集群性能的文件。

cfg文件内参数包括:

test_mode:测试模式,包括顺序读、顺序写、随机读、随机写、混合读写等。

test_bs(k):块大小,测试随机读写性能时块大小设置为8或者4,测试顺序读写时块大小设置为512或者1024。

test_times:测试执行时间,单位为秒,一般默认为300s。

test_iodepths:队列深度,也是测试块的并发数,测试类型为delay时队列深度全部设置为1;其他类型,随机读写时队列深度默认为128,顺序读写时队列深度默认为32。

自动化测试流程步骤如下:

1、按各参数值,生成fio测试脚本并输出到临时文件中。

2、通过spawnscp命令将脚本等内容传至其他待测虚拟机的tmp目录下。

3、通过spawnssh命令在各个虚拟机上执行测试脚本。

4、按照test_mode测试模式循环执行脚本,每次执行间隔5秒左右。

5、按照测试类型循环支持脚本,输出卷、节点、系统等的测试结果。

6、执行完成之后将每个虚拟机的结果通过spawnscp命令统一拷贝至主虚拟机预先建立的vm$i目录下,并对结果统一汇总。

本发明实施例还提供一种计算机可读存储介质,存储有计算机可执行指令,计算机可执行指令用于执行上述任一项磁盘性能的测试方法。

本发明实施例还提供一种主虚拟机,如图4所示,该主虚拟机4包括:

第一处理模块41,用于根据预先存储的配置信息生成磁盘性能测试脚本。

第一发送模块42,用于将生成的磁盘性能测试脚本发送给所有从虚拟机。

第二发送模块43,用于运行生成的磁盘性能测试脚本,并将脚本运行指令发送给所有从虚拟机,以使得每个从虚拟机运行获得的磁盘性能测试脚本。

进一步,第一发送模块42具体用于:

根据预先存储的虚拟机互联网协议地址确定所有从虚拟机。

根据预先存储的虚拟机根密码登录对应的从虚拟机。

将生成的磁盘性能测试脚本发送至每个从虚拟机的预设目录中。

进一步,在图4对应的实施例的基础上,本发明实施例提供另一种主虚拟机,如图5所示,该主虚拟机4还包括:

第三发送模块44,用于向所有从虚拟机发送测试结果获取请求。

第三接收模块45,用于接收每个从虚拟机发送的测试结果

配置信息包括预设的时延测试块大小、读测试块大小、写测试块大小、读写测试块大小、读测试块并发数、写测试块并发数、读测试块并发数、读写测试块并发数和测试时间,第一处理模块41,具体用于:

根据时延测试块大小和测试时间生成单磁盘响应时延测试脚本。

根据读测试块大小、读测试块并发数和测试时间生成单磁盘读性能测试脚本、单虚拟机读性能测试脚本以及集群读性能测试脚本。

根据写测试块大小、写测试块并发数和测试时间生成单磁盘写性能测试脚本、单虚拟机写性能测试脚本以及集群写性能测试脚本。

根据读写测试块大小、读写测试块并发数和测试时间生成单磁盘读写性能测试脚本、单虚拟机读写性能测试脚本以及集群读写性能测试脚本。

每个从虚拟机发送的测试结果包括单磁盘响应时延测试结果、单磁盘读性能测试结果、从虚拟机的每个磁盘的单虚拟机读性能测试结果、从虚拟机的每个磁盘的集群读性能测试结果、单磁盘写性能测试结果、从虚拟机的每个磁盘的单虚拟机写性能测试结果、从虚拟机的每个磁盘的集群写性能测试结果、单磁盘的读写性能测试结果、从虚拟机的每个磁盘的单虚拟机读写性能测试结果以及从虚拟机的每个磁盘的集群读写性能测试结果。该主虚拟机4还包括:

第三处理模块46,用于:

将获得的同属一个从虚拟机的每个磁盘的单虚拟机读性能测试结果相加,得到单虚拟机读性能测试结果。

将获得的同属一个从虚拟机的每个磁盘的单虚拟机写性能测试结果相加,得到单虚拟机写性能测试结果。

将获得的同属一个从虚拟机的每个磁盘的单虚拟机读写性能测试结果相加,得到单虚拟机读写性能测试结果。

将获得的所有单虚拟机读性能测试结果相加,得到集群读性能测试结果。

将获得的所有单虚拟机写性能测试结果相加,得到集群写性能测试结果。

将获得的所有单虚拟机读写性能测试结果相加,得到集群读写性能测试结果。

本发明实施例所提供的主虚拟机,根据预先存储的配置信息生成磁盘性能测试脚本;将生成的磁盘性能测试脚本发送给所有从虚拟机;运行生成的磁盘性能测试脚本,并将脚本运行指令发送给所有从虚拟机,以使得每个从虚拟机运行获得的磁盘性能测试脚本。从本发明提供的技术方案可见,由于主虚拟机根据配置信息生成了磁盘性能测试脚本,并将测试脚本自动发送给从虚拟机,由从虚拟机运行测试脚本,从而避免了因运维人员编写测试脚本,进而拷贝脚本到每台虚拟机上所带来的测试过程繁琐的问题,极大地简化了整个测试过程,节约了人力成本。

在实际应用中,第一处理模块41、第一发送模块42、第二发送模块43、第三发送模块44、第三接收模块45、第三处理模块46均可由位于主虚拟机的中央处理器(centralprocessingunit,cpu)、微处理器(microprocessorunit,mpu)、数字信号处理器(digitalsignalprocessor,dsp)或现场可编程门阵列(fieldprogrammablegatearray,fpga)等实现。

本发明实施例还提供一种从虚拟机,如图6所示,该从虚拟机5包括:

第一接收模块51,用于从虚拟机接收主虚拟机发送的磁盘性能测试脚本。

第二接收模块52,用于接收主虚拟机发送的脚本运行指令。

第二处理模块53,用于运行磁盘性能测试脚本,并生成生成测试结果。

进一步,磁盘性能测试脚本包括单磁盘响应时延测试脚本、单磁盘读性能测试脚本、单虚拟机读性能测试脚本、集群读性能测试脚本、单磁盘写性能测试脚本、单虚拟机写性能测试脚本、集群写性能测试脚本、单磁盘读写性能测试脚本、单虚拟机读写性能测试脚本以及集群读写性能测试脚本。第二处理模块53具体用于:

运行单磁盘响应时延测试脚本,生成单磁盘响应时延测试结果。

运行单磁盘读性能测试脚本,生成单磁盘读性能测试结果。

运行单虚拟机读性能测试脚本,生成自身的每个磁盘的单虚拟机读性能测试结果。

运行集群读性能测试脚本,生成自身的每个磁盘的集群读性能测试结果。

运行单磁盘写性能测试脚本,生成单磁盘写性能测试结果。

运行单虚拟机写性能测试脚本,生成自身的每个磁盘的单虚拟机的写性能测试结果。

运行集群写性能测试脚本,生成自身的每个磁盘的集群写性能测试结果。

运行单磁盘读写性能测试脚本,生成单磁盘的读写性能测试结果。

运行单虚拟机读写性能测试脚本,生成自身的每个磁盘的单虚拟机读写性能测试结果。

运行集群读写性能测试脚本,生成自身的每个磁盘的集群读写性能测试结果。

进一步,在图6对应的实施例的基础上,本发明实施例提供另一种从虚拟机,如图7所示,该从服务器5包括:

第四接收模块54,用于接收主虚拟机发送的测试结果获取请求。

第四发送模块55,用于向主虚拟机发送生成的测试结果;其中测试结果包括单磁盘响应时延测试结果、单磁盘读性能测试结果、自身的每个磁盘的集群读性能测试结果、单磁盘写性能测试结果、自身的每个磁盘的单虚拟机的写性能测试结果、自身的每个磁盘的集群写性能测试结果、单磁盘的读写性能测试结果、自身的每个磁盘的单虚拟机读写性能测试结果以及自身的每个磁盘的集群读写性能测试结果。

本发明实施例所提供的从虚拟机,接收主虚拟机发送的磁盘性能测试脚本;接收主虚拟机发送的脚本运行指令;运行磁盘性能测试脚本,并生成测试结果。从本发明提供的技术方案可见,由于从虚拟机接收主虚拟机自动发送的磁盘性能测试脚本,并运行所接收到的磁盘性能测试脚本以生成测试结果,从而避免了因运维人员编写测试脚本,进而拷贝脚本到每台虚拟机上所带来的测试过程繁琐的问题,极大地简化了整个测试过程,节约了人力成本。

在实际应用中,第一接收模块51、第二接收模块52、第二处理模块53、第四接收模块54、第四发送模块55均可由位于从虚拟机的cpu、mpu、dsp或fpga等实现。

本发明实施例还提供一种用于测试磁盘性能的装置,包括第一存储器和第一处理器,其中,第一存储器中存储有以下可被第一处理器执行的指令:

根据预先存储的配置信息生成磁盘性能测试脚本。

将生成的磁盘性能测试脚本发送给集群中的所有从虚拟机。

运行生成的磁盘性能测试脚本,并将脚本运行指令发送给所有从虚拟机,以使得每个从虚拟机运行获得的磁盘性能测试脚本。

进一步,第一存储器中具体还存储有以下可被第一处理器执行的指令:

根据预先存储的虚拟机互联网协议地址确定所有从虚拟机。

根据预先存储的虚拟机根密码登录对应的从虚拟机。

将生成的磁盘性能测试脚本发送至每个从虚拟机的预设目录中。

进一步,第一存储器中还存储有以下可被第一处理器执行的指令:

向所有从虚拟机发送测试结果获取请求。

接收每个从虚拟机发送的测试结果。

进一步,配置信息包括预设的时延测试块大小、读测试块大小、写测试块大小、读写测试块大小、读测试块并发数、写测试块并发数、读测试块并发数、读写测试块并发数和测试时间,第一存储器中具体存储有以下可被第一处理器执行的指令:

根据时延测试块大小和测试时间生成单磁盘响应时延测试脚本。

根据读测试块大小、读测试块并发数和测试时间生成单磁盘读性能测试脚本、单虚拟机读性能测试脚本以及集群读性能测试脚本。

根据写测试块大小、写测试块并发数和测试时间生成单磁盘写性能测试脚本、单虚拟机写性能测试脚本以及集群写性能测试脚本。

根据读写测试块大小、读写测试块并发数和测试时间生成单磁盘读写性能测试脚本、单虚拟机读写性能测试脚本以及集群读写性能测试脚本。

进一步,每个从虚拟机发送的测试结果包括单磁盘响应时延测试结果、单磁盘读性能测试结果、从虚拟机的每个磁盘的单虚拟机读性能测试结果、从虚拟机的每个磁盘的集群读性能测试结果、单磁盘写性能测试结果、从虚拟机的每个磁盘的单虚拟机写性能测试结果、从虚拟机的每个磁盘的集群写性能测试结果、单磁盘的读写性能测试结果、从虚拟机的每个磁盘的单虚拟机读写性能测试结果以及从虚拟机的每个磁盘的集群读写性能测试结果。第一存储器中还存储有以下可被第一处理器执行的指令:

将获得的同属一个从虚拟机的每个磁盘的单虚拟机读性能测试结果相加,得到单虚拟机读性能测试结果。

将获得的同属一个从虚拟机的每个磁盘的单虚拟机写性能测试结果相加,得到单虚拟机写性能测试结果。

将获得的同属一个从虚拟机的每个磁盘的单虚拟机读写性能测试结果相加,得到单虚拟机读写性能测试结果。

将获得的所有单虚拟机读性能测试结果相加,得到集群读性能测试结果。

将获得的所有单虚拟机写性能测试结果相加,得到集群写性能测试结果。

将获得的所有单虚拟机读写性能测试结果相加,得到集群读写性能测试结果。

本发明实施例还提供另一种用于测试磁盘性能的装置,包括第二存储器和第二处理器,其中,第二存储器中存储有以下可被第二处理器执行的指令:

接收主虚拟机发送的磁盘性能测试脚本。

接收主虚拟机发送的脚本运行指令。

运行磁盘性能测试脚本,并生成测试结果。

进一步,磁盘性能测试脚本包括单磁盘响应时延测试脚本、单磁盘读性能测试脚本、单虚拟机读性能测试脚本、集群读性能测试脚本、单磁盘写性能测试脚本、单虚拟机写性能测试脚本、集群写性能测试脚本、单磁盘读写性能测试脚本、单虚拟机读写性能测试脚本以及集群读写性能测试脚本,第二存储器中具体存储有以下可被第二处理器执行的指令:

运行单磁盘响应时延测试脚本,生成单磁盘响应时延测试结果。

运行单磁盘读性能测试脚本,生成单磁盘读性能测试结果。

运行单虚拟机读性能测试脚本,生成自身的每个磁盘的单虚拟机读性能测试结果。

运行集群读性能测试脚本,生成自身的每个磁盘的集群读性能测试结果。

运行单磁盘写性能测试脚本,生成单磁盘写性能测试结果。

运行单虚拟机写性能测试脚本,生成自身的每个磁盘的单虚拟机的写性能测试结果。

运行集群写性能测试脚本,生成自身的每个磁盘的集群写性能测试结果。

运行单磁盘读写性能测试脚本,生成单磁盘的读写性能测试结果。

运行单虚拟机读写性能测试脚本,生成自身的每个磁盘的单虚拟机读写性能测试结果。

运行集群读写性能测试脚本,生成自身的每个磁盘的集群读写性能测试结果。

进一步,第二存储器中还存储有以下可被第二处理器执行的指令:

接收主虚拟机发送的测试结果获取请求。

向主虚拟机发送生成的测试结果;其中测试结果包括单磁盘响应时延测试结果、单磁盘读性能测试结果、自身的每个磁盘的集群读性能测试结果、单磁盘写性能测试结果、自身的每个磁盘的单虚拟机的写性能测试结果、自身的每个磁盘的集群写性能测试结果、单磁盘的读写性能测试结果、自身的每个磁盘的单虚拟机读写性能测试结果以及自身的每个磁盘的集群读写性能测试结果。

虽然本发明所揭露的实施方式如上,但的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

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