CN115048254B - 数据分配策略的仿真测试方法、系统、设备和可读介质 - Google Patents
数据分配策略的仿真测试方法、系统、设备和可读介质 Download PDFInfo
- Publication number
- CN115048254B CN115048254B CN202210808199.5A CN202210808199A CN115048254B CN 115048254 B CN115048254 B CN 115048254B CN 202210808199 A CN202210808199 A CN 202210808199A CN 115048254 B CN115048254 B CN 115048254B
- Authority
- CN
- China
- Prior art keywords
- operation instruction
- simulation
- replica
- copy
- data distribution
- 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.)
- Active
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 157
- 238000009826 distribution Methods 0.000 title claims abstract description 93
- 238000010998 test method Methods 0.000 title claims abstract description 23
- 238000012360 testing method Methods 0.000 claims abstract description 97
- 238000000034 method Methods 0.000 claims abstract description 24
- 238000004364 calculation method Methods 0.000 claims abstract description 7
- 238000012800 visualization Methods 0.000 claims abstract description 7
- 238000003860 storage Methods 0.000 claims description 52
- 238000012545 processing Methods 0.000 claims description 18
- 230000000007 visual effect Effects 0.000 claims description 7
- 238000011056 performance test Methods 0.000 claims description 6
- 230000004927 fusion Effects 0.000 claims description 5
- 238000012216 screening Methods 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 19
- 238000013508 migration Methods 0.000 description 10
- 230000005012 migration Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000013507 mapping Methods 0.000 description 7
- 238000012217 deletion Methods 0.000 description 6
- 230000037430 deletion Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 238000004040 coloring Methods 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3414—Workload generation, e.g. scripts, playback
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种数据分配策略的仿真测试方法、系统、设备和可读介质。其中,该种数据分配策略的仿真测试方法包括:用户根据测试场景的业务需求预设操作指令列表,根据操作指令列表的操作指令更新集群模拟状态信息,并且依据更新后的模拟集群状态信息获取副本操作指令集合,根据副本操作指令集合进一步更新数据副本分配,通过仿真计算获取数据分配策略的仿真测试结果,并通过图形化程序实现仿真测试结果的可视化。通过本申请提出的技术方案使得数据分配策略的仿真测试无需依赖真实的模拟机集群,可以通过用户预设的操作指令列表构造出期望的业务场景,副本分配策略的更新无需等待副本分配任务完成,仿真测试效率提升,测试场景的多样性增加。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据分配策略的仿真测试方法、系统、设备和可读介质。
背景技术
在分布式存储系统中,副本分配功能由副本分配服务提供,副本分配服务根据预设的副本分配策略完成副本分配,副本分配的结果将会对于整个分布式文件系统的读写性能产生重要的影响,副本分配服务本身需要综合采集集群中各个物理服务器的运行状态,包括CPU使用率,内存使用率,磁盘的健康状态,存储系统的IO压力,剩余的磁盘空间大小等等综合考虑之后确定每个新的数据块的各个副本放置位置,在整个集群中的物理状态发生变化之后,例如有新的物理服务器加入集群,节点拓扑位置变化等等状态来动态的调整数据块的副本放置位置,当对副本分配策略进行更新迭代时,需要测试验证其正确性和性能。
于现有技术中,对副本分配服务的测试和验证是基于真实系统进行的,首先需要使用若干台服务器搭建超融合集群,然后再逐个节点操作,构造测试场景需要的网络负载情况、存储负载情况等前提条件,基于真实的超融合系统测试时,由于副本分配本身耗时较长,等待副本分配策略运行需要耗费一定的时间,当副本分配任务进行时,为了不影响集群的正常运行会限制副本分配任务占用计算资源的比例,待整个过程完成后才能收集日志进行分析,要等待这些副本分配任务完成需要耗费较长的时间,测试时间成本较高。
进一步地,而且在副本分配策略的更新迭代时,需要频繁进行测试,所以往往只能选取少量的测试用例进行测试,要构造特定的测试场景往往需要经过复杂的操作,例如测试场景中需要一个存储空间占用90%的节点,需要使用在节点上写入填充数据直到节点磁盘占用达到90%,这个操作需要消耗大量时间,且每次运行测试均需要耗费时间构造测试场景,测试场景越复杂耗费在场景构建的时间就越多,测试完成后还需要复原测试环境以便构造新的场景进行下一项测试,需要花费很多的时间准备测试环境,难以保证测试足够充分,真实系统中需要通过其他软件组件与副本分配服务交互,整个流程中无可避免会受到很多不相关因素的干扰,通过真实系统展示时,构造各种典型场景往往比较复杂耗时且会占用较多计算资源。
发明内容
根据现有技术中数据块副本分配策略的仿真依赖于真实的超融合系统,测试场景构建复杂,测试用例数量较少难以保证测试充分,真实系统中需要通过其他软件组件与副本分配服务交互,整个流程中无可避免会受到很多不相关因素的干扰等缺陷,本发明提供一种数据分配策略的仿真测试方法、系统、设备和可读介质。
在本申请的第一方面提供了数据分配策略的仿真测试方法,具体包括:
根据测试场景预设操作指令列表,操作指令列表包括按预设逻辑时间排序的若干个操作指令;
接收操作指令列表,根据操作指令列表更新集群模拟状态信息;
通过集群模拟状态信息调整副本分配服务的分配参数,根据分配参数生成副本操作指令集合,副本操作指令集合按照预设缓存规则存储为若干个副本操作指令队列;
遍历副本操作指令集合中的副本操作指令队列,获取执行副本操作指令的操作结果;
根据操作结果,计算超融合系统中数据分配策略的仿真测试结果。
在上述第一方面的一种可能的实现中,于该种数据分配策略的仿真测试方法中,根据测试场景预设操作指令列表包括:
获取测试场景的业务需求,业务需求至少包括测试主题;
根据测试主题预设操作指令列表。
在上述第一方面的一种可能的实现中,于该种数据分配策略的仿真测试方法中,根据操作指令列表的指令参数更新集群模拟状态信息包括:
将操作指令列表的事件指令输入用于模拟物理机集群的仿真模块中;
根据仿真模块的输出更新集群模拟状态信息;
其中,仿真模块至少包括:元数据仿真模块、网络拓扑仿真模块、存储节点仿真模块的一个或者多个。
在上述第一方面的一种可能的实现中,于该种数据分配策略的仿真测试方法中,副本操作指令集合按照预设缓存规则存储包括:
将副本操作指令集合分类,将同一类别的副本操作指令集合按照指令生成时间排序、存储。
在上述第一方面的一种可能的实现中,于该种数据分配策略的仿真测试方法中,遍历副本操作指令集合中的副本操作指令队列,获取执行副本操作指令的操作结果包括:
遍历从副本操作指令集合中选择副本操作指令队列,取出副本操作指令队列的队首副本操作指令执行指令预提交;
在指令预提交成功的情况下,依次执行副本操作指令队列,获取执行副本操作指令的操作结果。
在上述第一方面的一种可能的实现中,于该种数据分配策略的仿真测试方法中,指令预提交成功的情况包括:
在指令预提交完成的情况下,集群模拟状态信息更新对应为超融合系统的性能测试指标
在超融合系统的性能测试指标满足预设指标条件的情况下,指令预提交完成。
在上述第一方面的一种可能的实现中,于该种数据分配策略的仿真测试方法中,的方法还包括:通过可视化方式显示数据分配策略对应的仿真测试结果;根据仿真测试结果筛选满足业务需求的数据分配策略。
在上述第一方面的一种可能的实现中,于该种数据分配策略的仿真测试方法中,显示数据分配策略的仿真测试结果至少包括:
显示节点网络结构、虚拟磁盘副本分布列表、节点存储负载列表的一个或者多个。
本申请的第二方面提供了一种数据分配策略的仿真测试系统,该仿真测试系统具体包括:
预设单元,用于根据测试场景预设操作指令列表,操作指令列表包括按预设逻辑时间排序的若干个操作指令;
处理单元,用于接收操作指令列表,根据操作指令列表更新集群模拟状态信息;
指令生成单元,用于通过集群模拟状态信息调整副本分配服务的分配参数,根据分配参数生成副本操作指令集合,副本操作指令集合按照预设缓存规则存储为若干个副本操作指令队列;
指令操作单元,用于遍历副本操作指令集合中的副本操作指令队列,获取执行副本操作指令的操作结果;
仿真计算单元,用于根据操作结果,计算超融合系统中数据分配策略的仿真测试结果。
在上述第二方面的一种实现方式中,于该种数据分配策略的仿真测试系统中还包括:
可视化单元,用于通过可视化方式显示数据分配策略对应的仿真测试结果。
本申请的第三方面提供了一种电子设备,包括:
存储器,存储器用于存储处理程序;
处理器,处理器执行处理程序时实现前述第一方面所提供的数据分配策略的仿真测试方法。
本申请的第四方面提供了一种可读存储介质,该种可读存储介质上存储有处理程序,处理程序被处理器执行时实现前述第一方面所提供的数据分配策略的仿真测试方法。
与现有技术相比,本申请具有如下的有益效果:
1、本发明通过设计实现超融合块存储系统的集群模拟状态信息,使得调整副本分配策略时可以先在超融合系统多个仿真模块构成的仿真系统上进行测试验证,在测试时依赖于用于预设操作指令列表、集群模拟状态及副本操作指令集合,可以通过用户预设的操作指令列表构造出期望的业务场景,增加测试场景的多样性。
2、根据用户预设的操作指令列表,实现副本分配策略的更新无需等待副本分配任务完成,依据操作指令集合和副本操作指令集合的指令逻辑执行时间依次实现副本分配策略的更新,使得仿真测试速度大大提升。
3、副本分配策略的仿真测试结果通过基于时间序列变化的图表展示,使得用户可以更直观地理解副本分配策略的运作过程,为副本分配策略的选择提供参考,提升了开发效率,便于应用于技术演示等场景。
附图说明
图1根据本申请的实施例,示出了一种数据分配策略的仿真测试方法流程示意图;
图2根据本申请的实施例,示出了一种节点网络拓扑分布示意图;
图3根据本申请的实施例,示出了一种不同节点在不同时刻的节点负载展示的示意图;
图4根据本申请的实施例,示出了一种不同节点在不同时刻的节点负载展示的示意图;
图5根据本申请的实施例,示出了一种虚拟磁盘副本分布展示示意图;
图6根据本申请的实施例,示出了一种数据分配策略的仿真测试系统。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
为了解决现有技术中对副本分配服务的测试和验证是基于真实系统进行,导致真实系统选取少量的测试用例进行测试,难以保证测试足够充分,且通过真实系统展示时,构造各种典型场景往往比较复杂耗时且会占用较多计算资源等缺陷,本申请提出了一种数据分配策略的仿真测试方法、系统、设备和可读介质。
基于仿真真实系统实现数据分配策略的仿真测试,具体地,如图1所示,根据本申请的实施例,示出了一种数据分配策略的仿真测试方法流程示意图,具体包括:
步骤100:根据测试场景预设操作指令列表,所述操作指令列表包括按预设逻辑时间排序的若干个操作指令。可以理解的是,在超融合系统实现数据块副本的合理分配依赖于超融合系统的运行性能,仿真测试的实现依赖于用户输入的操作指令,该操作指令可以根据指令执行的逻辑时间排序形成一个操作指令列表,通过该操作指令列表的内容进而实现对数据分配策略的仿真测试。
步骤200:接收所述操作指令列表,根据所述操作指令列表更新集群模拟状态信息。可以理解的是,操作指令列表的执行依赖于接收的任何一个合法输入的操作指令,并对应得更新数据分配服务依赖的集群物理环境。
于本申请的一些实施例中,集群模拟状态信息无需基于需要使用若干台服务器搭建超融合集群,通过可以代表真实物理机集群中各个物理服务器的运行状态的集群模拟状态信息获取包括CPU使用率,内存使用率,磁盘的健康状态,存储系统的IO压力,剩余的磁盘空间大小等物理状态信息。
步骤300:通过所述集群模拟状态信息调整副本分配服务的分配参数,根据所述分配参数生成副本操作指令集合,所述副本操作指令集合按照预设缓存规则存储为若干个副本操作指令队列。可以理解的是,在分布式块存储系统中,一个文件被划分为若干个数据块存储在多个存储节点上,为减少数据丢失的概率,一个数据块对应多个数据块副本保存在不同的集群节点上,数据块副本的分配依赖于副本分配服务,副本分配服务依赖的副本分配策略受到超融合系统的系统性能影响,副本分配的最终结果将会影响整个超融合系统的读写性能,副本分配的分配策略的更新依赖于用户的操作指令列表咬合副本操作指令结合,集群模拟状态信息依赖于用户操作指令列表的指令更新,每收到一个操作指令,在对应的集群模拟状态更新完成后,集群模拟状态以及指令参数与副本服务进行交互,将会得到一个副本操作指令集合作为返回,该副本操作指令至少包括了副本块分配、副本块删除、副本块迁移等副本操作指令。
于本申请的一些实施例中,副本操作指令指明了副本块所属的数据块ID,以及其目标存储节点ID。
于本申请的一些实施例中,依据副本操作指令计算CPU使用率和内存使用率,副本操作指令受到节点上虚拟机运行负载和副本分配、副本移除操作数量的影响。其中,副本分配、副本移除操作数量对CPU占用和内存占用的影响通过对实验测量获得,首先测得节点一分钟内的平均CPU负载为CPU_usage_1,内存一分钟内的平均负载为Memory_usage_1;然后在节点上以每秒N次的频率发送副本分配指令,记下一分钟内的平均CPU负载为CPU_usage_2和内存平均负载为Memory_usage_2;接下来停止发送副本分配指令,以每秒N次的频率发送副本回收指令,记下一分钟内的平均CPU负载为CPU_usage_3和内存平均负载为Memory_usage_3:
其中,每个副本分配CPU负载=(CPU_usage_2-CPU_usage_1)/N;每个副本回收CPU负载=(CPU_usage_3-CPU_usage_1)/N;每个副本分配内存负载=(Memory_usage_2-Memory_usage_1)/N;每个副本分配内存负载=(Memory_usage_3-Memory_usage_1)/N
其中,因此每秒钟的CPU负载和内存负载:CPU负载=rand_uniform[0,100]%+每个副本回收CPU负载*一秒内回收副本数量+每个副本分配CPU负载*一秒内分配副本数量;内存负载=rand_uniform[0,100]%+每个副本回收内存负载*一秒内回收副本数量+每个副本分配内存负载*一秒内分配副本数量,rand_uniform[0,100]代表从0到100中按照均匀分布任意选择一个浮点数。
步骤400:遍历所述副本操作指令集合中的所述副本操作指令队列,获取执行所述副本操作指令的操作结果。可以理解的是,在接收到副本操作指令后,对于影响数据块副本分配策略的元数据仿真模块、存储节点仿真模块、网络拓扑仿真模块将会根据副本操作指令进行更新元数据仿真模块、存储节点仿真模块、网络拓扑仿真模块的数据,进而更新数据块副本的分配策略。
于本申请的一些实施例中,对于数据块副本删除指令、数据块副本分配指令、副本块迁移指令更新元数据仿真模块的数据块与副本块映射表,然后将副本操作指令传给存储节点仿真模块,更新相应节点的剩余存储空间,CPU占用数据,内存占用数据。
于本申请的一些实施例中,副本块迁移、副本块分配指令指明了副本块所属的数据块ID,其所属存储节点ID以及其目标节点ID。
于本申请的一些实施例中,对于副本块迁移指令,若副本块迁移无法在一秒内传送到目标节点,而两个节点之间的网络负载并未到达100%,若副本块大小为M Byte,网络带宽余量为N Byte/s,那么将迁移指令拆分为大小为N Byte和(M-N)Byte的两条迁移指令,提交大小为N的迁移指令,并将另一个迁移指令放回相应队列头部,然后将已经提交的指令传给存储节点仿真模块,更新相应节点的剩余存储空间,CPU占用数据,内存占用数据,元数据保持不变。
于上述步骤400中,遍历所述副本操作指令集合中的所述副本操作指令队列,获取执行所述副本操作指令的操作结果包括:遍历从所述副本操作指令集合中选择所述副本操作指令队列,取出所述副本操作指令队列的队首副本操作指令执行指令预提交;在所述指令预提交成功的情况下,依次执行所述副本操作指令队列,获取执行所述副本操作指令的操作结果。可以理解的是,副本操作指令队列包括多种待执行的数据块操作副本,按照执行的逻辑时间顺序选取一个队列,取出该队列的队头的指令进入预提交阶段。
具体地,所述指令预提交成功的情况包括:在所述指令预提交完成的情况下,集群模拟状态信息更新对应为超融合系统的性能测试指标;在所述超融合系统的性能测试指标满足预设指标条件的情况下,所述指令预提交完成。可以理解的是,其中判断指令可以提交的标准包括CPU负载,内存负载,任意两个网络节点之间的负载均未超过100%,磁盘读写带宽均未超过节点速率上限等。
于本申请的一些实施例中,指令预提交未成功时,该副本操作指令回滚,恢复指令预提交前的集群模拟状态或者仿真状态,将指令返回相应缓存队列的头部。
步骤500:根据所述操作结果,计算超融合系统中所述数据分配策略的仿真测试结果。可以理解的是,副本分配策略的仿真依赖于根据用户预设的操作指令列表更新元数据仿真模块、存储节点仿真模块、网络拓扑仿真模块的集群模拟状态以及副本操作指令集合共同实现数据分配策略的仿真计算,该仿真计算的结果基于模拟机的集群模拟状态实时反映对副本分配服务的测试和验证。
于上述步骤100中,根据测试场景预设操作指令列表包括:获取所述测试场景的业务需求,所述业务需求至少包括测试主题;根据所述测试主题预设所述操作指令列表。可以理解的是,于超融合系统的数据分配策略中,需要执行仿真测试的指令操作至少包括:数据块分配、数据块删除、新节点的加入、网络拓扑位置的更新等。
于本申请的一些实施例中,操作指令列表中每一个操作指令都可以包含其执行的逻辑时间、测试主题、指令参数等。
具体地,“数据块分配”的操作指令列表中包括的内容名称为“数据块分配”的测试主题、以及数据块ID、数据块所属的虚拟磁盘,对应的虚拟机所在节点的ID等的指令参数。
具体地,“数据块删除”的操作指令列表中包括名称为“数据块删除”的测试主题、以及数据块ID、数据块所属的虚拟磁盘,对应的虚拟机所在节点的ID等的指令参数。
具体地,“新节点加入”的操作指令列表中包括名称为“新节点加入”的测试主题,以及节点ID、下一条网络节点ID、与下一跳之间的网络速率,机箱ID,机柜ID,磁盘空间大小等指令参数。
具体地,“拓扑位置更新”的操作指令列表包括名称为“拓扑位置更新”的测试主题,以及有节点ID,新拓扑位置信息具体包括机箱ID,机架ID等。
于上述步骤200中,根据所述操作指令列表的指令参数更新集群模拟状态信息包括:将所述操作指令列表的事件指令输入用于模拟物理机集群的仿真模块中;根据所述仿真模块的输出更新所述集群模拟状态信息。其中,所述仿真模块至少包括:元数据仿真模块、网络拓扑仿真模块、存储节点仿真模块的一个或者多个。可以理解的是,用户预设的操作指令列表的指令参数相应地更新超融合系统集群的集群模拟状态信息,该集群模拟状态信息通过用于模拟物理机集群的仿真模块实现,该仿真模块的更新可以映射至副本分配依赖的物理环境信息。
于本申请的一些实施例中,元数据仿真模块中以哈希表的形式存储有虚拟磁盘ID与数据块ID的映射关系、虚拟机与虚拟机所属集群节点的映射关系、数据块副本与数据块的映射关系、数据块副本与其所在节点的映射关系,通过其映射关系可以实现数据块、数据块副本、副本所在的节点、虚拟机所在的节点的位置查询。
于本申请的一些实施例中,存储节点仿真模块对于接收的操作指令实时响应,用于维护包括CPU使用率,内存使用率,剩余的磁盘空间大小,节点磁盘读写速率上限,节点的拓扑位置等集群模拟状态信息,影响副本分配服务的参数。
其中,虚拟机运行的负载可以看成是随机事件,可以认为其在0%-100%之间随机分布。
具体地,剩余的磁盘空间大小由一个浮点数表示,单位是Byte,在节点被加入时会依据指令参数被初始化。
具体地,节点磁盘读写速率上限由两个浮点数表示,单位是Byte/s,在节点被加入时会依据指令参数被初始化。
具体地,节点的拓扑位置包含机架ID,机箱ID,机箱、机架、节点之间映射关系由哈希表表示,通过机架ID可以查询到机架上的机箱集合,通过机箱ID可以查询到机箱内的集群节点集合。
于本申请的一些实施例中,CPU使用率和内存使用率受到节点上虚拟机运行负载和数据块副本的分配、数据块副本的移除等操作数量的影响,数据块副本分配或移除操作等数量的多少对CPU占用和内存占用产生一定的影响,关于数据块副本分配或者移除的副本操作指令于用户预设的操作指令集合相关,将在下述执行数据块副本操作指令时进行详细说明。
于本申请的一些实施例中,网络拓扑仿真模块内部配置了存储节点之间的网络拓扑结构,该拓扑结构由存储节点、网络中继节点以及相连的边构成,使用无向图表示并存储,具体配置方法可以通过存储节点和网络中继节点在无向图中用顶点表示,任意两个直接相连的顶点则用一条两个顶点之间的边表示,边上配置两个顶点之间的网络速率限制来实现,该无向图的每条边维护一个实时速率值。
于上述步骤300中,所述副本操作指令集合按照预设缓存规则存储包括:将所述副本操作指令集合分类,将同一类别的所述副本操作指令集合按照指令生成时间排序、存储。可以理解的是,副本操作指令至少包括对数据块副本按照数据块副本的编辑类型划分为副本块分配、副本块删除、副本块迁移等指令队列,该副本操作指令集合,将每一条指令插入相应缓存队列的尾部,进行存储。
于本申请的一些实施例中,还包括通过可视化方式显示数据分配策略对应的仿真测试结果;根据仿真测试结果筛选满足业务需求的数据分配策略。。其中,可视化显示仿真测试结果具体包括可视化的方式显示显示节点网络结构、虚拟磁盘副本分布列表、节点存储负载列表的一个或者多个,其不同的数据分配策略对应的仿真测试结果各不相同,根据用户输入的操作指令,数据分配策略适应性地调整,当输入副本分配策略不断更新迭代的情况下,频繁的用例测试包括用户操作指令的输入对数据分配策略的影响,计算获取的对应的仿真测试结果包括不同时刻下对应不同节点负载容量的占有情况,虚拟磁盘的副本列表、网络拓扑中不同负载网络分布情况等,可以通过直观地可视化的形式展现。
于本申请的一些实施例中,网络负载情况可以先通过图形化库程序,绘制出网络拓扑仿真模块中的网络结构,对于每两个网络节点之间关系展示,数据传输速率的上限以及数据传输的实时速率大小展示,使得数据分配策略的仿真结果对应的的不同节点网络结构关系,以及不同节点的数据传输速率通过可视化的形式展示,为用户的数据分配策略的选择原则提供了更为直观可靠的方式。
具体地,如图2所示,根据本申请的实施例,示出了节点网络拓扑分布示意图。该图形化显示着色方式可以为热力图着色的方式实现,生成的网络负载图以“network_load+时间戳”的形式命名保存至文件系统中,对应不同选择不同节点本领域技术人员也可以着色需求和后续文件查看需求,选择合适的着色方式、存储方式、位置和名称,在此不做限定。
于本申请的一些实施例中,节点存储负载情况通过图形化库程序,绘制出存储节点仿真模块中每个存储节点的存储空间占用情况。
于本申请的一些实施例中,如图3和图4所示,示出了不同节点在不同时刻的节点负载展示的示意图,该图为每一个存储节点存储不同的不同数据块副本,其对应的数据分配策略随着用户操作指令输入,仿真模块仿真对应的数据分配策略在不同时刻、不同节点数量等情况下,动态变化,其中对于每一个矩形条,存储节点空间占用率X%随着数据分配策略的不同实时变化,针对不同时刻的不同节点获取的节点存储负载占有率的图通过图形列表的形式展示,可以直观地展示当前用户操作指令对应的数据分配策略下数据分配形成的节点负载容量的变,其用户操作指令及其副本操作指令等使得数据分配策略不断调整。
于本申请的一些实施例中,直观的图形获取可以筛选出满足实现数据分配策略最佳的数据分配方案实现,例如通过数据分析分配策略的调整使得副本分配服务达到负载分配均衡、资源利用率最优化等。
于本申请的一些实施例中,不同节点不同时刻的负载资源占有情况的文件,以“node_load+时间戳”的形式命名保存至文件系统中,实现不同时刻不同节点的负载节点资源占有率的情况,本领域技术人员也可以根据后续文件查看需求,选择合适文件存储方式、位置和名称,在此不做限定。
于本申请的一些实施例中,虚拟磁盘中数据块副本分布情况通过图形化库程序展示。具体地,如图5所示根据本申请的实施例,示出了一种虚拟磁盘副本分布展示示意图。,使用快速排序算法依据机箱编号对不同的存储节点进行第一趟排序、依据机机柜号对存储节点进行第二趟排序,经过两趟快速排序之后,可以保证位于同一个机箱的节点处于连续的位置上,位于同一机架的节点处于连续的位置上;对于每一个节点,若其保存的副本块包括的若干个数据块副本占据的磁盘容量,拟磁盘所属虚拟机对应的节点可以通过不同的标记实现,通过该种可视化的形式直观展示不同分配策略下的不同虚拟磁盘中数据块副本分布情况。
于本申请的一些实施例中,根据可视化显示的数据副本的分布情况,对应地在仿真模块中调整数据分配策略,选择满足业务需求的数据分配策略保证数据块副本的最优化。
于本申请的一些实施例中,不同时刻的每一张生成的虚拟磁盘副本分布图以“volume_ID_distribution+时间戳”的形式命名保存至文件系统中,本本领域技术人员也可以根据后续文件查看需求,选择合适文件存储方式、位置和名称,在此不做限定。
在本申请的一些实施例中,图6示出了一种数据分配策略的仿真测试系统,应用于前述实施例所提供的数据分配策略的仿真测试方法中,该种数据分配策略的仿真测试系统具体可以包括:
预设单元1,用于根据测试场景预设操作指令列表,所述操作指令列表包括按预设逻辑时间排序的若干个操作指令;
处理单元2,用于接收所述操作指令列表,根据所述操作指令列表更新集群模拟状态信息;
指令生成单元3,用于通过所述集群模拟状态信息调整副本分配服务的分配参数,根据所述分配参数生成副本操作指令集合,所述副本操作指令集合按照预设缓存规则存储为若干个副本操作指令队列;
指令操作单元4,用于遍历所述副本操作指令集合中的所述副本操作指令队列,获取执行所述副本操作指令的操作结果;
仿真计算单元5,用于根据所述操作结果,计算超融合系统中所述数据分配策略的仿真测试结果。
可视化单元6,用于通过可视化方式显示数据分配策略对应的仿真测试结果。
可以理解的是,上述数据分配策略的仿真测试系统各个功能模块执行与前述数据分配策略的仿真测试方法相同的步骤流程,在此不做赘述。
于本申请的一些实施例中,还提供了一种电子设备。该种电子设备中包含存储器和处理器,其中存储器用于对处理程序进行存储,处理器则根据指令对处理程序进行执行。当处理器对处理程序进行执行时,使得前述实施例中的数据分配策略的仿真测试方法得以实现。
本申请提出的技术方案涉及方法、装置、系统、电子设备、计算机可读存储介质和/或计算机程序产品。计算机程序产品可以包括用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (12)
1.一种数据分配策略的仿真测试方法,其特征在于,所述的方法包括:
根据测试场景预设操作指令列表,所述操作指令列表包括按预设逻辑时间排序的若干个操作指令;
接收所述操作指令列表,根据所述操作指令列表更新集群模拟状态信息;
通过所述集群模拟状态信息调整副本分配服务的分配参数,根据所述分配参数生成副本操作指令集合,所述副本操作指令集合按照预设缓存规则存储为若干个副本操作指令队列;
遍历所述副本操作指令集合中的所述副本操作指令队列,获取执行所述副本操作指令的操作结果;
根据所述操作结果,计算超融合系统中所述数据分配策略的仿真测试结果。
2.根据权利要求1所述的一种数据分配策略的仿真测试方法,其特征在于,根据测试场景预设操作指令列表包括:
获取所述测试场景的业务需求,所述业务需求至少包括测试主题;
根据所述测试主题预设所述操作指令列表。
3.根据权利要求1所述的一种数据分配策略的仿真测试方法,其特征在于,根据所述操作指令列表更新集群模拟状态信息包括:
将所述操作指令列表的事件指令输入用于模拟物理机集群的仿真模块中;
根据所述仿真模块的输出更新所述集群模拟状态信息;
其中,所述仿真模块至少包括:元数据仿真模块、网络拓扑仿真模块、存储节点仿真模块的一个或者多个。
4.根据权利要求1所述的一种数据分配策略的仿真测试方法,其特征在于,所述副本操作指令集合按照预设缓存规则存储包括:
将所述副本操作指令集合分类,将同一类别的所述副本操作指令集合按照指令生成时间排序、存储。
5.根据权利要求1所述的一种数据分配策略的仿真测试方法,其特征在于,遍历所述副本操作指令集合中的所述副本操作指令队列,获取执行所述副本操作指令的操作结果包括:
遍历从所述副本操作指令集合中选择所述副本操作指令队列, 取出所述副本操作指令队列的队首副本操作指令执行指令预提交;
在所述指令预提交成功的情况下,依次执行所述副本操作指令队列,获取执行所述副本操作指令的操作结果。
6.根据权利要求5所述的一种数据分配策略的仿真测试方法,其特征在于,所述指令预提交成功的情况包括:
在所述指令预提交完成的情况下,集群模拟状态信息更新对应为超融合系统的性能测试指标;
在所述超融合系统的性能测试指标满足预设指标条件的情况下,所述指令预提交完成。
7.根据权利要求1所述的一种数据分配策略的仿真测试方法,其特征在于,所述的方法还包括:
通过可视化方式显示所述数据分配策略对应的仿真测试结果;
根据所述仿真测试结果筛选满足业务需求的所述数据分配策略。
8.根据权利要求7所述的一种数据分配策略的仿真测试方法,其特征在于,显示所述数据分配策略的仿真测试结果至少包括:
显示节点网络结构、虚拟磁盘副本分布列表、节点存储负载列表的一个或者多个。
9.一种数据分配策略的仿真测试系统,其特征在于,所述系统包括:
预设单元,用于根据测试场景预设操作指令列表,所述操作指令列表包括按预设逻辑时间排序的若干个操作指令;
处理单元,用于接收所述操作指令列表,根据所述操作指令列表更新集群模拟状态信息;
指令生成单元,用于通过所述集群模拟状态信息调整副本分配服务的分配参数,根据所述分配参数生成副本操作指令集合,所述副本操作指令集合按照预设缓存规则存储为若干个副本操作指令队列;
指令操作单元,用于遍历所述副本操作指令集合中的所述副本操作指令队列,获取执行所述副本操作指令的操作结果;
仿真计算单元,用于根据所述操作结果,计算超融合系统中所述数据分配策略的仿真测试结果。
10.根据权利要求9所述一种数据分配策略的仿真测试系统,其特征在于,所述系统还包括:
可视化单元,用于通过可视化方式显示所述数据分配策略对应的仿真测试结果。
11.一种电子设备,其特征在于,包括:
存储器,所述存储器用于存储处理程序;
处理器,所述处理器执行所述处理程序时实现如权利要求1至8中任意一项所述的数据分配策略的仿真测试方法。
12.一种可读存储介质,其特征在于,所述可读存储介质上存储有处理程序,所述处理程序被处理器执行时实现如权利要求1至8中任意一项所述的数据分配策略的仿真测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210808199.5A CN115048254B (zh) | 2022-07-11 | 2022-07-11 | 数据分配策略的仿真测试方法、系统、设备和可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210808199.5A CN115048254B (zh) | 2022-07-11 | 2022-07-11 | 数据分配策略的仿真测试方法、系统、设备和可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115048254A CN115048254A (zh) | 2022-09-13 |
CN115048254B true CN115048254B (zh) | 2022-12-09 |
Family
ID=83165454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210808199.5A Active CN115048254B (zh) | 2022-07-11 | 2022-07-11 | 数据分配策略的仿真测试方法、系统、设备和可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115048254B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115934670B (zh) * | 2023-03-09 | 2023-05-05 | 智者四海(北京)技术有限公司 | Hdfs多机房的副本放置策略验证方法与装置 |
CN116248699B (zh) * | 2023-03-14 | 2024-01-02 | 安超云软件有限公司 | 多副本场景下的数据读取方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10210073B1 (en) * | 2016-09-23 | 2019-02-19 | EMC IP Holding Company, LLC | Real time debugging of production replicated data with data obfuscation in a storage system |
CN111258871A (zh) * | 2020-01-19 | 2020-06-09 | 苏州浪潮智能科技有限公司 | 一种分布式文件系统的验证方法、装置、设备及存储介质 |
CN112148542A (zh) * | 2020-09-22 | 2020-12-29 | 江苏安超云软件有限公司 | 一种分布式存储集群的可靠性测试方法、装置及系统 |
CN113835616A (zh) * | 2020-06-23 | 2021-12-24 | 华为技术有限公司 | 应用的数据管理方法、系统和计算机设备 |
CN114003350A (zh) * | 2022-01-04 | 2022-02-01 | 北京志凌海纳科技有限公司 | 超融合系统的数据分配方法和系统 |
CN114281791A (zh) * | 2022-03-07 | 2022-04-05 | 阿里云计算有限公司 | 数据访问方法、系统、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10089180B2 (en) * | 2015-07-31 | 2018-10-02 | International Business Machines Corporation | Unfavorable storage growth rate abatement |
US11169895B2 (en) * | 2020-01-27 | 2021-11-09 | International Business Machines Corporation | Emulation latch to capture state |
-
2022
- 2022-07-11 CN CN202210808199.5A patent/CN115048254B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10210073B1 (en) * | 2016-09-23 | 2019-02-19 | EMC IP Holding Company, LLC | Real time debugging of production replicated data with data obfuscation in a storage system |
CN111258871A (zh) * | 2020-01-19 | 2020-06-09 | 苏州浪潮智能科技有限公司 | 一种分布式文件系统的验证方法、装置、设备及存储介质 |
CN113835616A (zh) * | 2020-06-23 | 2021-12-24 | 华为技术有限公司 | 应用的数据管理方法、系统和计算机设备 |
CN112148542A (zh) * | 2020-09-22 | 2020-12-29 | 江苏安超云软件有限公司 | 一种分布式存储集群的可靠性测试方法、装置及系统 |
CN114003350A (zh) * | 2022-01-04 | 2022-02-01 | 北京志凌海纳科技有限公司 | 超融合系统的数据分配方法和系统 |
CN114281791A (zh) * | 2022-03-07 | 2022-04-05 | 阿里云计算有限公司 | 数据访问方法、系统、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
超融合架构在数据中心的应用研究;吴海明;《现代信息科技》;20200910;第1-3页 * |
Also Published As
Publication number | Publication date |
---|---|
CN115048254A (zh) | 2022-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115048254B (zh) | 数据分配策略的仿真测试方法、系统、设备和可读介质 | |
CN108170612B (zh) | 一种自动化测试方法、装置及服务器 | |
US7899763B2 (en) | System, method and computer program product for evaluating a storage policy based on simulation | |
US20130191105A1 (en) | Virtual systems testing | |
US20160246516A1 (en) | Data Operation Method and Device | |
US20160140141A1 (en) | File lookup in a distributed file system | |
US11321318B2 (en) | Dynamic access paths | |
US9201897B1 (en) | Global data storage combining multiple back-end storage devices | |
CN111143039A (zh) | 一种虚拟机的调度方法、装置及计算机存储介质 | |
US10313457B2 (en) | Collaborative filtering in directed graph | |
CN115311399A (zh) | 图像渲染方法、装置、电子设备以及存储介质 | |
CN108833592A (zh) | 云主机调度器优化方法、装置、设备及存储介质 | |
WO2024160255A1 (zh) | 页面交互方法、装置、设备及存储介质 | |
CN110990356A (zh) | 一种用于逻辑镜像的实时自动扩容方法和系统 | |
CN105204782B (zh) | 一种实现数据存储的方法及装置 | |
CN113127430B (zh) | 镜像信息处理方法、装置、计算机可读介质及电子设备 | |
CN116126478B (zh) | 接口控制文档的生成方法、装置、设备及介质 | |
JP2008225686A (ja) | 分散型データ処理プラットフォームにおけるデータ配置管理装置と方法、システム及びプログラム | |
CN115202589B (zh) | 放置组成员选择方法、装置、设备及可读存储介质 | |
CN107894942B (zh) | 数据表访问量的监控方法和装置 | |
CN110554916B (zh) | 基于分布式集群的风险指标计算方法及装置 | |
CN114756301A (zh) | 日志处理方法、装置和系统 | |
CN114020214A (zh) | 存储集群的扩容方法、装置、电子设备及可读存储介质 | |
CN113869882A (zh) | 一种数据处理方法、装置、介质 | |
CN113760680A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 8b, building 1, No. 48, Zhichun Road, Haidian District, Beijing 100098 Patentee after: Beijing Zhiling Haina Technology Co.,Ltd. Country or region after: China Address before: 8b, building 1, No. 48, Zhichun Road, Haidian District, Beijing 100098 Patentee before: Beijing zhilinghaina Technology Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |