一种存储系统可用性测试的方法与装置与流程

文档序号:12963376阅读:371来源:国知局
一种存储系统可用性测试的方法与装置与流程

本发明涉及存储系统技术领域,特别是涉及一种存储系统可用性测试的方法与装置。



背景技术:

在存储系统的可用性衡量指标中,平均恢复前时间(meantimetorestoration,mttr)是一个重要的衡量指标。现有的存储系统在设计时使用了大量冗余设计,在某一部件发生故障时,系统仍然是可用的,如控制器,电源,磁盘等。但是由于存取数据的路径减少了,系统提供服务的能力会发生一定的下降,我们称之为降级。而磁盘作为存储系统中故障率较高的部分,是测试存储系统系统恢复时间的重要组成部分。

目前常规的的磁盘故障测试方法主要是通过手动拔掉被测试raid阵列中的一块硬盘,手动模拟达到对raid阵列注入一个磁盘丢失错误。在错误被侦测后,系统对io请求进行重新配置,io请求仍然从正常工作的其他硬盘中读取数据,系统仍然处于服务状态。然后系统自动将热备磁盘加入到raid阵列进行重构,此时系统服务状态有较大的降低,存储系统处于降级状态;直到新加入的热备磁盘数据写入完毕,系统将恢复到正常状态。通过测试系统重构raid阵列的时间,可以获得单块磁盘故障时存储系统的mttr。但这种方法只能手动模拟存储系统中磁盘丢失的情况,对磁盘i/o读写错误,磁盘io超时等情况都无法进行测试,不能准确评估出磁盘故障时系统的可用性。

可见,如何准确评估出磁盘故障时系统的可用性,是本领域技术人员亟待解决的问题。



技术实现要素:

本发明实施例的目的是提供一种存储系统可用性测试的方法与装置,可以准确评估出磁盘故障时系统的可用性。

为解决上述技术问题,本发明实施例提供一种存储系统可用性测试的方法,包括:

获取存储系统在预设的负载模型和负载强度下运行预设时间后对应的性能参数;将所述性能参数作为基准数据;

截获io请求,并依据所述io请求对应的参数信息,注入对应类型的磁盘故障;

获取所述存储系统在所述磁盘故障下的性能参数,并记录所述性能参数恢复至所述基准数据时花费的时间。

可选的,所述磁盘故障包括磁盘io读写错误或io读写请求超时。

可选的,当所述磁盘故障为磁盘io读写错误时,相应的,所述截获io请求,并依据所述io请求对应的参数信息,注入对应类型的磁盘故障包括:

截获向磁盘发送的io请求,将所述io请求中携带的读写长度修改为0;

截获所述磁盘发送的反馈消息,将所述反馈消息标记为出错状态。

可选的,当所述磁盘故障为io读写请求超时,相应的,所述截获io请求,并依据所述io请求对应的参数信息,注入对应类型的磁盘故障包括:

截获向磁盘发送的io请求,停止向所述磁盘发送所述io请求。

可选的,所述预设的负载模型包括将读写比例设置为87:13;数据块读写平均大小设置为23k;顺序随机读写比例设置为37:63。

可选的,所述预设的负载强度包括4小时超强度工作模式、14小时适中工作模式和6小时节能工作模式。

本发明实施例还提供了一种存储系统可用性测试的装置,包括获取单元、注入单元和记录单元,

所述获取单元,用于获取存储系统在预设的负载模型和负载强度下运行预设时间后对应的性能参数;将所述性能参数作为基准数据;

所述注入单元,用于截获io请求,并依据所述io请求对应的参数信息,注入对应类型的磁盘故障;

所述记录单元,用于获取所述存储系统在所述磁盘故障下的性能参数,并记录所述性能参数恢复至所述基准数据时花费的时间。

可选的,所述磁盘故障包括磁盘io读写错误或io读写请求超时。

可选的,当所述磁盘故障为磁盘io读写错误时,相应的,所述注入单元包括修改子单元和标记子单元,

所述修改子单元,用于截获向磁盘发送的io请求,将所述io请求中携带的读写长度修改为0;

所述标记子单元,用于截获所述磁盘发送的反馈消息,将所述反馈消息标记为出错状态。

可选的,当所述磁盘故障为io读写请求超时,相应的,所述注入单元具体用于截获向磁盘发送的io请求,停止向所述磁盘发送所述io请求。

可选的,所述预设的负载模型包括将读写比例设置为87:13;数据块读写平均大小设置为23k;顺序随机读写比例设置为37:63。

可选的,所述预设的负载强度包括4小时超强度工作模式、14小时适中工作模式和6小时节能工作模式。

由上述技术方案可以看出,获取存储系统在预设的负载模型和负载强度下运行预设时间后对应的性能参数,将该性能参数作为基准数据;截获io请求,并依据io请求对应的参数信息,注入对应类型的磁盘故障,在模拟出的磁盘故障情况下,获取存储系统在所述磁盘故障下的性能参数,并记录所述性能参数恢复至所述基准数据时花费的时间。通过软件模拟磁盘故障的方式,提高了测试的效率,并且有效覆盖了手动操作时无法模拟的一些故障情况,可以准确的评估各种磁盘故障情况下存储系统的可用性。

附图说明

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

图1为本发明实施例提供的一种存储系统可用性测试的方法的流程图;

图2为本发明实施例提供的一种存储系统可用性测试的装置的结构示意图。

具体实施方式

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

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

接下来,详细介绍本发明实施例所提供的一种存储系统可用性测试的方法。图1为本发明实施例提供的一种存储系统可用性测试的方法的流程图,该方法包括:

s101:获取存储系统在预设的负载模型和负载强度下运行预设时间后对应的性能参数;将所述性能参数作为基准数据。

确定存储系统正常情况下的标准负载模型。存储系统在实际运行过程中一直会对磁盘进行io操作,磁盘的许多错误也必须要在一定压力下才能对系统的服务能力产生影响,因此在测试存储系统恢复时间过程中,必须模拟实际工作环境中的io操作压力。根据存储业务最常用的操作,在本发明实施例中,可以采用如下制定的标准io模型作为负载模型。具体的,在负载模型中可以将读写比例设置为87:13;数据块读写平均大小设置为23k;顺序随机读写比例设置为37:63。

在实际运行中,存储系统不会一直处于最大强度的io压力,一些时间段上存储系统会处于比较空闲的状态。参照spc-1的存储日常利用率配置,可以采用如下制定的负载强度:4小时超强度工作模式(heavyworkload)、14小时适中工作模式(moderateworkload)和6小时节能工作模式(idleworkload),其对应的负载公式:4小时heavyworkload+14小时moderatework-load+6小时idleworkload。

其中,heavyworkload为80%的最大设计每秒进行读写i/o操作的次数(input/outputoperationspersecond,iops),moder-ateworkload为50%最大设计iops,idleworkload为0%最大设计iops。

预设时间可以根据存储系统从开始运行到达到稳定状态时所需要的时间设置。存储系统在预设的负载模型和负载强度下运行预设时间后,获取存储系统对应的性能参数,此时该性能参数可以更加准确的反映出存储系统当前的性能指标。

在本发明实施例中,将预设的负载模型和负载强度作为存储系统在正常情况下运行的标准条件,相应的,可以将在该标准条件下获取的性能参数作为基准数据。

其中,在该性能参数中可以包括iops等性能指标。

s102:截获io请求,并依据所述io请求对应的参数信息,注入对应类型的磁盘故障。

在具体实现中,系统可以通过运行在小型计算机系统接口(smallcomputersysteminterface,scsi)底层驱动级的软件,截获io请求。

存储系统在向磁盘发送io请求时,不同的io请求会调用不同的接口传输至磁盘,每个接口都有其对应的参数信息。系统可以依据io请求对应的参数信息,判断出该io请求的类型,从而注入与该类型对应的磁盘故障。

考虑到io请求包含的几种类型,在本发明实施例中,注入的磁盘故障可以包括磁盘io读写错误或io读写请求超时。

针对于不同类型的磁盘故障,其注入磁盘故障的方式不同,下面将对分别对磁盘io读写错误和io读写请求超时这两种类型的磁盘故障注入方式展开介绍。

对于磁盘io读写错误,具体的,可以截获向磁盘发送的io请求,将所述io请求中携带的读写长度修改为0;并截获所述磁盘发送的反馈消息,将所述反馈消息标记为出错状态。

在io请求发送到scsi磁盘之前,修改其读写长度为0,使其读写请求虽然发送到scsi磁盘中,但是由于其读写长度为0,不会改动scsi磁盘上的任何扇区,也不会读取到任何信息。scsi磁盘完成读写请求后返回的途中,截获请求执行结果即csi磁盘发送的反馈消息,将其标记为出错状态。这样,用户将得到此次io请求失败的信息,进而触发错误处理程序,完成故障注入。

其中,对于磁盘io读写错误又可以细化出如下5种读写错误的类型,临时读错误、临时写错误、通过写覆盖的读错误、永久性读错误和永久性读写错误。系统可以根据io请求对应的参数信息,区分出该io请求具体对应的是哪一种读写类型,在完成磁盘故障的注入后,系统对于不同的读写类型有其对应的处理方式。

对于注入临时读错误,系统侦测到读请求错误后,重新发出io请求,成功完成io请求;对于注入临时写错误,写出错的磁盘将离线,但是数据成功写入,数据将写入到冗余磁盘中,系统将记录此错误;对于注入通过写覆盖的读错误,在读错误发生后,系统将重新发出io请求,这时将模拟第二次错误,系统会从其他冗余磁盘中读取数据,覆盖读错误的扇区,并完成数据读取,系统将记录此错误;对于注入永久性读错误,阵列侦测到错误后,将会执行通过写覆盖的读错误机制,此时软件将一直模拟读错误,导致无法成功覆盖读错误磁盘的错误扇区,阵列将该磁盘离线,系统将记录此错误;对于注入永久性读写错误。该磁盘将从阵列中离线。

对于io读写请求超时,具体的,可以截获向磁盘发送的io请求,停止向所述磁盘发送所述io请求。

对于io读写请求超时,发送的io请求为scsicommand,截获发送到磁盘的scsicommand,将其抛弃掉,将不会磁盘产生任何操作,等到scsi的超时机制发现其请求得不到任何回应后,就会输出请求超时的状态结果,便可以完成超时请求的故障注入。

其中,对于io读写请求超时又可以细化分为读请求临时无响应和写请求临时无响应。在完成磁盘故障的注入后,系统对于不同的超时类型有其对应的处理方式。

对于注入读请求临时无响应,同注入临时读错误类似,系统侦测到读请求无响应后,重新发出io请求,成功完成io请求;对于注入写请求临时无响应。同注入临时写错误类似,写出错的磁盘将离线,但是数据成功写入,数据将写入到冗余磁盘中,系统将记录此错误。

s103:获取所述存储系统在所述磁盘故障下的性能参数,并记录所述性能参数恢复至所述基准数据时花费的时间。

在本发明实施例中,将存储系统注入磁盘故障到恢复正常状态时所花费的时间作为评价存储系统可用性的衡量指标。

花费的时间越短,说明存储系统的可用性越高;相应的,花费的时间越长,说明存储系统的可用性越低。

由上述技术方案可以看出,获取存储系统在预设的负载模型和负载强度下运行预设时间后对应的性能参数,将该性能参数作为基准数据;截获io请求,并依据io请求对应的参数信息,注入对应类型的磁盘故障,在模拟出的磁盘故障情况下,获取存储系统在所述磁盘故障下的性能参数,并记录所述性能参数恢复至所述基准数据时花费的时间。通过软件模拟磁盘故障的方式,提高了测试的效率,并且有效覆盖了手动操作时无法模拟的一些故障情况,可以准确的评估各种磁盘故障情况下存储系统的可用性。

图2为本发明实施例提供的一种存储系统可用性测试的装置的结构示意图,包括获取单元21、注入单元22和记录单元23,

所述获取单元21,用于获取存储系统在预设的负载模型和负载强度下运行预设时间后对应的性能参数;将所述性能参数作为基准数据。

所述注入单元22,用于截获io请求,并依据所述io请求对应的参数信息,注入对应类型的磁盘故障。

所述记录单元23,用于获取所述存储系统在所述磁盘故障下的性能参数,并记录所述性能参数恢复至所述基准数据时花费的时间。

可选的,所述磁盘故障包括磁盘io读写错误或io读写请求超时。

可选的,当所述磁盘故障为磁盘io读写错误时,相应的,所述注入单元包括修改子单元和标记子单元,

所述修改子单元,用于截获向磁盘发送的io请求,将所述io请求中携带的读写长度修改为0;

所述标记子单元,用于截获所述磁盘发送的反馈消息,将所述反馈消息标记为出错状态。

可选的,当所述磁盘故障为io读写请求超时,相应的,所述注入单元具体用于截获向磁盘发送的io请求,停止向所述磁盘发送所述io请求。

可选的,所述预设的负载模型包括将读写比例设置为87:13;数据块读写平均大小设置为23k;顺序随机读写比例设置为37:63。

可选的,所述预设的负载强度包括4小时超强度工作模式、14小时适中工作模式和6小时节能工作模式。

图2所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。

由上述技术方案可以看出,获取存储系统在预设的负载模型和负载强度下运行预设时间后对应的性能参数,将该性能参数作为基准数据;截获io请求,并依据io请求对应的参数信息,注入对应类型的磁盘故障,在模拟出的磁盘故障情况下,获取存储系统在所述磁盘故障下的性能参数,并记录所述性能参数恢复至所述基准数据时花费的时间。通过软件模拟磁盘故障的方式,提高了测试的效率,并且有效覆盖了手动操作时无法模拟的一些故障情况,可以准确的评估各种磁盘故障情况下存储系统的可用性。

以上对本发明实施例所提供的一种存储系统可用性测试的方法与装置进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

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