CN114780207A - 固态硬盘的多虚拟机负载的自动化测试方法、装置、系统 - Google Patents

固态硬盘的多虚拟机负载的自动化测试方法、装置、系统 Download PDF

Info

Publication number
CN114780207A
CN114780207A CN202210468944.6A CN202210468944A CN114780207A CN 114780207 A CN114780207 A CN 114780207A CN 202210468944 A CN202210468944 A CN 202210468944A CN 114780207 A CN114780207 A CN 114780207A
Authority
CN
China
Prior art keywords
virtual
test
virtual machine
solid state
testing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210468944.6A
Other languages
English (en)
Inventor
宿燕鸣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202210468944.6A priority Critical patent/CN114780207A/zh
Publication of CN114780207A publication Critical patent/CN114780207A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及虚拟机负载测试技术领域,具体提供一种固态硬盘的多虚拟机负载的自动化测试方法、装置、系统,所述方法包括如下步骤:虚拟机创建后,自动检测在线的虚拟机的数量自适应的创建NVMe固态硬盘的命名空间;其中包括命名空间的数量和大小值;根据创建的命名空间的大小值创建虚拟的PCIe设备,并给虚拟的PCIe设备最大化的分配队列中断资源;虚拟的PCIe设备创建完成后,自动映射到虚拟机;检测在虚拟机端发现虚拟的PCIe设备后开始上传测试程序,并启动测试。测试完成后,将虚拟状态还原同时下载测试记录并生成测试分析。通过为虚拟机自动配置程序,自动测试、上传测试日志,极大的节省了测试人力、提升了测试效率。

Description

固态硬盘的多虚拟机负载的自动化测试方法、装置、系统
技术领域
本发明涉及虚拟机负载测试技术领域,具体涉及一种固态硬盘的多虚拟机负载的自动化测试方法、装置、系统。
背景技术
SR-IOV是一种硬件I/O虚拟化技术标准。作为一种硬件I/O虚拟化解决方案,SR-IOV定义了I/O设备是原生可共享的,一个SR-IOV设备可以创建出多个VF虚拟设备,把这些虚拟设备分配给不同的虚拟机,就实现了物理硬件的共享。NVMe SSD与SR-IOV的结合可以在多个虚拟机情况下进行物理资源共享,充分发挥SSD的高性能,尤其是在虚拟化和云计算场景下借助SR-IOV的虚拟化技术可以减少客户所需PCIe设备数量,同时使用NVMe SSD所实现的多命名空间管理,不同namespace分配给不同的虚拟主机达到数据IO的相互隔离和QoS的性能保障。
通常在研发阶段需要对建立虚拟机后映射虚拟硬盘进行程序测试,一般同时搭建多台虚拟机进行测试,为虚拟机分配虚拟的PCIe设备,当前一般在宿主机上通过KVM搭建虚拟机,搭建完成后,在宿主机上创建多namespace,并且创建虚拟PCIe设备,给PCIe设备分配队列和中断资源,然后登陆虚拟机进行相关的测试。整个测试过程在宿主机与每个虚拟机之间来回切换。在宿主机硬件条件具备的情况下,可以搭建几十台甚至上百台的虚拟机,在如此多的虚拟机上,如果通过界面的形式,在宿主机与每个虚拟机之间逐个来回切换。非常浪费时间。当虚拟机发生改变或者测试程序发生改变的情况下,NVMe盘需要重新创建namespace,需要重新分配虚拟设备,重新登陆虚拟机,修改并运行测试程序。整个测试的准备阶段变得非常繁琐。另外,给虚拟的PCIe分配的队列和中断资源不能自适应的达到最优的配置,浪费了资源。
发明内容
当虚拟机发生改变或者测试程序发生改变的情况下,NVMe盘需要重新创建namespace,需要重新分配虚拟设备,重新登陆虚拟机,修改并运行测试程序。整个测试的准备阶段变得非常繁琐。另外,给虚拟的PCIe分配的队列和中断资源不能自适应的达到最优的配置,浪费了资源的问题,本发明提供一种固态硬盘的多虚拟机负载的自动化测试方法、装置、系统。
本发明的技术方案是:
第一方面,本发明技术方案提供一种固态硬盘的多虚拟机负载的自动化测试方法,包括如下步骤:
虚拟机创建后,自动检测在线的虚拟机的数量自适应的创建NVMe固态硬盘的命名空间;其中包括命名空间的数量和大小值;
根据创建的命名空间的大小值创建虚拟的PCIe设备,并给虚拟的PCIe设备最大化的分配队列中断资源;
虚拟的PCIe设备创建完成后,自动映射到虚拟机;
检测在虚拟机端发现虚拟的PCIe设备后开始上传测试程序,并启动测试。
通过为虚拟机自动配置程序,自动测试,极大的节省了测试人力、提升了测试效率。
进一步的,检测在虚拟机端发现虚拟的PCIe设备后开始上传测试程序,并启动测试的步骤之后还包括:
测试完成后,将虚拟状态还原同时下载测试记录并生成测试分析。
为每个虚拟机启动自动检测以及自动测试、自动上传测试记录,节省测试时间。
进一步的,虚拟机创建后,自动检测在线的虚拟机的数量自适应的创建NVMe固态硬盘的命名空间的步骤包括:
虚拟机创建后,通过KVM指令检测在线的虚拟机,并记录所有虚拟机的信息到虚拟机测试状态表;
根据虚拟机测试状态表获取在线虚拟机的数量和名称;
根据在线虚拟机的数量创建最优的NVMe固态硬盘命名空间的个数和大小。
自动检测在线虚拟机的数量,根据在线虚拟机的数量,充分分配盘的容量。
进一步的,根据创建的命名空间的大小值创建虚拟的PCIe设备,并给虚拟的PCIe设备最大化的分配队列中断资源的步骤包括:
根据命名空间的大小值,创建虚拟的PCIe设备;
获取NVMe SSD支持的最大队列和中断资源的数量,分配给每个虚拟的PCIe设备;其中分配采用平均分配或定制分配,为虚拟的PCIe设备指定队列和中断资源的具体数量。
可以自适应的创建最大的命名空间的容量,为虚拟PCIe设备分配最多的队列和中断资源;也可以采用定制的模式,定制命名空间的容量和分配的资源。保证效率的同时,覆盖了不同的测试场景。
进一步的,虚拟的PCIe设备创建完成后,自动映射到虚拟机的步骤包括:
虚拟的PCIe设备创建完成后,把虚拟的PCIe设备,分配给每个虚拟机;
根据虚拟机的名称,获取每个名称的虚拟机的mac地址列表,将mac地址列表转为ip地址列表。
虚拟机建立后,自动发现程序将通过KVM指令检测到在线的虚拟机,并记录所有虚拟机的相关信息如IP和MAC地址到虚拟机测试状态表。
进一步的,检测在虚拟机端发现虚拟的PCIe设备后开始上传测试程序,并启动测试的步骤包括:
获取到虚拟机的ip地址列表后,登陆虚拟机,检测虚拟的PCIe设备是否在虚拟机上被发现,若发现,将测试程序导入到虚拟机;
启动测试并将正在进行测试的虚拟机在虚拟机测试状态表里置为“正在测试”。
将周期性检测是否有新的虚拟机被建立,如果有新的虚拟机将更新虚拟机测试状态表,并将状态设置为“未开始”。
进一步的,将测试程序导入到虚拟机的步骤包括:
将测试程序导入到虚拟机,同时将已上传测试程序的虚拟机在虚拟机状态表里置为“已导入测试程序”。
进一步的,测试完成后,将虚拟状态还原同时下载测试记录并生成测试分析的步骤包括:
测试完成后,上传测试日志,更新虚拟机测试状态表为“测试完毕”;
取消虚拟机的映射,恢复虚拟机的初始状态;
导出对应时间节点对应虚拟机的测试结果。使测试结果一目了然。
第二方面,本发明技术方案提供一种固态硬盘的多虚拟机负载的自动化测试装置,包括检测创建模块、配置模块、分配模块和检测启动模块;
检测创建模块,用于虚拟机创建后,自动检测在线的虚拟机的数量自适应的创建NVMe固态硬盘的命名空间;其中包括命名空间的数量和大小值;
配置模块,应用根据创建的命名空间的大小值创建虚拟的PCIe设备,并给虚拟的PCIe设备最大化的分配队列中断资源;
分配模块,应用虚拟的PCIe设备创建完成后,自动映射到虚拟机;
检测启动模块,用于检测在虚拟机端发现虚拟的PCIe设备后开始上传测试程序,并启动测试。
进一步的,该装置还包括测试后置模块,用于测试完成后,将虚拟状态还原同时下载测试记录并生成测试分析。
为每个虚拟机启动自动检测以及自动测试、自动上传测试记录,节省测试时间。
进一步的,检测创建模块包括检测记录单元、获取单元、资源创建单元;
检测记录单元,用于虚拟机创建后,通过KVM指令检测在线的虚拟机,并记录所有虚拟机的信息到虚拟机测试状态表;
获取单元,用于根据虚拟机测试状态表获取在线虚拟机的数量和名称;
资源创建单元,用于根据在线虚拟机的数量创建最优的NVMe固态硬盘命名空间的个数和大小。
自动检测在线虚拟机的数量,根据在线虚拟机的数量,充分分配盘的容量。
进一步的,配置模块包括虚拟设备创建单元、资源配置单元;
虚拟设备创建单元,用于根据命名空间的大小值,创建虚拟的PCIe设备;
资源配置单元,用于获取NVMe SSD支持的最大队列和中断资源的数量,分配给每个虚拟的PCIe设备;其中分配采用平均分配或定制分配,为虚拟的PCIe设备指定队列和中断资源的具体数量。
可以自适应的创建最大的命名空间的容量,为虚拟PCIe设备分配最多的队列和中断资源;也可以采用定制的模式,定制命名空间的容量和分配的资源。保证效率的同时,覆盖了不同的测试场景。
进一步的,分配模块包括分配单元和列表生成单元;
分配单元,用于虚拟的PCIe设备创建完成后,把虚拟的PCIe设备,分配给每个虚拟机;
列表生成单元,用于根据虚拟机的名称,获取每个名称的虚拟机的mac地址列表,将mac地址列表转为ip地址列表。
虚拟机建立后,自动发现程序将通过KVM指令检测到在线的虚拟机,并记录所有虚拟机的相关信息如IP和MAC地址到虚拟机测试状态表。
进一步的,检测启动模块包括检测导入单元、启动测试单元和虚拟机测试状态表设置单元;
检测导入单元,用于获取到虚拟机的ip地址列表后,登陆虚拟机,检测虚拟的PCIe设备是否在虚拟机上被发现,若发现,将测试程序导入到虚拟机;
启动测试单元,用于启动进行虚拟机测试;
虚拟机测试状态表设置单元,用于将正在进行测试的虚拟机在虚拟机测试状态表里置为“正在测试”;还用于检测导入单元将测试程序导入到虚拟机的同时将已上传测试程序的虚拟机在虚拟机状态表里置为“已导入测试程序”
检测导入单元将周期性检测是否有新的虚拟机被建立,如果有新的虚拟机将更新虚拟机测试状态表,并将状态设置为“未开始”。
进一步的,测试后置模块包括测试日志上传单元、状态复原单元、测试结果导出单元;
测试日志上传单元,用于测试完成后,上传测试日志,同时虚拟机测试状态表设置单元更新虚拟机测试状态表为“测试完毕”;
状态复原单元,用于取消虚拟机的映射,恢复虚拟机的初始状态;
测试结果导出单元,用于导出对应时间节点对应虚拟机的测试结果。使测试结果一目了然。
第三方面,本发明还提供一种固态硬盘的多虚拟机负载的自动化测试系统,包括宿主机,宿主机上设有测试装置;在宿主机上创建完成虚拟机后,启动测试装置进行虚拟机测试;所述的测试装置为第二方面所述的固态硬盘的多虚拟机负载的自动化测试装置;
虚拟机测试完毕后,测试装置将取消虚拟机的映射,恢复虚拟机的初始状态。
从以上技术方案可以看出,本发明具有以下优点:自适应的分配资源,确保了稀缺测试资源的充分利用,比如根据在线虚拟机数量、充分分配盘的容量、虚拟PCIe设备,并为设备分配最大的队列和中断的资源等;也可以采用定制的模式,定制化的创建namespace的容量、定制化的为虚拟PCIe设备分配资源个数,满足了不同的测试场景的测试需求,提升了测试覆盖度;该装置通过为虚拟机自动配置程序,自动测试、上传测试日志,极大的节省了测试人力、提升了测试效率。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明一个实施例的装置的示意性框图。
具体实施方式
通常在研发阶段需要对建立虚拟机后映射虚拟硬盘进行程序测试,一般同时搭建多台虚拟机进行测试,为虚拟机分配虚拟的PCIe设备,当前一般在宿主机上通过KVM搭建虚拟机,搭建完成后,在宿主机上创建多namespace,并且创建虚拟PCIe设备,给PCIe设备分配队列和中断资源,然后登陆虚拟机进行相关的测试。整个测试过程在宿主机与每个虚拟机之间来回切换。在宿主机硬件条件具备的情况下,可以搭建几十台甚至上百台的虚拟机,在如此多的虚拟机上,如果通过界面的形式,在宿主机与每个虚拟机之间逐个来回切换。非常浪费时间。当虚拟机发生改变或者测试程序发生改变的情况下,NVMe盘需要重新创建namespace,需要重新分配虚拟设备,重新登陆虚拟机,修改并运行测试程序。整个测试的准备阶段变得非常繁琐。另外,给虚拟的PCIe分配的队列和中断资源不能自适应的达到最优的配置,浪费了资源。为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
如图1所示,本发明实施例提供一种固态硬盘的多虚拟机负载的自动化测试方法,包括如下步骤:
步骤1:虚拟机创建后,自动检测在线的虚拟机的数量自适应的创建NVMe固态硬盘的命名空间;其中包括命名空间的数量和大小值;
步骤2:根据创建的命名空间的大小值创建虚拟的PCIe设备,并给虚拟的PCIe设备最大化的分配队列中断资源;
步骤3:虚拟的PCIe设备创建完成后,自动映射到虚拟机;
这个过程实际上就是将创建的虚拟的PCIe设备分配到每个虚拟机;
步骤4:检测在虚拟机端发现虚拟的PCIe设备后开始上传测试程序,并启动测试。
自动检测在线虚拟机的数量自适应的创建NVMe SSD盘的namespace,创建虚拟的PCIe设备,并给虚拟PCIe设备最大化的分配队列中断资源;虚拟的PCIe设备创建完成后,自动映射到虚拟机,启动适时检测机制,待虚拟PCIe设备在虚拟机端发现后,宿主机开始上传测试程序,并启动测试。通过为虚拟机自动配置程序,自动测试,极大的节省了测试人力、提升了测试效率。
在有些实施例中,所述的方法还包括:
步骤5:测试完成后,将虚拟状态还原同时下载测试记录并生成测试分析。
为每个虚拟机启动自动检测以及自动测试、自动上传测试记录,节省测试时间。以性能测试为例,通过对测试日志的分析,识别出关键的参数,比如带宽、iops、时延等,测试结果一目了然。
在有些实施例中,步骤1中,虚拟机创建后,自动检测在线的虚拟机的数量自适应的创建NVMe固态硬盘的命名空间的步骤包括:
步骤11:虚拟机创建后,通过KVM指令检测在线的虚拟机,并记录所有虚拟机的信息到虚拟机测试状态表;
步骤12:根据虚拟机测试状态表获取在线虚拟机的数量和名称;
步骤13:根据在线虚拟机的数量创建最优的NVMe固态硬盘命名空间namespace的个数和大小。namespace的个数可以跟num的值形成对应关系。比如,1个虚拟机对应1个namespace的情况下,盘的容量为7.68T,平均分配给每个虚拟PCIe设备的容量是153G;也可以采用定制的模式,定制namespace的容量大小。
自动检测在线虚拟机的数量,根据在线虚拟机的数量,充分分配盘的容量。
在有些实施例中,步骤2中,根据创建的命名空间的大小值创建虚拟的PCIe设备,并给虚拟的PCIe设备最大化的分配队列中断资源的步骤包括:
步骤21:根据命名空间的大小值,创建虚拟的PCIe设备;
步骤22:获取NVMe SSD支持的最大队列和中断资源的数量,分配给每个虚拟的PCIe设备;其中分配采用平均分配或定制分配,为虚拟的PCIe设备指定队列和中断资源的具体数量。
可以自适应的创建最大的命名空间的容量,为虚拟PCIe设备分配最多的队列和中断资源;也可以采用定制的模式,定制命名空间的容量和分配的资源。保证效率的同时,覆盖了不同的测试场景。
在有些实施例中,步骤3中,虚拟的PCIe设备创建完成后,自动映射到虚拟机的步骤包括:
步骤31:虚拟的PCIe设备创建完成后,把虚拟的PCIe设备,分配给每个虚拟机;
步骤32:根据虚拟机的名称,获取每个名称的虚拟机的mac地址列表,将mac地址列表转为ip地址列表。
虚拟机建立后,自动发现程序将通过KVM指令检测到在线的虚拟机,并记录所有虚拟机的相关信息如IP和MAC地址到虚拟机测试状态表。
在有些实施例中,步骤4中,检测在虚拟机端发现虚拟的PCIe设备后开始上传测试程序,并启动测试的步骤包括:
步骤41:获取到虚拟机的ip地址列表后,登陆虚拟机,检测虚拟的PCIe设备是否在虚拟机上被发现,若发现,将测试程序导入到虚拟机;
步骤42:启动测试并将正在进行测试的虚拟机在虚拟机测试状态表里置为“正在测试”。
将周期性检测是否有新的虚拟机被建立,如果有新的虚拟机将更新虚拟机测试状态表,并将状态设置为“未开始”。
需要说明的是,将测试程序导入到虚拟机的步骤包括:
将测试程序导入到虚拟机,同时将已上传测试程序的虚拟机在虚拟机状态表里置为“已导入测试程序”。
在有些实施例中,步骤5中,测试完成后,将虚拟状态还原同时下载测试记录并生成测试分析的步骤包括:
步骤51:测试完成后,上传测试日志,更新虚拟机测试状态表为“测试完毕”;
步骤52:取消虚拟机的映射,恢复虚拟机的初始状态;
步骤53:导出对应时间节点对应虚拟机的测试结果。使测试结果一目了然。
自动检测在线虚拟机的数量,根据在线虚拟机的数量,充分分配盘的容量,可以自适应的创建最大的namespace容量,为虚拟PCIe设备分配最多的队列和中断资源;也可以采用定制的模式,定制namespace的容量和分配的资源。保证效率的同时,覆盖了不同的测试场景。为每个虚拟机启动后台机制,机制中包含了自动检测以及自动测试、自动上传测试记录等。
如图2所示,本发明实施例提供一种固态硬盘的多虚拟机负载的自动化测试装置,包括检测创建模块、配置模块、分配模块和检测启动模块;
检测创建模块,用于虚拟机创建后,自动检测在线的虚拟机的数量自适应的创建NVMe固态硬盘的命名空间;其中包括命名空间的数量和大小值;
配置模块,应用根据创建的命名空间的大小值创建虚拟的PCIe设备,并给虚拟的PCIe设备最大化的分配队列中断资源;
分配模块,应用虚拟的PCIe设备创建完成后,自动映射到虚拟机;
检测启动模块,用于检测在虚拟机端发现虚拟的PCIe设备后开始上传测试程序,并启动测试。
在有些实施例中,该装置还包括测试后置模块,用于测试完成后,将虚拟状态还原同时下载测试记录并生成测试分析。
为每个虚拟机启动自动检测以及自动测试、自动上传测试记录,节省测试时间。
在有些实施例中,检测创建模块包括检测记录单元、获取单元、资源创建单元;
检测记录单元,用于虚拟机创建后,通过KVM指令检测在线的虚拟机,并记录所有虚拟机的信息到虚拟机测试状态表;
获取单元,用于根据虚拟机测试状态表获取在线虚拟机的数量和名称;
资源创建单元,用于根据在线虚拟机的数量创建最优的NVMe固态硬盘命名空间的个数和大小。
自动检测在线虚拟机的数量,根据在线虚拟机的数量,充分分配盘的容量。
在有些实施例中,配置模块包括虚拟设备创建单元、资源配置单元;
虚拟设备创建单元,用于根据命名空间的大小值,创建虚拟的PCIe设备;
资源配置单元,用于获取NVMe SSD支持的最大队列和中断资源的数量,分配给每个虚拟的PCIe设备;其中分配采用平均分配或定制分配,为虚拟的PCIe设备指定队列和中断资源的具体数量。
可以自适应的创建最大的命名空间的容量,为虚拟PCIe设备分配最多的队列和中断资源;也可以采用定制的模式,定制命名空间的容量和分配的资源。保证效率的同时,覆盖了不同的测试场景。
在有些实施例中,分配模块包括分配单元和列表生成单元;
分配单元,用于虚拟的PCIe设备创建完成后,把虚拟的PCIe设备,分配给每个虚拟机;
列表生成单元,用于根据虚拟机的名称,获取每个名称的虚拟机的mac地址列表,将mac地址列表转为ip地址列表。
虚拟机建立后,自动发现程序将通过KVM指令检测到在线的虚拟机,并记录所有虚拟机的相关信息如IP和MAC地址到虚拟机测试状态表。
在有些实施例中,检测启动模块包括检测导入单元、启动测试单元和虚拟机测试状态表设置单元;
检测导入单元,用于获取到虚拟机的ip地址列表后,登陆虚拟机,检测虚拟的PCIe设备是否在虚拟机上被发现,若发现,将测试程序导入到虚拟机;
启动测试单元,用于启动进行虚拟机测试;
虚拟机测试状态表设置单元,用于将正在进行测试的虚拟机在虚拟机测试状态表里置为“正在测试”;还用于检测导入单元将测试程序导入到虚拟机的同时将已上传测试程序的虚拟机在虚拟机状态表里置为“已导入测试程序”
检测导入单元将周期性检测是否有新的虚拟机被建立,如果有新的虚拟机将更新虚拟机测试状态表,并将状态设置为“未开始”。
在有些实施例中,测试后置模块包括测试日志上传单元、状态复原单元、测试结果导出单元;
测试日志上传单元,用于测试完成后,上传测试日志,同时虚拟机测试状态表设置单元更新虚拟机测试状态表为“测试完毕”;
状态复原单元,用于取消虚拟机的映射,恢复虚拟机的初始状态;
测试结果导出单元,用于导出对应时间节点对应虚拟机的测试结果。使测试结果一目了然。
测试装置中,自动检测在线虚拟机的数量,根据在线虚拟机的数量,充分分配盘的容量,可以自适应的创建最大的namespace容量,为虚拟PCIe设备分配最多的队列和中断资源;也可以采用定制的模式,定制namespace的容量和分配的资源。保证效率的同时,覆盖了不同的测试场景。测试装置中,为每个虚拟机启动后台机制,机制中包含了自动检测以及自动测试、自动上传测试记录等。测试装置中,具有一键分析功能。该功能使得测试结果一目了然。
本发明实施例还提供一种固态硬盘的多虚拟机负载的自动化测试系统,包括宿主机,宿主机上设有测试装置;在宿主机上创建完成虚拟机后,启动测试装置进行虚拟机测试;测试装置启动后将维护一个虚拟机测试状态表,将记录检测到的所有虚拟机和每台虚拟机测试的状态。
虚拟机建立后,自动发现程序将通过KVM指令检测到在线的虚拟机,并记录所有虚拟机的相关信息如IP和MAC地址到虚拟机测试状态表,并将每台虚拟机的测试状态置为“未开始”。自动发现程序将周期性检测是否有新的虚拟机被建立,如果有新的虚拟机将更新虚拟机测试状态表,并将状态设置为“未开始”。
所述的测试装置的工作过程如下:
1.执行virsh list获取在线虚拟机的数量num和名称sName;
2.根据num的值,执行nvme CLI指令:nvme create创建最优的NVMe SSDnamespace的个数和大小,namespace的个数可以跟num的值形成对应关系。比如,1个虚拟机对应1个namespace的情况下,盘的容量为7.68T,平均分配给每个虚拟PCIe设备的容量是153G;也可以采用定制的模式,定制namespce的容量大小。
3.根据namespace的值,修改sriov_numbvfs的值,即打开了SR IOV的功能,创建虚拟的PCIe设备,namespace的值一般跟虚拟的PCIe设备一致;
4.获取NVMe SSD支持的最大队列和中断资源的数量,平均分配给每个虚拟PCIe设备;也可以采用定制的模式,为虚拟PCIe设备指定队列和中断资源的具体数量。
5.把虚拟的PCIe设备,分配给每个虚拟机;
6.根据sNmae,执行virsh dumpxml指令获取每个SName的虚拟机的mac地址列表,将mac地址列表转为ip地址列表;
7.测试装置拿到虚拟机的IP列表后,将为每个虚拟机启动一个后台进程,该进程中将登陆虚拟机,并且启动适时检测机制,检测虚拟的PCIe设备是否在虚拟机上被发现,一旦发现,开始执行测试装置的上传操作,将测试程序导入到虚拟机;测试装置将已上传测试程序的虚拟机在状态表里置为“已导入测试程序”。在此之前为”准备测试”。
8.测试程序上传到虚拟机后,在每个虚拟机的后台进程开启执行程序的测试;测试装置将正在进行测试的虚拟机在状态表里置为“正在测试”。
9.测试装置为虚拟机开启的后台进程中,定期检测测试程序是否执行完毕,一旦执行完毕,启动测试日志的上传,上传成功后,测试装置将更新虚拟机测试状态表为“测试完毕”。
10.虚拟机测试完毕后,测试装置将取消VF的映射,恢复虚拟机的初始状态。
11.测试装置设计有生成测试报告的功能,使用者可以随时选择该功能导出对应时间节点,对应虚拟机的测试结果。以性能测试为例,通过对测试日志的分析,识别出关键的参数,比如带宽、iops、时延等,测试结果一目了然。
本实施例中的测试装置运行在宿主机上,在宿主机硬件条件具备的情况下,可以搭建几十台甚至上百台的虚拟机,在如此多的虚拟机上,如果通过界面的形式,在宿主机与每个虚拟机之间逐个来回切换。非常浪费时间。当虚拟机发生改变或者测试程序发生改变的情况下,NVMe盘需要重新创建namespace,需要重新分配虚拟设备,重新登陆虚拟机,修改并运行测试程序。整个测试的准备阶段变得非常繁琐。另外,给虚拟的PCIe分配的队列和中断资源不能自适应的达到最优的配置,浪费了资源。本实施例提供的运行在宿主机上的测试装置能够自动检测在线虚拟机的数量自适应的创建NVMe SSD盘的namespace,创建虚拟的PCIe设备,并给虚拟PCIe设备最大化的分配队列中断资源;虚拟的PCIe设备创建完成后,自动映射到虚拟机,启动适时检测机制,待虚拟PCIe设备在虚拟机端发现后,宿主机开始上传测试程序,并启动测试。启动适时检测机制,待测试完毕,将测试记录下载到宿主机,生成测试分析。
本发明实施例还提供的一种计算机设备,该设备可以包括:处理器、通信接口、存储器和总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信。总线可以用于电子设备与传感器之间的信息传输。处理器可以调用存储器中的逻辑指令,以执行如下方法:步骤1:虚拟机创建后,自动检测在线的虚拟机的数量自适应的创建NVMe固态硬盘的命名空间;其中包括命名空间的数量和大小值;步骤2:根据创建的命名空间的大小值创建虚拟的PCIe设备,并给虚拟的PCIe设备最大化的分配队列中断资源;步骤3:虚拟的PCIe设备创建完成后,自动映射到虚拟机;步骤4:检测在虚拟机端发现虚拟的PCIe设备后开始上传测试程序,并启动测试。步骤5:测试完成后,将虚拟状态还原同时下载测试记录并生成测试分析。
此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种固态硬盘的多虚拟机负载的自动化测试方法,其特征在于,包括如下步骤:
虚拟机创建后,自动检测在线的虚拟机的数量自适应的创建NVMe固态硬盘的命名空间;其中包括命名空间的数量和大小值;
根据创建的命名空间的大小值创建虚拟的PCIe设备,并给虚拟的PCIe设备最大化的分配队列中断资源;
虚拟的PCIe设备创建完成后,自动映射到虚拟机;
检测在虚拟机端发现虚拟的PCIe设备后开始上传测试程序,并启动测试。
2.根据权利要求1所述的固态硬盘的多虚拟机负载的自动化测试方法,其特征在于,检测在虚拟机端发现虚拟的PCIe设备后开始上传测试程序,并启动测试的步骤之后还包括:
测试完成后,将虚拟状态还原同时下载测试记录并生成测试分析。
3.根据权利要求2所述的固态硬盘的多虚拟机负载的自动化测试方法,其特征在于,虚拟机创建后,自动检测在线的虚拟机的数量自适应的创建NVMe固态硬盘的命名空间的步骤包括:
虚拟机创建后,通过KVM指令检测在线的虚拟机,并记录所有虚拟机的信息到虚拟机测试状态表;
根据虚拟机测试状态表获取在线虚拟机的数量和名称;
根据在线虚拟机的数量创建最优的NVMe固态硬盘命名空间的个数和大小。
4.根据权利要求3所述的固态硬盘的多虚拟机负载的自动化测试方法,其特征在于,根据创建的命名空间的大小值创建虚拟的PCIe设备,并给虚拟的PCIe设备最大化的分配队列中断资源的步骤包括:
根据命名空间的大小值,创建虚拟的PCIe设备;
获取NVMe SSD支持的最大队列和中断资源的数量,分配给每个虚拟的PCIe设备;其中分配采用平均分配或定制分配,为虚拟的PCIe设备指定队列和中断资源的具体数量。
5.根据权利要求4所述的固态硬盘的多虚拟机负载的自动化测试方法,其特征在于,虚拟的PCIe设备创建完成后,自动映射到虚拟机的步骤包括:
虚拟的PCIe设备创建完成后,把虚拟的PCIe设备,分配给每个虚拟机;
根据虚拟机的名称,获取每个名称的虚拟机的mac地址列表,将mac地址列表转为ip地址列表。
6.根据权利要求5所述的固态硬盘的多虚拟机负载的自动化测试方法,其特征在于,检测在虚拟机端发现虚拟的PCIe设备后开始上传测试程序,并启动测试的步骤包括:
获取到虚拟机的ip地址列表后,登陆虚拟机,检测虚拟的PCIe设备是否在虚拟机上被发现,若发现,将测试程序导入到虚拟机;
启动测试并将正在进行测试的虚拟机在虚拟机测试状态表里置为“正在测试”。
7.根据权利要求6所述的固态硬盘的多虚拟机负载的自动化测试方法,其特征在于,将测试程序导入到虚拟机的步骤包括:
将测试程序导入到虚拟机,同时将已上传测试程序的虚拟机在虚拟机状态表里置为“已导入测试程序”。
8.根据权利要求7所述的固态硬盘的多虚拟机负载的自动化测试方法,其特征在于,测试完成后,将虚拟状态还原同时下载测试记录并生成测试分析的步骤包括:
测试完成后,上传测试日志,更新虚拟机测试状态表为“测试完毕”;
取消虚拟机的映射,恢复虚拟机的初始状态;
导出对应时间节点对应虚拟机的测试结果。
9.一种固态硬盘的多虚拟机负载的自动化测试装置,其特征在于,包括检测创建模块、配置模块、分配模块和检测启动模块;
检测创建模块,用于虚拟机创建后,自动检测在线的虚拟机的数量自适应的创建NVMe固态硬盘的命名空间;其中包括命名空间的数量和大小值;
配置模块,应用根据创建的命名空间的大小值创建虚拟的PCIe设备,并给虚拟的PCIe设备最大化的分配队列中断资源;
分配模块,应用虚拟的PCIe设备创建完成后,自动映射到虚拟机;
检测启动模块,用于检测在虚拟机端发现虚拟的PCIe设备后开始上传测试程序,并启动测试。
10.一种固态硬盘的多虚拟机负载的自动化测试系统,其特征在于,包括宿主机,宿主机上设有测试装置;在宿主机上创建完成虚拟机后,启动测试装置进行虚拟机测试;所述的测试装置为权利要求9所述的固态硬盘的多虚拟机负载的自动化测试装置;
虚拟机测试完毕后,测试装置将取消虚拟机的映射,恢复虚拟机的初始状态。
CN202210468944.6A 2022-04-29 2022-04-29 固态硬盘的多虚拟机负载的自动化测试方法、装置、系统 Pending CN114780207A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210468944.6A CN114780207A (zh) 2022-04-29 2022-04-29 固态硬盘的多虚拟机负载的自动化测试方法、装置、系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210468944.6A CN114780207A (zh) 2022-04-29 2022-04-29 固态硬盘的多虚拟机负载的自动化测试方法、装置、系统

Publications (1)

Publication Number Publication Date
CN114780207A true CN114780207A (zh) 2022-07-22

Family

ID=82434116

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210468944.6A Pending CN114780207A (zh) 2022-04-29 2022-04-29 固态硬盘的多虚拟机负载的自动化测试方法、装置、系统

Country Status (1)

Country Link
CN (1) CN114780207A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115168129A (zh) * 2022-08-09 2022-10-11 北京得瑞领新科技有限公司 植入仿真器的自动化测试系统及ssd硬盘测试方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115168129A (zh) * 2022-08-09 2022-10-11 北京得瑞领新科技有限公司 植入仿真器的自动化测试系统及ssd硬盘测试方法
CN115168129B (zh) * 2022-08-09 2023-02-10 北京得瑞领新科技有限公司 植入仿真器的自动化测试系统及ssd硬盘测试方法

Similar Documents

Publication Publication Date Title
CN107689953B (zh) 一种面向多租户云计算的容器安全监控方法及系统
CN107040407B (zh) 一种高性能计算集群动态节点作业方法
US11714686B2 (en) Resource oversubscription based on utilization patterns in computing systems
US11301303B2 (en) Resource pool processing to determine to create new virtual resource pools and storage devices based on currebt pools and devices not meeting SLA requirements
US9632725B2 (en) Computer-implemented method, program, and tracer node for obtaining trace data relating to particular virtual machine
US20210289435A1 (en) Virtualization management method and apparatus
CN106790403B (zh) 实现移动云计算中间平台的方法及实现分布式的方法
CN107070752B (zh) 一种长连接容量的测试方法及测试系统
CN107515809A (zh) 一种电力系统的弹性伸缩方法及系统
CN109471725A (zh) 资源分配方法、装置和服务器
CN114780207A (zh) 固态硬盘的多虚拟机负载的自动化测试方法、装置、系统
CN112698838A (zh) 多云容器部署系统及其容器部署方法
JP2013125548A (ja) 仮想マシン割り当てシステム及びその使用方法
CN109491881B (zh) 一种收集日志的方法、装置、设备及可读存储介质
CN110795202B (zh) 一种虚拟化集群资源管理系统的资源分配方法以及装置
CN116800616B (zh) 虚拟化网络设备的管理方法及相关装置
WO2010111906A1 (zh) 一种刀片服务器及其业务调度方法
CN113127144A (zh) 一种处理方法、装置及存储介质
CN109995571B (zh) 服务器配置与vnf应用匹配的方法及装置
CN115134281A (zh) 一种网络耗源型组件性能测试优化方法、系统及装置
CN109257256A (zh) 设备监控方法、装置、计算机设备及存储介质
CN112468458B (zh) 一种基于neutron分层机制的调度方法
CN114745377A (zh) 边缘云集群服务系统及实现方法
US20240160465A1 (en) Orchestration model integration method in heterogeneous cluster environment
CN111124890A (zh) 一种分布式数据库性能测试方法、系统、终端及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination