CN117762817A - 分布式存储系统的自动化测试方法、设备及介质 - Google Patents

分布式存储系统的自动化测试方法、设备及介质 Download PDF

Info

Publication number
CN117762817A
CN117762817A CN202410038615.7A CN202410038615A CN117762817A CN 117762817 A CN117762817 A CN 117762817A CN 202410038615 A CN202410038615 A CN 202410038615A CN 117762817 A CN117762817 A CN 117762817A
Authority
CN
China
Prior art keywords
test
client
client node
virtual machine
information
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
CN202410038615.7A
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.)
China United Network Communications Group Co Ltd
Unicom Digital Technology Co Ltd
Unicom Cloud Data Co Ltd
Original Assignee
China United Network Communications Group Co Ltd
Unicom Digital Technology Co Ltd
Unicom Cloud Data 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 China United Network Communications Group Co Ltd, Unicom Digital Technology Co Ltd, Unicom Cloud Data Co Ltd filed Critical China United Network Communications Group Co Ltd
Priority to CN202410038615.7A priority Critical patent/CN117762817A/zh
Publication of CN117762817A publication Critical patent/CN117762817A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本申请提供一种分布式存储系统的自动化测试方法、设备及介质。该方法包括:获取用户输入的测试配置文件,测试配置文件包括集群部署信息和客户端部署信息;根据测试配置文件中的集群部署信息和客户端部署信息,部署分布式存储系统的测试环境,并生成各客户端节点对应的虚拟机;对于每一客户端节点,对客户端节点对应的虚拟机进行性能测试,以得到客户端节点的测试结果文件;根据每一客户端节点的测试结果文件,确定分布式存储系统的测试结果。本申请的方法,可以实现分布式存储系统的自动化测试,从而提高了测试效率和准确性。

Description

分布式存储系统的自动化测试方法、设备及介质
技术领域
本申请涉及自动化测试领域,尤其涉及一种分布式存储系统的自动化测试方法、设备及介质。
背景技术
针对云计算场景的分布式存储系统具备多虚机客户、多写、多读的特性,在生产交付前以及每次产品迭代后,一般会进行基准性能测试。
现有的分布式存储系统在测试时,通常需要测试人员在测试对象的物理节点上批量生成虚拟机,然后手动执行FIO测试或者利用其他性能压测工具去跑多种IO模型的测试。这种手动测试的方式不仅耗时长,测试效率低,还容易导致人为失误,降低了测试的准确性。
因此,需要一种能够实现自动化测试,提高测试效率和准确性的分布式存储系统的自动化测试方案。
发明内容
本申请提供一种分布式存储系统的自动化测试方法、设备及介质,用以解决现有的分布式存储系统测试效率低、准确性差的技术问题。
第一方面,本申请提供一种分布式存储系统的自动化测试方法,包括:
获取用户输入的测试配置文件,所述测试配置文件包括集群部署信息和客户端部署信息;
根据所述测试配置文件中的集群部署信息和客户端部署信息,部署分布式存储系统的测试环境,并生成各客户端节点对应的虚拟机;
对于每一客户端节点,对所述客户端节点对应的虚拟机进行性能测试,以得到所述客户端节点的测试结果文件;
根据每一客户端节点的测试结果文件,确定所述分布式存储系统的测试结果。
在一种可能的实施方式中,所述根据所述测试配置文件中的集群部署信息和客户端部署信息,部署分布式存储系统的测试环境,并生成各客户端节点对应的虚拟机,具体包括:
根据所述集群部署信息,确定测试环境中的服务端节点,并根据所述客户端部署信息,确定测试环境中的客户端节点;
将测试用存储安装包发送至每一服务端节点和每一客户端节点,以使每一服务端节点和每一客户端节点执行所述存储安装包,完成存储集群的部署;
对存储集群中的各客户端节点进行测试,以确定所述存储集群能够正常运行;
根据所述客户端部署信息,创建所述存储集群中每一客户端节点对应的虚拟机;
其中,所述集群部署信息包括服务端节点个数、服务端节点IP地址、各服务端节点的登录信息以及硬件信息;所述客户端部署信息包括客户端节点个数、客户端节点IP地址、各客户端节点的登录信息以及硬件信息、各客户端节点的虚拟机部署信息。
在一种可能的实施方式中,所述对存储集群中的各客户端节点进行测试,以确定所述存储集群能够正常运行,具体包括:
根据各客户端节点的登录信息以及硬件信息,对所述存储集群中的各客户端节点进行遍历,以确定:
各客户端节点中是否存在集群配置文件,如果不存在,则根据所述存储安装包生成集群配置文件;
各客户端节点中的加速数据库存储引擎代理是否运行,如果不运行,则启动所述加速数据库存储引擎代理;
各客户端节点中的虚拟主机系统是否运行,如果不运行,则启动所述虚拟主机系统;
各客户端节点中是否配置虚拟化管理软件,如果未配置,则配置所述虚拟化管理软件。
在一种可能的实施方式中,所述根据所述客户端部署信息,创建所述存储集群中每一客户端节点对应的虚拟机,具体包括:
根据各客户端节点的虚拟机部署信息,确定每一客户端节点对应的虚拟机数目、每一虚拟机的卷数以及每一虚拟机的CPU信息和内存信息;
根据每一客户端节点对应的虚拟机数目以及每一虚拟机的卷数,确定服务端节点的总卷数,并在所述服务端节点根据所述总卷数创建卷;
对于每一客户端节点,根据所述客户端节点对应的各虚拟机的卷数在所述客户端节点挂载卷;根据所述客户端节点对应的虚拟机数目,建立虚拟网络端口,并在每一所述虚拟网络端口创建对应的虚拟机;记录各虚拟机的属性信息,所述属性信息包括虚拟机的编号信息以及IP地址;
根据每一客户端节点各自对应的虚拟机的属性信息,创建客户端-虚拟机列表。
在一种可能的实施方式中,所述对所述客户端节点对应的虚拟机进行性能测试,以得到所述客户端节点的测试结果文件,具体包括:
运行所述客户端节点对应的各虚拟机中的监控脚本,以获取各虚拟机的监控结果,所述监控结果包括性能测试中的IO信息、CPU使用信息和内存使用信息;
根据IO模块配置文件,对所述客户端节点对应的各虚拟机进行FIO测试,以获取各虚拟机的FIO测试结果;
根据各虚拟机的监控结果以及FIO测试结果,生成所述客户端节点的测试结果文件。
在一种可能的实施方式中,所述根据IO模块配置文件,对所述客户端节点对应的各虚拟机进行FIO测试,以获取各虚拟机的FIO测试结果,具体包括:
根据所述IO模块配置文件中各IO模块的预设测试顺序,进行FIO测试;
对于所述IO模块配置文件中的每一IO模块,
根据所述IO模块对所述客户端节点对应的各虚拟机下的各个卷,同时执行所述IO模块的FIO命令,进行FIO测试;
以预设时长为间隔,检测各虚拟机执行所述IO模块的FIO测试是否全部结束;
如果全部结束,则根据所述预设测试顺序进入下一IO模块的FIO测试,直至所述IO模块配置文件中的每一IO模块全部完成FIO测试;
根据各虚拟机执行每一IO模块的FIO测试结果,确定各虚拟机的FIO测试结果。
在一种可能的实施方式中,在所述根据每一客户端节点的测试结果文件,确定所述分布式存储系统的测试结果之后,还包括:
摧毁各客户端节点对应的虚拟机,并清理所述分布式存储系统的测试环境。
第二方面,本申请提供一种电子设备,包括:
获取模块,用于获取用户输入的测试配置文件,所述测试配置文件包括集群部署信息和客户端部署信息;
处理模块,用于根据所述测试配置文件中的集群部署信息和客户端部署信息,部署分布式存储系统的测试环境,并生成各客户端节点对应的虚拟机;对于每一客户端节点,对所述客户端节点对应的虚拟机进行性能测试,以得到所述客户端节点的测试结果文件;根据每一客户端节点的测试结果文件,确定所述分布式存储系统的测试结果。
第三方面,本申请提供另一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现上述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述的方法。
第五方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法。
本申请提供的分布式存储系统的自动化测试方法、设备及介质,可以获取用户输入的测试配置文件,测试配置文件包括集群部署信息和客户端部署信息;根据测试配置文件中的集群部署信息和客户端部署信息,部署分布式存储系统的测试环境,并生成各客户端节点对应的虚拟机;对于每一客户端节点,对客户端节点对应的虚拟机进行性能测试,以得到客户端节点的测试结果文件;根据每一客户端节点的测试结果文件,确定分布式存储系统的测试结果。本申请的方法,获取用户输入的测试配置文件之后,即可根据测试配置文件进行分布式存储系统的测试环境的部署,并生成各客户端节点对应的虚拟机,之后对各客户端节点对应的虚拟机进行性能测试,即可完成分布式存储系统的测试。通过这样的设置,可以实现分布式存储系统的自动化测试,不需要手动执行FIO测试或者利用其他性能压测工具去跑多种IO模型的测试,避免了手动测试导致的人为失误,缩短了测试时长,提高了测试效率和准确性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请一实施例的系统架构图;
图2为本申请一实施例的分布式存储系统的自动化测试方法的流程图;
图3为本申请另一实施例的分布式存储系统的自动化测试方法的流程图;
图4为本申请一实施例的电子设备的结构示意图;
图5为本申请另一实施例的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
还需要说明的是,本申请的分布式存储系统的自动化测试方法、设备及介质可用于自动化测试领域,也可用于除自动化测试领域之外的任意领域,例如云平台领域等,本申请的分布式存储系统的自动化测试方法、设备及介质的应用领域不做限定。
本申请的分布式存储系统的自动化测试方法、设备及介质可以应用于基于QEMU/KVM+SPDK+联通数科自研分布式存储产品CUSTORE构建的分布式存储系统,当然,也可应用于其他针对云计算场景的分布式存储系统,在此不做任何限制。
针对云计算场景的分布式存储系统具备多虚机客户、多写、多读的特性,在生产交付前以及每次产品迭代后,一般会进行基准性能测试。
现有的分布式存储系统在测试时,通常需要测试人员在测试对象的物理节点上批量生成虚拟机,然后手动执行FIO测试或者利用其他性能压测工具去跑多种IO模型的测试。这种手动测试的方式不仅耗时长,测试效率低,还容易导致人为失误,降低了测试的准确性。
基于该技术问题,本申请的发明构思在于:如何提供一种能够实现自动化测试,提高测试效率和准确性的分布式存储系统的自动化测试方法。
具体为,可以获取用户输入的测试配置文件,测试配置文件包括集群部署信息和客户端部署信息;根据测试配置文件中的集群部署信息和客户端部署信息,部署分布式存储系统的测试环境,并生成各客户端节点对应的虚拟机;对于每一客户端节点,对客户端节点对应的虚拟机进行性能测试,以得到客户端节点的测试结果文件;根据每一客户端节点的测试结果文件,确定分布式存储系统的测试结果。本申请的方法,获取用户输入的测试配置文件之后,即可根据测试配置文件进行分布式存储系统的测试环境的部署,并生成各客户端节点对应的虚拟机,之后对各客户端节点对应的虚拟机进行性能测试,即可完成分布式存储系统的测试。通过这样的设置,可以实现分布式存储系统的自动化测试,不需要手动执行FIO测试或者利用其他性能压测工具去跑多种IO模型的测试,避免了手动测试导致的人为失误,缩短了测试时长,提高了测试效率和准确性。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1为本申请一实施例的系统架构图,如图1所示,电子设备获取用户输入的测试配置文件之后,可以根据测试配置文件中的集群部署信息和客户端部署信息,部署分布式存储系统的测试环境。分布式存储系统的测试环境包括服务端节点和多个客户端节点,每一客户端节点挂载有虚拟机。完成测试环境的部署后,对于每一客户端节点,电子设备可以对客户端节点对应的虚拟机进行性能测试,以得到客户端节点的测试结果文件;根据每一客户端节点的测试结果文件,确定分布式存储系统的测试结果。
实施例一
图2为本申请一实施例的分布式存储系统的自动化测试方法的流程图,本实施例以执行主体为电子设备对该分布式存储系统的自动化测试方法进行说明。如图2所示,该分布式存储系统的自动化测试方法可以包括以下步骤:
S101:获取用户输入的测试配置文件,测试配置文件包括集群部署信息和客户端部署信息。
在本实施例中,测试配置文件可以是分布式存储系统默认的测试用配置文件,测试人员可以根据实际的测试情况对默认文件进行修改,例如修改集群存储节点的个数,填写集群中各物理机的登录信息等。
在本实施例中,集群部署信息可以包括服务端节点个数、服务端节点IP地址、各服务端节点的登录信息以及硬件信息;客户端部署信息可以包括客户端节点个数、客户端节点IP地址、各客户端节点的登录信息以及硬件信息、各客户端节点的虚拟机部署信息。登录信息可以是对应的物理机的登录名、登录密码等信息,硬件信息可以是对应的物理机的存储硬盘等信息。各客户端节点的虚拟机部署信息可以包括各客户端节点对应的虚拟机数目、各虚拟机的卷数以及每一虚拟机的CPU信息和内存信息等。集群部署信息和客户端部署信息的具体内容本领域技术人员可以根据实际部署需要灵活设置,在此不做任何限制。
在本实施例中,用户可以在测试管理节点的电子设备上对分布式存储系统默认的测试用配置文件进行修改,得到测试配置文件。电子设备可以是终端设备,也可以是服务器,还可以是终端-服务一体机,在此不做任何限制,只要电子设备能够执行测试配置文件等测试脚本即可。
S102:根据测试配置文件中的集群部署信息和客户端部署信息,部署分布式存储系统的测试环境,并生成各客户端节点对应的虚拟机。
在本实施例中,上述步骤S102根据测试配置文件中的集群部署信息和客户端部署信息,部署分布式存储系统的测试环境,并生成各客户端节点对应的虚拟机的具体实施方式,请详见实施例二。
在本实施例中,虚拟机可以是虚拟主机,也可以是虚拟客户端,虚拟机的具体类型可以根据测试需求灵活设置,在此不做任何限制。
S103:对于每一客户端节点,对客户端节点对应的虚拟机进行性能测试,以得到客户端节点的测试结果文件。
在本实施例中,客户端节点可以挂载多个虚拟机,需要对该客户端节点挂载的全部虚拟机进行性能测试,根据全部虚拟机的测试结果得到该客户端节点的测试结果文件。
在一个可能的实施方式中,上述步骤S103对客户端节点对应的虚拟机进行性能测试,以得到客户端节点的测试结果文件,可以包括:
S11:运行客户端节点对应的各虚拟机中的监控脚本,以获取各虚拟机的监控结果,监控结果包括性能测试中的IO信息、CPU使用信息和内存使用信息。
S12:根据IO模块配置文件,对客户端节点对应的各虚拟机进行FIO测试,以获取各虚拟机的FIO测试结果。
S13:根据各虚拟机的监控结果以及FIO测试结果,生成客户端节点的测试结果文件。
在本实施方式中,各虚拟机中都设置有监控脚本,该脚本使用python的psutil模块,可以采集性能测试中虚拟机的IO,CPU和内存的使用情况,并存储在虚拟机的相关目录中。
在本实施方式中,对客户端节点对应的虚拟机进行性能测试时,一方面可以利用监控脚本在测试过程中实时采集虚拟机的IO信息、CPU使用信息和内存使用信息;另一方面可以根据IO模块配置文件进行FIO测试,得到各虚拟机的FIO测试结果,根据各虚拟机的监控结果以及FIO测试结果,即可全面而又准确的得到客户端节点的测试结果文件,完成客户端节点的存储性能测试。
在一个可能的实施方式中,上述步骤S12根据IO模块配置文件,对客户端节点对应的各虚拟机进行FIO测试,以获取各虚拟机的FIO测试结果,可以包括:
S21:根据IO模块配置文件中各IO模块的预设测试顺序,进行FIO测试。
S22:对于IO模块配置文件中的每一IO模块,根据IO模块对客户端节点对应的各虚拟机下的各个卷,同时执行IO模块的FIO命令,进行FIO测试。
S23:以预设时长为间隔,检测各虚拟机执行IO模块的FIO测试是否全部结束。
S24:如果全部结束,则根据预设测试顺序进入下一IO模块的FIO测试,直至IO模块配置文件中的每一IO模块全部完成FIO测试。
S25:根据各虚拟机执行每一IO模块的FIO测试结果,确定各虚拟机的FIO测试结果。
在本实施方式中,IO模块配置文件中可以包括多个测试用IO模块,分别进行不同的FIO测试。IO模块配置文件中可以预先设置有默认序列的IO模块,测试人员可以根据实际测试需求对IO模块配置文件中的IO模块进行增加、删改和调序。IO模块可以为固定块大小、固定队列深度的IO模型。
在本实施方式中,虚拟机下的各个卷,可以是虚拟机下的各个存储盘。
在本实施方式中,预设时长本领域技术人员可以灵活设置,例如,预设时长可以为5s,也可以为10s,在此不做任何限制。
在本实施方式中,各虚拟机中的监控脚本在性能测试过程中是全程开始的,直至检测到IO模块配置文件中的每一IO模块全部完成FIO测试,才停止监控脚本的运行。
在本实施方式中,IO模块配置文件中各IO模块进行FIO测试时,可以按照预设测试顺序,依次进行测试。每个IO模块进行测试时,客户端节点对应的各虚拟机下的各个卷同时执行该IO模块的FIO命令,即同时进行测试,等到全部虚拟机对该IO模块的测试均完成,才开启下一个IO模块的FIO测试。通过这样的设置,可以有序而又高效的完成配置文件中的每一IO模块的FIO测试。
S104:根据每一客户端节点的测试结果文件,确定分布式存储系统的测试结果。
在本实施例中,得到每一客户端节点的测试结果文件之后,即可根据每一客户端节点的测试结果文件,汇总生成分布式存储系统的测试结果,得到本次性能测试的测试报告,以便测试人员根据测试结果进行性能评估。
在一个可能的实施方式中,在上述步骤S104根据每一客户端节点的测试结果文件,确定分布式存储系统的测试结果之后,还可以包括:摧毁各客户端节点对应的虚拟机,并清理分布式存储系统的测试环境。
在本实施方式中,在分布式存储系统的性能测试结束之后,还需要摧毁各客户端节点对应的虚拟机,并清理分布式存储系统的测试环境,及时清洗测试数据,完成测试的收尾。
在本实施例中,获取用户输入的测试配置文件之后,即可根据测试配置文件进行分布式存储系统的测试环境的部署,并生成各客户端节点对应的虚拟机,之后对各客户端节点对应的虚拟机进行性能测试,即可完成分布式存储系统的测试。通过这样的设置,可以实现分布式存储系统的自动化测试,不需要手动执行FIO测试或者利用其他性能压测工具去跑多种IO模型的测试,避免了手动测试导致的人为失误,缩短了测试时长,提高了测试效率和准确性。
下面以具体的实施例二,对上述实施例一的步骤S102根据测试配置文件中的集群部署信息和客户端部署信息,部署分布式存储系统的测试环境,并生成各客户端节点对应的虚拟机的实施方式,进行详细的阐述。
实施例二
图3为本申请另一实施例的分布式存储系统的自动化测试方法的流程图,本实施例以执行主体为电子设备对该分布式存储系统的自动化测试方法进行说明。如图3所示,该分布式存储系统的自动化测试方法可以包括以下步骤:
S201:根据集群部署信息,确定测试环境中的服务端节点,并根据客户端部署信息,确定测试环境中的客户端节点。
在本实施例中,集群部署信息可以包括服务端节点个数、服务端节点IP地址、各服务端节点的登录信息以及硬件信息;客户端部署信息可以包括客户端节点个数、客户端节点IP地址、各客户端节点的登录信息以及硬件信息、各客户端节点的虚拟机部署信息。
在本实施例中,集群部署信息和客户端部署信息的具体内容本领域技术人员可以根据实际部署需要灵活设置,并不仅局限于上述信息,在此不做任何限制。
在本实施例中,登录信息可以是对应的物理机的登录名、登录密码等信息,硬件信息可以是对应的物理机的存储硬盘等信息。各客户端节点的虚拟机部署信息可以包括各客户端节点对应的虚拟机数目、各虚拟机的卷数以及每一虚拟机的CPU信息和内存信息等。
在本实施例中,服务端节点和客户端节点均是真实存在的物理机。通常的,在分布式存储集群中可以包括一个服务端节点和多个客户端节点。
在本实施例中,可以根据集群部署信息中的服务端节点个数以及各服务端节点IP地址,确定对应的服务端节点,根据客户端部署信息中的客户端节点个数以及各客户端节点IP地址,确定对应的客户端节点。
S202:将测试用存储安装包发送至每一服务端节点和每一客户端节点,以使每一服务端节点和每一客户端节点执行存储安装包,完成存储集群的部署。
在本实施例中,电子设备可以将测试用存储安装包发送至每一服务端节点和每一客户端节点,存储安装包可以根据分布式存储系统的类型设置。示例性的,存储安装包可以是custore版本的rpm包,以使每一服务端节点和每一客户端节点执行存储安装包,部署custore集群。
在本实施例中,各服务端节点和各客户端节点执行存储安装包之后,均会生成对应的集群配置文件。
S203:对存储集群中的各客户端节点进行测试,以确定存储集群能够正常运行。
在一个可能的实施方式中,上述步骤S203对存储集群中的各客户端节点进行测试,以确定存储集群能够正常运行,可以包括:根据各客户端节点的登录信息以及硬件信息,对存储集群中的各客户端节点进行遍历,以确定:
S31:各客户端节点中是否存在集群配置文件,如果不存在,则根据存储安装包生成集群配置文件。
S32:各客户端节点中的加速数据库存储引擎代理是否运行,如果不运行,则启动加速数据库存储引擎代理。
S33:各客户端节点中的虚拟主机系统是否运行,如果不运行,则启动虚拟主机系统。
S34:各客户端节点中是否配置虚拟化管理软件,如果未配置,则配置虚拟化管理软件。
在本实施方式中,存储集群部署过程中,已经对各服务端节点的正常运行进行测试和预警,若服务端节点出现问题,集群部署时即会发出警告,提示测试人员处理。因此,存储集群部署完成后,只需要遍历各客户端节点进行测试,以确定存储集群能够正常运行。遍历各客户端节点时,需要依次对集群配置文件、加速数据库存储引擎代理(SPDK agent)、虚拟主机系统(vhost)和虚拟化管理软件(libvirtd)进行检查和配置,以保证存储集群能够正常运行,后续虚拟机能够顺利创建。
S204:根据客户端部署信息,创建存储集群中每一客户端节点对应的虚拟机。
在本实施例中,虚拟机可以是虚拟主机,也可以是虚拟客户端,虚拟机的具体类型可以根据测试需求灵活设置,在此不做任何限制。
在一个可能的实施方式中,上述步骤S204根据客户端部署信息,创建存储集群中每一客户端节点对应的虚拟机,可以包括:
S41:根据各客户端节点的虚拟机部署信息,确定每一客户端节点对应的虚拟机数目、每一虚拟机的卷数以及每一虚拟机的CPU信息和内存信息。
S42:根据每一客户端节点对应的虚拟机数目以及每一虚拟机的卷数,确定服务端节点的总卷数,并在服务端节点根据总卷数创建卷。
S43:对于每一客户端节点,根据客户端节点对应的各虚拟机的卷数在客户端节点挂载卷;根据客户端节点对应的虚拟机数目,建立虚拟网络端口,并在每一虚拟网络端口创建对应的虚拟机;记录各虚拟机的属性信息,属性信息包括虚拟机的编号信息以及IP地址。
S44:根据每一客户端节点各自对应的虚拟机的属性信息,创建客户端-虚拟机列表。
在本实施方式中,虚拟机下的各个卷,可以是虚拟机下的各个存储盘。每一虚拟机均对应一个虚拟网络端口。虚拟机的编号信息可以是能够对虚拟机的身份进行标识的信息,具体的编号信息本领域技术人员可以灵活设置,在此不做任何限制。
在本实施方式中,服务端节点创建的卷数,为各客户端节点对应的虚拟机的总卷数,首先按照总卷数在服务端节点创建卷,然后按照每一客户端节点各自对应的虚拟机的卷数,在客户端节点挂载卷。一般而言,各客户端节点挂载的卷数是相同的。示例性的,存储集群包括一个服务端节点和10个客户端节点,每一客户端节点可以挂载5个虚拟机,每一虚拟机均包括5个卷,则服务端节点需要创建5×5×10=250个卷,然后每一客户端节点需要挂载5×5=25个卷。
在本实施方式中,根据各客户端节点的虚拟机部署信息,即可确定各客户端节点要创建的虚拟机数目和每一虚拟机的卷数。首先可以根据虚拟机的卷数创建并挂载卷,确定数据分布式存储的架构,然后根据虚拟机数目建立虚拟网络端口,并在虚拟网络端口进行虚拟机的创建。根据每一客户端节点各自对应的虚拟机的属性信息,创建客户端-虚拟机列表,即可简单而又准确地确定各客户端节点对应的虚拟机。
在本实施例中,根据测试配置文件中的集群部署信息和客户端部署信息,即可确定集群中的服务端节点和客户端节点,服务端节点和客户端节点均执行测试用存储安装包之后,即可部署测试用存储集群,初步完成测试环境的建立。在部署存储集群之后,还需要对存储集群中的各客户端节点进行测试,以保证存储集群能够正常运行并提供创建虚拟机的各种条件。确定存储集群能够正常运行之后,根据客户端部署信息即可创建存储集群中每一客户端节点对应的虚拟机,从而完成分布式存储系统的测试环境的部署和虚拟机的创建,为后续分布式存储系统的性能测试提供环境。
下面以一个具体的实施例对本申请的分布式存储系统的自动化测试方法进行阐述。
实施例三
在一个具体的实施例中,某软件公司想要为刚生产的分布式存储系统进行性能测试,具体的分布式存储系统的自动化测试过程如下:
第一步,测试人员将根据默认文件调整后的测试配置文件输入测试用电子设备。
第二步,电子设备获取用户输入的测试配置文件,根据集群部署信息,确定测试环境中的服务端节点,并根据客户端部署信息,确定测试环境中的客户端节点;将测试用存储安装包发送至每一服务端节点和每一客户端节点,以使每一服务端节点和每一客户端节点执行存储安装包,完成存储集群的部署。
第三步,电子设备根据各客户端节点的登录信息以及硬件信息,对存储集群中的各客户端节点进行遍历,以确定存储集群能够正常运行。
第四步,电子设备根据客户端部署信息,创建存储集群中每一客户端节点对应的虚拟机;根据每一客户端节点各自对应的虚拟机的属性信息,创建客户端-虚拟机列表。
第五步,电子设备运行客户端节点对应的各虚拟机中的监控脚本,以获取各虚拟机的监控结果,根据IO模块配置文件,对客户端节点对应的各虚拟机进行FIO测试,以获取各虚拟机的FIO测试结果。
第六步,电子设备根据各虚拟机的监控结果以及FIO测试结果,生成客户端节点的测试结果文件。
第七步,电子设备根据每一客户端节点的测试结果文件,确定分布式存储系统的测试结果。
第八步,电子设备摧毁各客户端节点对应的虚拟机,并清理分布式存储系统的测试环境。
图4为本申请一实施例的电子设备的结构示意图,如图4所示,该电子设备包括:获取模块41,用于获取用户输入的测试配置文件,测试配置文件包括集群部署信息和客户端部署信息;处理模块42,用于根据测试配置文件中的集群部署信息和客户端部署信息,部署分布式存储系统的测试环境,并生成各客户端节点对应的虚拟机;对于每一客户端节点,对客户端节点对应的虚拟机进行性能测试,以得到客户端节点的测试结果文件;根据每一客户端节点的测试结果文件,确定分布式存储系统的测试结果。一个实施方式中,电子设备具体实现功能的描述可以参见实施例一中的步骤S101-S104以及实施例二中的步骤S201-S204,在此不做赘述。
在一种可能的实施方式中,处理模块42还可以用于:
根据集群部署信息,确定测试环境中的服务端节点,并根据客户端部署信息,确定测试环境中的客户端节点;
将测试用存储安装包发送至每一服务端节点和每一客户端节点,以使每一服务端节点和每一客户端节点执行存储安装包,完成存储集群的部署;
对存储集群中的各客户端节点进行测试,以确定存储集群能够正常运行;
根据客户端部署信息,创建存储集群中每一客户端节点对应的虚拟机;
其中,集群部署信息包括服务端节点个数、服务端节点IP地址、各服务端节点的登录信息以及硬件信息;客户端部署信息包括客户端节点个数、客户端节点IP地址、各客户端节点的登录信息以及硬件信息、各客户端节点的虚拟机部署信息。
在本实施方式中,处理模块42具体实现功能的描述可以参见实施例一中的步骤S102以及实施例二中的步骤S201-S204,在此不做赘述。
在一种可能的实施方式中,处理模块42还可以用于:
根据各客户端节点的登录信息以及硬件信息,对存储集群中的各客户端节点进行遍历,以确定:
各客户端节点中是否存在集群配置文件,如果不存在,则根据存储安装包生成集群配置文件;
各客户端节点中的加速数据库存储引擎代理是否运行,如果不运行,则启动加速数据库存储引擎代理;
各客户端节点中的虚拟主机系统是否运行,如果不运行,则启动虚拟主机系统;
各客户端节点中是否配置虚拟化管理软件,如果未配置,则配置虚拟化管理软件。
在本实施方式中,处理模块42具体实现功能的描述可以参见实施例二中的步骤S203,在此不做赘述。
在一种可能的实施方式中,处理模块42还可以用于:
根据各客户端节点的虚拟机部署信息,确定每一客户端节点对应的虚拟机数目、每一虚拟机的卷数以及每一虚拟机的CPU信息和内存信息;
根据每一客户端节点对应的虚拟机数目以及每一虚拟机的卷数,确定服务端节点的总卷数,并在服务端节点根据总卷数创建卷;
对于每一客户端节点,根据客户端节点对应的各虚拟机的卷数在客户端节点挂载卷;根据客户端节点对应的虚拟机数目,建立虚拟网络端口,并在每一虚拟网络端口创建对应的虚拟机;记录各虚拟机的属性信息,属性信息包括虚拟机的编号信息以及IP地址;
根据每一客户端节点各自对应的虚拟机的属性信息,创建客户端-虚拟机列表。
在本实施方式中,处理模块42具体实现功能的描述可以参见实施例二中的步骤S204,在此不做赘述。
在一种可能的实施方式中,处理模块42还可以用于:
运行客户端节点对应的各虚拟机中的监控脚本,以获取各虚拟机的监控结果,监控结果包括性能测试中的IO信息、CPU使用信息和内存使用信息;
根据IO模块配置文件,对客户端节点对应的各虚拟机进行FIO测试,以获取各虚拟机的FIO测试结果;
根据各虚拟机的监控结果以及FIO测试结果,生成客户端节点的测试结果文件。
在本实施方式中,处理模块42具体实现功能的描述可以参见实施例一中的步骤S103,在此不做赘述。
在一种可能的实施方式中,处理模块42还可以用于:
根据IO模块配置文件中各IO模块的预设测试顺序,进行FIO测试;
对于IO模块配置文件中的每一IO模块,
根据IO模块对客户端节点对应的各虚拟机下的各个卷,同时执行IO模块的FIO命令,进行FIO测试;
以预设时长为间隔,检测各虚拟机执行IO模块的FIO测试是否全部结束;
如果全部结束,则根据预设测试顺序进入下一IO模块的FIO测试,直至IO模块配置文件中的每一IO模块全部完成FIO测试;
根据各虚拟机执行每一IO模块的FIO测试结果,确定各虚拟机的FIO测试结果。
在本实施方式中,处理模块42具体实现功能的描述可以参见实施例一中的步骤S103,在此不做赘述。
在一种可能的实施方式中,处理模块42还可以用于:
摧毁各客户端节点对应的虚拟机,并清理分布式存储系统的测试环境。
在本实施方式中,处理模块42具体实现功能的描述可以参见实施例一中的步骤S104,在此不做赘述。
图5为本申请另一实施例的电子设备的结构示意图,如图5所示,该电子设备包括:处理器101,以及与处理器101通信连接的存储器102;存储器102存储计算机执行指令;处理器101执行存储器102存储的计算机执行指令,实现上述各方法实施例中分布式存储系统的自动化测试方法的步骤。
在上述电子设备中,存储器102和处理器101之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可以通过一条或者多条通信总线或信号线实现电性连接,如可以通过总线连接。存储器102中存储有实现数据访问控制方法的计算机执行指令,包括至少一个可以软件或固件的形式存储于存储器102中的软件功能模块,处理器101通过运行存储在存储器102内的软件程序以及模块,从而执行各种功能应用以及数据处理。
存储器102可以是,但不限于,随机存取存储器(Random Access Memory,简称:RAM),只读存储器(Read Only Memory,简称:ROM),可编程只读存储器(ProgrammableRead-Only Memory,简称:PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,简称:EPROM),电可擦除只读存储器(Electric Erasable ProgrammableRead-Only Memory,简称:EEPROM)等。其中,存储器102用于存储程序,处理器101在接收到执行指令后,执行程序。进一步地,上述存储器102内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通信,从而提供其他软件组件的运行环境。
处理器101可以是一种集成电路芯片,具有信号的处理能力。上述的处理器101可以是通用处理器,包括中央处理器(Central Processing Unit,简称:CPU)、网络处理器(Network Processor,简称:NP)等。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本申请的一实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现本申请各方法实施例的步骤。
本申请的一实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本申请各方法实施例的步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
进一步需要说明的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
应该理解,上述的装置实施例仅是示意性的,本申请的装置还可通过其它的方式实现。例如,上述实施例中单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
另外,若无特别说明,在本申请各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由所附的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

Claims (10)

1.一种分布式存储系统的自动化测试方法,其特征在于,包括:
获取用户输入的测试配置文件,所述测试配置文件包括集群部署信息和客户端部署信息;
根据所述测试配置文件中的集群部署信息和客户端部署信息,部署分布式存储系统的测试环境,并生成各客户端节点对应的虚拟机;
对于每一客户端节点,对所述客户端节点对应的虚拟机进行性能测试,以得到所述客户端节点的测试结果文件;
根据每一客户端节点的测试结果文件,确定所述分布式存储系统的测试结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述测试配置文件中的集群部署信息和客户端部署信息,部署分布式存储系统的测试环境,并生成各客户端节点对应的虚拟机,具体包括:
根据所述集群部署信息,确定测试环境中的服务端节点,并根据所述客户端部署信息,确定测试环境中的客户端节点;
将测试用存储安装包发送至每一服务端节点和每一客户端节点,以使每一服务端节点和每一客户端节点执行所述存储安装包,完成存储集群的部署;
对存储集群中的各客户端节点进行测试,以确定所述存储集群能够正常运行;
根据所述客户端部署信息,创建所述存储集群中每一客户端节点对应的虚拟机;
其中,所述集群部署信息包括服务端节点个数、服务端节点IP地址、各服务端节点的登录信息以及硬件信息;所述客户端部署信息包括客户端节点个数、客户端节点IP地址、各客户端节点的登录信息以及硬件信息、各客户端节点的虚拟机部署信息。
3.根据权利要求2所述的方法,其特征在于,所述对存储集群中的各客户端节点进行测试,以确定所述存储集群能够正常运行,具体包括:
根据各客户端节点的登录信息以及硬件信息,对所述存储集群中的各客户端节点进行遍历,以确定:
各客户端节点中是否存在集群配置文件,如果不存在,则根据所述存储安装包生成集群配置文件;
各客户端节点中的加速数据库存储引擎代理是否运行,如果不运行,则启动所述加速数据库存储引擎代理;
各客户端节点中的虚拟主机系统是否运行,如果不运行,则启动所述虚拟主机系统;
各客户端节点中是否配置虚拟化管理软件,如果未配置,则配置所述虚拟化管理软件。
4.根据权利要求3所述的方法,其特征在于,所述根据所述客户端部署信息,创建所述存储集群中每一客户端节点对应的虚拟机,具体包括:
根据各客户端节点的虚拟机部署信息,确定每一客户端节点对应的虚拟机数目、每一虚拟机的卷数以及每一虚拟机的CPU信息和内存信息;
根据每一客户端节点对应的虚拟机数目以及每一虚拟机的卷数,确定服务端节点的总卷数,并在所述服务端节点根据所述总卷数创建卷;
对于每一客户端节点,根据所述客户端节点对应的各虚拟机的卷数在所述客户端节点挂载卷;根据所述客户端节点对应的虚拟机数目,建立虚拟网络端口,并在每一所述虚拟网络端口创建对应的虚拟机;记录各虚拟机的属性信息,所述属性信息包括虚拟机的编号信息以及IP地址;
根据每一客户端节点各自对应的虚拟机的属性信息,创建客户端-虚拟机列表。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述对所述客户端节点对应的虚拟机进行性能测试,以得到所述客户端节点的测试结果文件,具体包括:
运行所述客户端节点对应的各虚拟机中的监控脚本,以获取各虚拟机的监控结果,所述监控结果包括性能测试中的IO信息、CPU使用信息和内存使用信息;
根据IO模块配置文件,对所述客户端节点对应的各虚拟机进行FIO测试,以获取各虚拟机的FIO测试结果;
根据各虚拟机的监控结果以及FIO测试结果,生成所述客户端节点的测试结果文件。
6.根据权利要求5所述的方法,其特征在于,所述根据IO模块配置文件,对所述客户端节点对应的各虚拟机进行FIO测试,以获取各虚拟机的FIO测试结果,具体包括:
根据所述IO模块配置文件中各IO模块的预设测试顺序,进行FIO测试;
对于所述IO模块配置文件中的每一IO模块,
根据所述IO模块对所述客户端节点对应的各虚拟机下的各个卷,同时执行所述IO模块的FIO命令,进行FIO测试;
以预设时长为间隔,检测各虚拟机执行所述IO模块的FIO测试是否全部结束;
如果全部结束,则根据所述预设测试顺序进入下一IO模块的FIO测试,直至所述IO模块配置文件中的每一IO模块全部完成FIO测试;
根据各虚拟机执行每一IO模块的FIO测试结果,确定各虚拟机的FIO测试结果。
7.根据权利要求6所述的方法,其特征在于,在所述根据每一客户端节点的测试结果文件,确定所述分布式存储系统的测试结果之后,还包括:
摧毁各客户端节点对应的虚拟机,并清理所述分布式存储系统的测试环境。
8.一种电子设备,其特征在于,包括:
获取模块,用于获取用户输入的测试配置文件,所述测试配置文件包括集群部署信息和客户端部署信息;
处理模块,用于根据所述测试配置文件中的集群部署信息和客户端部署信息,部署分布式存储系统的测试环境,并生成各客户端节点对应的虚拟机;对于每一客户端节点,对所述客户端节点对应的虚拟机进行性能测试,以得到所述客户端节点的测试结果文件;根据每一客户端节点的测试结果文件,确定所述分布式存储系统的测试结果。
9.一种电子设备,其特征在于,包括处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至7中任一项所述的方法。
CN202410038615.7A 2024-01-10 2024-01-10 分布式存储系统的自动化测试方法、设备及介质 Pending CN117762817A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410038615.7A CN117762817A (zh) 2024-01-10 2024-01-10 分布式存储系统的自动化测试方法、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410038615.7A CN117762817A (zh) 2024-01-10 2024-01-10 分布式存储系统的自动化测试方法、设备及介质

Publications (1)

Publication Number Publication Date
CN117762817A true CN117762817A (zh) 2024-03-26

Family

ID=90314571

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410038615.7A Pending CN117762817A (zh) 2024-01-10 2024-01-10 分布式存储系统的自动化测试方法、设备及介质

Country Status (1)

Country Link
CN (1) CN117762817A (zh)

Similar Documents

Publication Publication Date Title
CN112131099B (zh) 一种版本升级测试方法及装置
CN112486629B (zh) 微服务状态检测方法、装置、电子设备和存储介质
CN107506295B (zh) 虚拟机备份的测试方法、设备及计算机可读存储介质
CN111708584A (zh) 一种车辆诊断方法、装置、诊断设备及存储介质
CN112269697B (zh) 一种设备存储性能测试方法、系统及相关装置
CN106843947B (zh) 代码缺陷的处理方法和装置
CN113849388B (zh) 一种测试方法和装置、电子设备和存储介质
CN107544879A (zh) 服务器的诊断方法、装置及机器可读存储介质
CN114064216A (zh) 一种虚拟机初始化方法、装置、终端设备及存储介质
CN108647139B (zh) 系统的测试方法、装置、存储介质及电子装置
CN111338926A (zh) 补丁的测试方法、装置及电子设备
CN116955193A (zh) 接口测试方法、装置、设备及存储介质
CN117762817A (zh) 分布式存储系统的自动化测试方法、设备及介质
CN113505026B (zh) 验证备份数据的方法、装置、设备及存储介质
CN112596750B (zh) 应用测试方法、装置、电子设备及计算机可读存储介质
CN115733741A (zh) 一种针对待测系统的异常场景测试方法和装置
CN115237441A (zh) 一种基于云平台的升级测试方法、装置及介质
CN111240990A (zh) 一种ismcli命令行测试方法、系统、终端及存储介质
CN111225075A (zh) 物联网定向访问业务的配置方法及装置
CN114371683B (zh) 诊断仪的诊断功能验证方法、系统、存储介质及设备
CN116743990B (zh) 嵌入式设备的视频流测试方法和视频流测试处理方法
CN115657633A (zh) 一种电子控制单元电检方法、装置、存储介质和电子设备
CN115473793B (zh) 一种集群ei主机环境自动恢复方法、装置、终端及介质
CN117687926A (zh) 测试方法、装置、电子设备及计算机存储介质
CN118069160A (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