本发明属于分布式存储,尤其涉及一种分布式存储自动化性能测试方法及装置。
背景技术:
1、分布式存储集群将数据分散存储在多台独立的服务器上,每台服务器都能够提供数据读写服务。分布式存储集群对外能够提供的最大性能,主要受限于网络带宽,服务器硬盘的读写能力,cpu/内存的硬件性能,以及存储软件对硬件资源的利用情况。而客户真实环境上的业务压力,对分布式存储集群的性能才是真正的考验。因此,获取分布式存储集群的实际极限性能值成为评估能否承担线上突发业务的关键指标。
2、分布式存储形态的多样性对性能测试的及时性和数据准确性提出了更高的要求。
3、现有的性能测试工具虽然能够测试分布式存储的性能,但是需要安装部署很多第三方依赖,尤其是在安全级别要求很高的内网环境,带来很多的不便;而且传统的性能测试,针对不同的存储类型,需要进行繁琐的人工配置和手动切换测试工具,不仅耗时而且测试数据不够直观,同时反复的手动修改配置也会带来测试数据的不准确性,进而会导致运维人员无法准确的评估业务压力突增情况下集群的稳定性和可靠性。因此,适用性强,快速高效,准确直观的性能测试工具成为需要解决的问题。
技术实现思路
1、鉴于以上现有技术的不足,发明的目的在于提供一种分布式存储自动化性能测试方法及装置,能够适用于分布式块、文件和对象存储,内外网环境均可执行,无需繁琐的配置工作,使得分布式存储性能测试能够更好更快地执行,提高了分布式存储性能测试的效率,能够准确的获取到待上线的分布式存储集群在不同存储形态下的极限性能值,避免线上存储集群因为突增的业务压力导致集群故障,提高运维人员的业务响应能力。
2、本发明的第一方面,提出了一种分布式存储自动化性能测试方法,包括:
3、s1,自动下载测试工具套件,编辑client_config.yml文件,指定节点信息,并编辑all_cases.yml文件,指定io模型;
4、s2,获取目标存储类型,将所述节点信息和所述io模型解析成要求的测试配置,生成cosbench配置文件和vdbench配置文件,将测试工具和对应的配置文件传输到客户端指定目录下;
5、s3,跳板机开始执行性能测试,监控客户端io工具运行状态,并收集dn节点硬件性能数据;
6、s4,在性能测试结束之后,收集性能测试数据;
7、s5,计算分析所述性能测试数据。
8、进一步地,s1中自动下载测试工具套件,编辑client_config.yml文件,指定节点信息,并编辑all_cases.yml文件,指定io模型具体包括以下步骤:
9、s101,从工具库自动下载测试工具套件;
10、s102,编辑client_config.yml文件,指定不同的存储类型对应的节点信息;
11、s103,编辑all_cases.yml文件,指定不同的存储类型对应的io模型。
12、进一步地,所述节点信息,包括pxy节点、dn节点、gw节点和其他必要的字段信息;所述io模型,包括io大小、读写模型和读写比例。
13、进一步地,s2中获取目标存储类型,将所述节点信息和所述io模型解析成要求的测试配置,生成cosbench配置文件和vdbench配置文件,将测试工具和对应的配置文件传输到客户端指定目录下具体包括以下步骤:
14、s201,读取指定的配置文件,获取目标存储类型;
15、s202,进行对象存储,脚本指定存储桶数量、对象数量、并发数量和对象用户名,生成cosbench配置文件;
16、s203,进行块/文件存储,脚本指定客户端数量和rbd卷数量,生成vdbench配置文件;
17、s204,将测试工具和对应的配置文件传输到客户端指定目录下。
18、进一步地,所述对象存储的测试工具为cosbench,需要指定存储类型为object;所述块/文件存储的测试工具为vdbench,需要指定存储类型为block或者file。
19、进一步地,s3中跳板机开始执行性能测试,监控客户端io工具运行状态,并收集dn节点硬件性能数据具体包括以下步骤:
20、s301,选择dn节点创建测试资源;
21、s302,跳板机发送指令开始执行性能测试;
22、s303,多线程并发执行收集dn节点硬件性能数据;
23、s304,持续监控和输出客户端io工具运行状态。
24、进一步地,所述dn节点硬件性能数据包括存储客户端和存储节点的cpu、内存和网络资源利用状态数据。
25、进一步地,s4中在性能测试结束之后,收集性能测试数据具体包括以下步骤:
26、s401,判断测试是否正常结束;
27、s402,在测试正常结束时,收集dn节点性能数据;
28、s403,在测试正常结束时,收集客户端性能测试结果。
29、进一步地,s5中计算分析所述性能测试数据具体包括以下步骤:
30、记录测试io模型:集群iops/带宽/时延;
31、根据需求生成图表。
32、本发明的第二方面,提出了一种分布式存储自动化性能测试方法及装置,所述装置包括基础配置模块、配置解析模块、性能监控模块、数据收集模块和结果计算模块,其中:
33、基础配置模块,用于自动下载测试工具套件,编辑client_config.yml文件,指定节点信息,并编辑all_cases.yml文件,指定io模型;
34、配置解析模块,用于获取目标存储类型,将所述节点信息和所述io模型解析成要求的测试配置,生成cosbench配置文件和vdbench配置文件,将测试工具和对应的配置文件传输到客户端指定目录下;
35、性能监控模块,用于跳板机开始执行性能测试,监控客户端io工具运行状态,并收集dn节点硬件性能数据;
36、数据收集模块,用于在性能测试结束之后,收集性能测试数据;
37、结果计算模块,用于计算分析所述性能测试数据。
38、本发明有益效果如下:
39、(1)本发明适用性强:能够广泛适用于分布式块存储、文件存储和对象存储的性能测试;
40、(2)本发明配置简单,无需频繁的修改测试配置文件,稳定性高;
41、(3)本发明集成度高的性能测试框架,可以提高分布式存储性能测试的效率,准确收集集群的最大性能指标和最佳配置;
42、(4)本发明能够通过快速启动执行,及时得到极限性能数据,给运维人员提供数据支撑,运维人员能够根据线上实际业务的压力及时调整业务策略。
1.一种分布式存储自动化性能测试方法,其特征在于,包括:
2.根据权利要求1所述的一种分布式存储自动化性能测试方法,其特征在于,s1中自动下载测试工具套件,编辑client_config.yml文件,指定节点信息,并编辑all_cases.yml文件,指定io模型具体包括以下步骤:
3.根据权利要求2所述的一种分布式存储自动化性能测试方法,其特征在于,所述节点信息,包括pxy节点、dn节点、gw节点和其他必要的字段信息;所述io模型,包括io大小、读写模型和读写比例。
4.根据权利要求1所述的一种分布式存储自动化性能测试方法,其特征在于,s2中获取目标存储类型,将所述节点信息和所述io模型解析成要求的测试配置,生成cosbench配置文件和vdbench配置文件,将测试工具和对应的配置文件传输到客户端指定目录下具体包括以下步骤:
5.根据权利要求4所述的一种分布式存储自动化性能测试方法,其特征在于,所述对象存储的测试工具为cosbench,需要指定存储类型为object;所述块/文件存储的测试工具为vdbench,需要指定存储类型为block或者file。
6.根据权利要求1所述的一种分布式存储自动化性能测试方法,其特征在于,s3中跳板机开始执行性能测试,监控客户端io工具运行状态,并收集dn节点硬件性能数据具体包括以下步骤:
7.根据权利要求6所述的一种分布式存储自动化性能测试方法,其特征在于,所述dn节点硬件性能数据包括存储客户端和存储节点的cpu、内存和网络资源利用状态数据。
8.根据权利要求1所述的一种分布式存储自动化性能测试方法,其特征在于,s4中在性能测试结束之后,收集性能测试数据具体包括以下步骤:
9.根据权利要求1所述的一种分布式存储自动化性能测试方法,其特征在于,s5中计算分析所述性能测试数据具体包括以下步骤:
10.一种分布式存储自动化性能测试方法及装置,其特征在于,所述装置包括基础配置模块、配置解析模块、性能监控模块、数据收集模块和结果计算模块,其中: