一种高密度存储设备测试方法、系统、终端及存储介质与流程

文档序号:21263839发布日期:2020-06-26 22:35阅读:181来源:国知局
一种高密度存储设备测试方法、系统、终端及存储介质与流程

本发明涉及存储技术领域,具体涉及一种高密度存储设备测试方法、系统、终端及存储介质。



背景技术:

目前我国的网络日益普及,云计算及大数据等新技术的大力发展,个人对数据备份、企业对数据平台等的需求,需要使用到大量的存储,尤其高密度存储设备,另外对存储设备的功能需求也日益多样化。高密度存储一般都是支持几十甚至几百个硬盘存储,硬盘在开机上电之后一般会有10几瓦功耗,如果全部硬盘上电需要几百瓦的功耗。随着市场需求的不断多样化,有时候用户并不需要同时使用这么多的存储硬盘,或者某些写满的硬盘可能一时也不再需要,这时如果有方法可以单独控制存储中每个硬盘的使用状态,例如针对不使用的硬盘对其进行深度睡眠,此时硬盘功耗可能还不到1瓦,针对要是用的硬盘再对其唤醒。这样既可以降低高密度存储控制节点的要求,可选配低功耗psu,又可以节省功耗,还能便于设备维护。

目前高密度节点只有在host端通过minisas线连接控制host端开机,高密度硬盘全部处于唤醒状态下,普通服务器硬盘功能的测试方法才能满足高密度存储的测试需求。但是现有测试方法无法实现对硬盘的深度睡眠和唤醒状态的切换设置,对于同一时间只使用部分甚至几块硬盘的高密度存储,现有测试方法无法覆盖到全盘测试。



技术实现要素:

针对现有技术的上述不足,本发明提供一种高密度存储设备测试方法、系统、终端及存储介质,以解决上述技术问题。

第一方面,本发明提供一种高密度存储设备测试方法,包括:

加载seachest工具并升级高密度存储设备的硬盘测试微码;

将高密度存储设备的硬盘分为多个硬盘组,并将所有硬盘利用seachest工具设置为深度睡眠状态;

选取一个硬盘组作为测试组,调用seachest工具将测试组硬盘设置为唤醒状态;

对测试组的唤醒状态硬盘执行fio测试;

轮循将所有硬盘组作为测试组,收集所有fio测试的测试日志。

进一步的,所述升级高密度存储设备的硬盘测试微码,包括:

利用seachest工具的firmware功能升级硬盘的测试微码;

遍历所有硬盘进行测试微码升级。

进一步的,所述方法还包括:

通过下发fio读写命令验证硬盘状态;

若硬盘返回命令执行失败提示则通过验证。

进一步的,所述方法还包括:

通过将seachest工具的powerchoice_static选项的下级选项transitionpower下的powermode参数项的状态值设置为standby,将硬盘状态设置为深度睡眠状态;

通过将seachest工具的powerchoice_static选项的下级选项transitionpower下的powermode参数项的状态值设置为idle,将硬盘状态设置为唤醒状态。

进一步的,所述对测试组的唤醒状态硬盘执行,包括:

采集测试组内的硬盘盘符;

将所述硬盘盘符导入fio测试命令;

设置fio测试命令的fio测试模块和测试日志存储地址。

第二方面,本发明提供一种高密度存储设备测试系统,包括:

工具加载单元,配置用于加载seachest工具并升级高密度存储设备的硬盘测试微码;

硬盘分组单元,配置用于将高密度存储设备的硬盘分为多个硬盘组,并将所有硬盘利用seachest工具设置为深度睡眠状态;

硬盘唤醒单元,配置用于选取一个硬盘组作为测试组,调用seachest工具将测试组硬盘设置为唤醒状态;

测试执行单元,配置用于对测试组的唤醒状态硬盘执行fio测试;

日志收集单元,配置用于轮循将所有硬盘组作为测试组,收集所有fio测试的测试日志。

进一步的,所述工具加载单元包括:

微码升级模块,配置用于利用seachest工具的firmware功能升级硬盘的测试微码;

升级遍历模块,配置用于遍历所有硬盘进行测试微码升级。

进一步的,所述系统还包括:

睡眠设置单元,配置用于通过将seachest工具的powerchoice_static选项的下级选项transitionpower下的powermode参数项的状态值设置为standby,将硬盘状态设置为深度睡眠状态;

唤醒设置单元,配置用于通过将seachest工具的powerchoice_static选项的下级选项transitionpower下的powermode参数项的状态值设置为idle,将硬盘状态设置为唤醒状态。

第三方面,提供一种终端,包括:

处理器、存储器,其中,

该存储器用于存储计算机程序,

该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。

第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

本发明的有益效果在于,

本发明提供的高密度存储设备测试方法、系统、终端及存储介质,通过seachest工具控制高密度存储设备的状态,即切换深度睡眠状态和唤醒状态,对唤醒状态的硬盘进行fio测试,在fio测试执行过程中令其他硬盘保持深度睡眠状态,直至对所有硬盘执行完fio测试。本发明针对较少硬盘运行,其他硬盘低功耗模式(深度睡眠模式)的高密度存储进行存储功能测试,实现自动化运行并自动保存测试log,弥补了目前高密度存储测试方法的不足,满足了客户特殊需求,提升产品竞争力。另外所有测试可以实现自动化运行,大大节省了人力和测试时间。

此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例的方法的示意性流程图。

图2是本发明一个实施例的系统的示意性框图。

图3为本发明实施例提供的一种终端的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种高密度存储设备测试系统。

如图1所示,该方法100包括:

步骤110,加载seachest工具并升级高密度存储设备的硬盘测试微码;

步骤120,将高密度存储设备的硬盘分为多个硬盘组,并将所有硬盘利用seachest工具设置为深度睡眠状态;

步骤130,选取一个硬盘组作为测试组,调用seachest工具将测试组硬盘设置为唤醒状态;

步骤140,对测试组的唤醒状态硬盘执行fio测试;

步骤150,轮循将所有硬盘组作为测试组,收集所有fio测试的测试日志。

为了便于对本发明的理解,下面以本发明高密度存储设备测试方法的原理,结合实施例中对高密度存储设备进行测试的过程,对本发明提供的高密度存储设备测试方法做进一步的描述。

具体的,所述高密度存储设备测试方法包括:

s1、加载seachest工具并升级高密度存储设备的硬盘测试微码。

存储控制节点上电开机进入系统,加载高密度存储设备厂商提供的seachest工具,升级高密度存储硬盘测试微码,使硬盘可以通过命令进行深度睡眠和唤醒。升级命令如下为:_xx–d/dev/$i--downloadfwzbd1.lod,其中$i硬盘在系统下的盘符,zbd1.lod为微码文件。使用for循环遍历所有硬盘,实现所有硬盘自动化升级。

s2、将高密度存储设备的硬盘分为多个硬盘组,并将所有硬盘利用seachest工具设置为深度睡眠状态。

设置除系统盘外其他硬盘均处于深度睡眠状态。通过将seachest工具的powerchoice_static选项的下级选项transitionpower下的powermode参数项的状态值设置为standby,将硬盘状态设置为深度睡眠状态,具体设置命令为:#seachest_powerchoice_static--transitionpower--powermodestandby_y-d/dev/$i。

校验上述深度睡眠设置是否生效,校验方法为:

按顺序使用for循环遍历所有硬盘,每个硬盘按顺序任选一个模块执行fio读写操作;fio命令返回执行失败,验证硬盘在深度睡眠状态下无法通过常规方法唤醒进行读写操作。

按顺序使用for遍历所有硬盘,每4个硬盘划分为一个硬盘组(每个硬盘组的硬盘数量可以自行设置)。

s3、选取一个硬盘组作为测试组,调用seachest工具将测试组硬盘设置为唤醒状态。

每次使用命令唤醒一组硬盘,然后对唤醒的硬盘同时进行fio测试,测试覆盖4k/128k/1024k模块的随机顺序读写,可以同时覆盖硬盘性能和压力测试,每个模块执行10min,完成后将本组硬盘通过命令再深度睡眠,唤醒下一组硬盘进行测试,并自动保存测试log。

通过脚本将seachest工具的powerchoice_static选项的下级选项transitionpower下的powermode参数项的状态值设置为idle,将硬盘状态设置为唤醒状态。硬盘唤醒命令如下:

#seachest_powerchoice_static--transitionpower--powermodeidle_a-d/dev/$i。

s3、对测试组的唤醒状态硬盘执行fio测试。

fio是一款用于对磁盘进行性能测试的工具。可以测试iops,吞吐量,io延迟等主要性能指标。而且支持多种io引擎。

fio测试命令如下:

fio-filename=/dev/$i-direct=1-iodepth32-rw=read-ioengine=libaio-bs=$j-numjobs=1--time_based--runtime=600--norandommap--randrepeat=0--bandwidth-log=1-group_reporting-name=mytest2>&1|tee–a$i-$j-read.txt

其中,fio测试参数可以根据需求修改,$i指待测硬盘盘符,$j指fio测试模块,2>&1将测试结果以及测试报错信息保存到$i-$j-read.txt中。

s4、轮循将所有硬盘组作为测试组,收集所有fio测试的测试日志。

随机访问一个系统下其他硬盘组,执行唤醒命令进行fio读写测试,并保存测试结果,for循环随机20-30次。验证使用过程中系统可以随机访问并成功唤醒任一深度睡眠的硬盘。

此外,对硬盘背板进行测试,测试方法与上述方法相同,获取m(m=c2n,n为高密度存储硬盘背板个数)组,每组2块硬盘,使用for循环轮询进行fio性能测试,并自动保存测试结果,每组在进行fio测试时改组硬盘为唤醒状态,其他组硬盘为深度睡眠状态。测试不同背板硬盘组成的硬盘组的性能测试。

如图2示,该系统200包括:

工具加载单元210,配置用于加载seachest工具并升级高密度存储设备的硬盘测试微码;

硬盘分组单元220,配置用于将高密度存储设备的硬盘分为多个硬盘组,并将所有硬盘利用seachest工具设置为深度睡眠状态;

硬盘唤醒单元230,配置用于选取一个硬盘组作为测试组,调用seachest工具将测试组硬盘设置为唤醒状态;

测试执行单元240,配置用于对测试组的唤醒状态硬盘执行fio测试;

日志收集单元250,配置用于轮循将所有硬盘组作为测试组,收集所有fio测试的测试日志。

可选地,作为本发明一个实施例,所述工具加载单元包括:

微码升级模块,配置用于利用seachest工具的firmware功能升级硬盘的测试微码;

升级遍历模块,配置用于遍历所有硬盘进行测试微码升级。

可选地,作为本发明一个实施例,所述系统还包括:

睡眠设置单元,配置用于通过将seachest工具的powerchoice_static选项的下级选项transitionpower下的powermode参数项的状态值设置为standby,将硬盘状态设置为深度睡眠状态;

唤醒设置单元,配置用于通过将seachest工具的powerchoice_static选项的下级选项transitionpower下的powermode参数项的状态值设置为idle,将硬盘状态设置为唤醒状态。

图3为本发明实施例提供的一种终端系统300的结构示意图,该终端系统300可以用于执行本发明实施例提供的高密度存储设备测试方法。

其中,该终端系统300可以包括:处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。

处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(integratedcircuit,简称ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器310可以仅包括中央处理器(centralprocessingunit,简称cpu)。在本发明实施方式中,cpu可以是单运算核心,也可以包括多运算核心。

通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。

本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:rom)或随机存储记忆体(英文:randomaccessmemory,简称:ram)等。

因此,本发明通过控制高密度存储设备的状态,即切换深度睡眠状态和唤醒状态,对唤醒状态的硬盘进行fio测试,在fio测试执行过程中令其他硬盘保持深度睡眠状态,直至对所有硬盘执行完fio测试。本发明针对较少硬盘运行,其他硬盘低功耗模式(深度睡眠模式)的高密度存储进行存储功能测试,实现自动化运行并自动保存测试log,弥补了目前高密度存储测试方法的不足,满足了客户特殊需求,提升产品竞争力。另外所有测试可以实现自动化运行,大大节省了人力和测试时间,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。

本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。

本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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