一种硬盘io超时控制方法及装置的制造方法

文档序号:9765916阅读:806来源:国知局
一种硬盘io超时控制方法及装置的制造方法
【技术领域】
[0001]本发明涉及电子技术领域,尤其涉及一种硬盘1超时控制方法及装置。
【背景技术】
[0002]硬盘故障中当出现坏道(无法读取数据的区域)或者Firm Ware (固件,硬盘上的处理程序)问题,都有可能导致硬盘上的1超时(即下发1命令后,长时间没有针对所述1命令的反馈信息),当出现1超时问题后,会造成阵列系统进入超时处理流程,过于简单或不完善的超时处理流程会带来对业务的影响,降低阵列运行的可靠性。
[0003]为了处理1超时,现有技术普遍采用重试和简单1超时计数的方式,当1超时数量达到门限时便直接将硬盘设置为Offline状态(即将硬盘物理隔离不使用)。如果硬盘设置为 Offline 状态,则会导致硬盘阵列(Redundant Arrays of Inexpensive Disks,RAID)对应的RAID组(多块硬盘组成的软件逻辑空间单元)降级或失效,进一步还会影响到业务运行。其中,现有技术中采用的重试和简单1超时计数方式的具体实现包括:
[0004]首先,根据第一门限值(预先设定的固定值)判断是否出现1超时;如果第一门限值为10s,则1命令下发1s后没有接收到反馈信息,则判定为1超时;当出现1超时,则进入错误处理流程(例如执行换链路重试等策略),并统计1超时个数。
[0005]其次,判断当前1超时的个数是否超过第二门限值(预先设定的固定值);如果第二门限值为单边16个,则当1超时的个数达到单边16个,则直接将硬盘设置为Offline状态,RAID组降级或直接失效。
[0006]综合上述现有技术方案可见:门限值固定,不能根据业务压力进行自适应调整,存在误隔离或者隔离门限过宽,导致影响业务。

【发明内容】

[0007]本发明提供一种硬盘1超时控制方法及装置,本发明所提供的方法和装置解决现有技术中1超时判断利用固定门限值,存在误隔离或者隔离门限过宽的问题。
[0008]第一方面,提供一种硬盘1超时控制方法,该方法包括:
[0009]获取每个1命令的下发时刻和接收每个1命令的反馈信息的返回时刻;
[0010]当判断当前1命令处理超时并且重新下发当前1命令成功后,判断所述当前1的前一个1是否超时;
[0011]如果所述前一个1超时,则将所述当前1对应的下发时刻与所述前一个1对应的返回时刻进行比较;
[0012]根据比较结果确定所述当前1和所述前一个1是否为连续压队10,如果是,则在统计硬盘的超时1个数时将所述当前1和所述前一个1合并为一个超时1进行计数,其中,所述连续压队1为连续下发的1命令。
[0013]结合第一方面,在第一种可能的实现方式中,所述根据比较结果确定所述当前1和所述前一个1是否为连续压队10,包括:
[0014]当比较结果为所述当前1对应的下发时刻早于所述前一个1对应的返回时刻时,则确定所述当前1和所述前一个1为连续压队10。
[0015]结合第一方面或第一方面的第一种可能的实现方式中的任意一种,在第二种可能的实现方式中,在统计硬盘的超时1个数时将所述当前1和所述前一个1作为一个超时1进行计数之前,还包括:
[0016]在所述当前1的超时门限上加上一个预设的合理时延得到新的超时门限;
[0017]确定所述当前1对应的返回时刻在所述新的超时门限所对应的范围内。
[0018]结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,在所述当前1的超时门限上加上一个预设的合理时延得到新的超时门限之前,还包括:
[0019]从所述当前1所属队列的队列深度或硬盘利用率的测试数据中选取N个值;
[0020]将所述N个值与对应的N个1平均服务时间进行公式化拟合,求得拟合方程,利用所述拟合方程计算所述合理时延。
[0021]结合第一方面或第一方面第一种至第三种可能的实现方式中的任意一种,在第四种可能的实现方式中,根据比较结果确定所述当前1和所述前一个1是否为连续压队1之后,还包括:
[0022]当判断当前1命令处理超时,则获取当前系统时间;
[0023]以所述系统时间为起点,获取所述系统时间之前的设定时间段内的超时1个数;
[0024]检测所述超时1个数是否大于预设阈值,如果是,则判定硬盘即将失效,对所述硬盘中的数据进行预拷贝。
[0025]第二方面,提供一种硬盘1超时控制装置,该装置包括:
[0026]时间信息获取模块,用于获取每个1命令的下发时刻和接收每个1命令的反馈信息的返回时刻;
[0027]初始超时判断模块,用于当判断当前1命令处理超时并且重新下发当前1命令成功后,判断所述当前1的前一个1是否超时;
[0028]比较模块,用于如果所述前一个1超时,则将所述当前1对应的下发时刻与所述前一个1对应的返回时刻进行比较;
[0029]计数模块,用于根据比较结果确定所述当前1和所述前一个1是否为连续压队10,如果是,则在统计硬盘的超时1个数时将所述当前1和所述前一个1合并为一个超时1进行计数,其中,所述连续压队1为连续下发的1命令。
[0030]结合第二方面,在第一种可能的实现方式中,所述比较模块根据比较结果确定所述当前1和所述前一个1是否为连续压队1包括:
[0031]当比较结果为所述当前1对应的下发时刻早于所述前一个1对应的返回时刻时,则确定所述当前1和所述前一个1为连续压队10。
[0032]结合第二方面或第二方面的第一种可能的实现方式中的任意一种,在第二种可能的实现方式中,所述比较模块还用于在统计硬盘的超时1个数时将所述当前1和所述前一个1作为一个超时1进行计数之前,在所述当前1的超时门限上加上一个预设的合理时延得到新的超时门限;确定所述当前1对应的返回时刻在所述新的超时门限所对应的范围内。
[0033]结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,该装置还包括:
[0034]合理时延计算模块,用于从所述当前1所属队列的队列深度或硬盘利用率的测试数据中选取N个值;将所述N个值与对应的N个1平均服务时间进行公式化拟合,求得拟合方程,利用所述拟合方程计算所述合理时延。
[0035]结合第二方面或第二方面第一种至第三种可能的实现方式中的任意一种,在第四种可能的实现方式中,该装置还包括:
[0036]动态判断模块,用于当判断当前1命令处理超时,则获取当前系统时间;以所述系统时间为起点,获取所述系统时间之前的设定时间段内的超时1个数;检测所述超时1个数是否大于预设阈值,如果是,则判定硬盘即将失效,对所述硬盘中的数据进行预拷贝。
[0037]上述技术方案中的一个或两个,至少具有如下技术效果:
[0038]本发明实施例所提供的方法和装置,当出现1超时,则可进一步的通过记录的1命令的下发时刻和返回时刻,确定当前超时的1和前一个1是否为连续压队的10,如果是连续压队的10,且前一个1也是超时的,则可以在统计硬盘的超时1的个数时,将两个超时1累计为一个。避免了连续压队1中的第一个1超时影响后续1超时计算的问题。
【附图说明】
[0039]图1为本发明实施例一提供的一种硬盘1超时控制方法的流程示意图;
[0040]图2为本发明实施例一中时间窗口移动前的示意图;
[0041]图3为本发明实施例一中时间窗口移动后的示意图;
[0042]图4为本发明实施例二提供的一种硬盘1超时控制方法的流程示意图;
[0043]图5为本发明实施例提供一种硬盘1超时控制装置的结构示意图;
[0044]图6为本发明实施例提供一种硬盘的结构示意图。
【具体实施方式】
[0045]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0046]下面结合说明书附图对本发明实施例作进一步详细描述。
[0047]实施例一,本发明实施例提供一种硬盘1超时控制方法,下面结合说明书附图对本发明的【具体实施方式】进行详细说明(方法流程如图1所示):
[0048]步骤101,获取每个1命令的下发时刻和接收每个1命令的反馈信息的返回时刻;
[0049]在具体的实现过程中,时刻值的获取可以基于全局变量jiffies生成,在很多系统中,jiffies用来记录自系统启动以来产生的节拍的总数。启动时,内核将该变量初始化为0,此后,每次时钟中断处理程序都会增加该变量的值。所以在处理1命令时,可以记录下发1命令时的jiffies (或称为下发jiffies,即下发时刻)和接收到反馈信息时的jiffies (或称为返回jiffies,即返回时刻)。
[005
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1