一种评估存储介质的方法及装置与流程

文档序号:17335400发布日期:2019-04-05 22:25阅读:160来源:国知局
一种评估存储介质的方法及装置与流程
本申请实施例涉及存储领域,尤其涉及一种评估存储介质的方法及装置。
背景技术
:机械硬盘(harddiskdrive,hdd),又称为机械盘,广泛应用于服务器、台式机、笔记本、移动设备、游戏机等,hdd使用磁介质作为基本的存储介质。机械硬盘在读取数据的速度、抗震能力、噪音、能耗方面,相对应固态硬盘(solidstatedisk或solidstatedrive,ssd)有较大的差距,但hdd相对应ssd便宜很多。ssd采用闪存(nandflash)的存储介质来保存数据,摆脱了机械硬盘的磁头,盘片转轴及控制电机等机械部件,没有电机加速旋转的过程,内部不存在任何机械活动部件,不会发生机械故障,也不怕碰撞、冲击和振动。所以,相对于hdd而言,在性能、可靠性、能耗、轻便性方面有着绝对的优势,目前广泛应用于军事、军载、工控、电力、医疗、航空、导航设备等领域。ssd还在于可以真正做到多并发和低时延,使其每秒进行读写操作的次数(input/outputoperationspersecond,iops)可以超过hdd两个数量级以上。ssd由控制器、内存、闪存颗粒等单元所组成。绝大多数厂商所生产的ssd在外观尺寸、接口规范、数据访问方法等方面均与hdd保持一致,从而使ssd可以被直接应用于hdd所能使用的任何场景。目前,无论是那种硬盘,硬盘的存储介质都有可能产生坏道(badtrack)。坏道是存储介质上不能读取的一块区域,一般可能包括一个或多个扇区。如果使用硬盘的服务器等设备对存储介质中包括坏道的区域进行读或写操作,必然会影响读或写的速度,甚至会导致读或写失败的严重后果。然而,使用硬盘的服务器等设备一般都是在坏道已经产生后,才能够识别并标记包括坏道的区域,以后不再继续使用包括坏道的区域,不能提前识别评估存储介质的异常。因此,如何对硬盘的存储介质进行实时评估,提高硬盘的使用性能和可靠性是一个亟待解决的问题。技术实现要素:本申请实施例提供一种评估存储介质的方法及装置,解决了如何对硬盘的存储介质进行实时评估,提高硬盘的使用性能和可靠性的问题。为达到上述目的,本申请实施例采用如下技术方案:本申请实施例的第一方面,提供一种评估存储介质的方法,方法应用于包括硬盘的装置,硬盘包括存储介质,方法包括:首先,对第一物理块进行第一操作,第一操作为第一读操作或第一写操作,存储介质包括第一物理块;然后,获取第一操作成功响应或者第一操作失败响应;当获取到第一操作失败响应时,确定第一操作执行失败;根据第一操作失败响应更新第一物理块对应的标记位;当获取到第一操作成功响应时,获取第一操作的操作时长;根据第一操作的操作时长评估第一物理块,得到第一评估结果;根据第一评估结果更新第一物理块对应的标记位。本申请实施例提供的评估存储介质的方法,在对存储介质的物理块进行读操作或写操作过程中,通过读操作响应或写操作响应来对相关物理块进行评估,根据评估结果更新物理块的标记位,从而,能够对存储介质的物理块的状态进行实时的监控更新,对物理块的异常做到提前预防,提高硬盘的使用性能和可靠性。其中,第一评估结果为第一操作慢或第一操作超时。对于不同的评估结果,评估第一物理块的方法也不同。下面针对不同的评估结果介绍评估第一物理块的实现方式。结合第一方面,在一种可能的实现方式中,第一评估结果为第一操作慢,根据第一操作的操作时长评估第一物理块,得到第一评估结果,具体包括:根据第一物理块的大小获取第一物理块对应的第一阈值;将第一操作的操作时长与第一阈值进行比较,得到第一操作的操作时长为第一阈值的n倍;确定第一评估结果。从而,利用第一阈值与对第一物理块的第一操作的操作时长进行比较,确定第一物理块的异常状态,对存储介质的物理块的状态进行实时的监控更新,对物理块的异常做到提前预防,提高硬盘的使用性能和可靠性。结合上述可能的实现方式,在另一种可能的实现方式中,第一操作为第一读操作,第一阈值为第一物理块对应的读操作基准时延;第一操作为第一写操作,第一阈值为第一物理块对应的写操作基准时延。结合第一方面,在另一种可能的实现方式中,第一评估结果为第一操作超时,根据第一操作的操作时长评估第一物理块,得到第一评估结果,具体包括:根据第一物理块的大小获取第一物理块对应的第二阈值;将第一操作的操作时长与第二阈值进行比较,得到第一操作的操作时长大于第二阈值;确定第一评估结果。从而,利用第二阈值与对第一物理块的第一操作的操作时长进行比较,确定第一物理块的异常状态,对存储介质的物理块的状态进行实时的监控更新,对物理块的异常做到提前预防,提高硬盘的使用性能和可靠性。结合上述可能的实现方式,在另一种可能的实现方式中,第一操作为第一读操作,第二阈值为第一物理块对应的读操作超时时延;第一操作为第一写操作,第二阈值为第一物理块对应的写操作超时时延。结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在根据第一评估结果更新第一物理块对应的标记位之后,方法还包括:验证第一物理块的第一评估结果。从而,再次对评估结果进行确认,确保评估结果的正确性。下面介绍下验证第一物理块的第一评估结果的具体实现方法。结合上述可能的实现方式,在另一种可能的实现方式中,验证第一物理块的第一评估结果,具体包括:对第一物理块进行第二操作,第二操作为第二读操作或第二写操作,第二写操作与第一写操作不同,第二读操作与第一读操作不同;获取第二操作成功响应;获取第二操作的操作时长;根据第二操作的操作时长评估第一物理块,得到第二评估结果,第二评估结果为第二操作慢或第二操作超时;若第二评估结果与第一评估结果相同,保持第一物理块的标记位;若第二评估结果与第一评估结果不同,更新第一物理块的标记位。结合上述可能的实现方式,在另一种可能的实现方式中,第二操作为第二读操作,对第一物理块进行第二操作,具体包括:在第一物理块空闲时,对第一物理块进行第二操作。结合上述可能的实现方式,在另一种可能的实现方式中,第一操作为第一写操作,在根据第一操作失败响应更新第一物理块对应的标记位之后,或者,在根据第一评估结果更新第一物理块对应的标记位之后,第一评估结果为第一操作超时,方法还包括:确定第二物理块;对第二物理块进行第一操作,从而,使写操作成功。结合上述可能的实现方式,在另一种可能的实现方式中,在对第一物理块进行第一操作之前,方法还包括:对硬盘的物理空间等分为n个物理块,第一物理块为n个物理块中任一个物理块,物理空间为硬盘的存储介质;生成硬盘的位图,位图包括n个标记位,一个标记位对应一个物理块,第i标记位用于指示第i标记位对应的第i物理块的状态,第i标记位包括至少一个比特位,一个比特位表示第i物理块的一种状态,状态包括坏道、读失败、写失败、读超时、写超时、读慢、写慢和读恢复,坏道表示第i物理块包括坏道,读失败表示对第i物理块进行读操作失败,写失败表示对第i物理块进行写操作失败,读超时表示对第i物理块进行读操作超时,写超时表示对第i物理块进行写操作超时,读慢表示对第i物理块进行读操作慢,写慢表示对第i物理块进行写操作慢,读恢复表示对第i物理块进行读操作,经过容错策略恢复出第i物理块包括的数据,i为正整数,i取1至n,n为大于等于1的正整数;根据原始坏道信息更新位图,原始坏道信息包括生产硬盘时产生的坏道;对第i物理块进行初始检测,得到初始检测结果,初始检测包括初始读操作和初始写操作;根据初始检测结果更新第i物理块对应的标记位。从而,通过对位图进行初始化,排除生成过程中产生的坏道,避免对硬盘进行读操作或写操作时,坏道影响硬盘的使用性能。本申请实施例的第二方面,提供一种评估存储介质的装置,装置包括硬盘,硬盘包括存储介质,装置包括:操作单元,用于对第一物理块进行第一操作,第一操作为第一读操作或第一写操作,存储介质包括第一物理块;操作单元,还用于获取第一操作成功响应或者第一操作失败响应;确定单元,用于当获取到第一操作失败响应时,确定第一操作执行失败;更新单元,用于根据第一操作失败响应更新第一物理块对应的标记位;操作单元,还用于当获取到第一操作成功响应时,获取第一操作的操作时长;评估单元,用于根据第一操作的操作时长评估第一物理块,得到第一评估结果,第一评估结果为第一操作慢或第一操作超时;更新单元,还用于根据第一评估结果更新第一物理块对应的标记位。需要说明的是,上述第二方面的功能模块可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。例如,处理器,用于完成处理单元的功能,存储器,用于处理器处理本申请实施例的评估存储介质的方法的程序指令。处理器、通信接口和存储器通过总线连接并完成相互间的通信。具体的,可以参考第一方面提供的评估存储介质的方法中包括硬盘的装置的行为的功能。本申请实施例的第三方面,提供一种评估存储介质的装置,该装置可以包括:至少一个处理器,存储器、通信接口、通信总线;至少一个处理器与存储器、通信接口通过通信总线连接,存储器用于存储计算机执行指令,当处理器运行时,处理器执行存储器存储的计算机执行指令,以使评估存储介质的装置执行第一方面或第一方面的可能的实现方式中任一所述的评估存储介质的装置。本申请实施例的第四方面,提供了一种计算机可读存储介质,用于储存为上述评估存储介质的装置所用的计算机软件指令,当计算机软件指令被处理器执行时,使得评估存储介质的装置可以执行上述中任意方面的方法。本申请实施例的第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述任意方面的方法。另外,第二方面至第五方面中任一种设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。本申请实施例中,评估存储介质的装置的名字对设备本身不构成限定,在实际实现中,这些设备可以以其他名称出现。只要各个设备的功能和本申请实施例类似,属于本申请权利要求及其等同技术的范围之内。本申请实施例的这些方面或其他方面在以下实施例的描述中会更加简明易懂。附图说明图1为现有技术提供的一种磁盘示意图;图2为本申请实施例提供的一种评估存储介质的装置结构示意图;图3为本申请实施例提供的一种评估存储介质的方法的流程图;图4为本申请实施例提供的另一种评估存储介质的方法的流程图;图5为本申请实施例提供的一种位图示意图;图6为本申请实施例提供的又一种评估存储介质的方法的流程图;图7为本申请实施例提供的再一种评估存储介质的方法的流程图;图8为本申请实施例提供的另再一种评估存储介质的方法的流程图;图9为本申请实施例提供的一种评估存储介质的装置结构示意图;图10为本申请实施例提供的另一种评估存储介质的装置结构示意图。具体实施方式为了下述各实施例的描述清楚简洁,首先给出相关技术的简要介绍:硬盘是电脑主要的存储媒介之一。传统硬盘有hdd,新式硬盘有ssd和混合硬盘(hybridharddisk,hhd)。hdd采用磁性碟片来存储,ssd采用闪存颗粒来存储,hhd是基于传统机械硬盘诞生出来的,是把磁性硬盘和闪存集成到一起的一种硬盘。绝大多数硬盘都是固定硬盘,被永久性地密封固定在硬盘驱动器中。磁道是磁盘上的一组记录密度不同的同心圆。磁盘上的每个磁道又按512个字节为单位划分为等分的弧段,这些弧段便是磁盘的扇区,磁盘驱动器在向磁盘读取和写入数据时,以扇区为单位。如图1所示,现有技术提供的一种磁盘示意图。扇区的内容不能正常读或扇区不能正常写时,此扇区失效,扇区所在的磁道称为坏道(badtrack)。坏道可以包括一个或多个扇区。坏道的产生可以分为两种情况:一是在磁盘生产过程中产生的缺陷扇区,二是磁盘使用过程中新产生的缺陷扇区。一般来说,硬盘可以记录原始坏道和新增坏道信息。例如,机械盘存储有两个坏道表,分别为工厂坏道表(p-list),也称为永久坏道表或原始坏道表,用于记录工厂生产过程中产生的坏道,增长坏道表(g-list),用于记录硬盘使用过程中由于磁介质性能变弱而引起的坏道,并将坏扇区重定向到好扇区,坏道加入增长坏道表对该扇区的读写速度是有影响的。如果使用硬盘的服务器等设备对存储介质中包括坏道的区域进行读操作或写操作,必然会影响读或写的速度,甚至会导致读或写失败的严重后果。然而,使用硬盘的服务器等设备一般都是在坏道已经产生后,才能够识别并标记包括坏道的区域,以后不再继续使用包括坏道的区域,不能提前识别评估存储介质。而且,对于机械盘,随着大容量盘的逐步应用,以及高性能的hdd逐步被ssd替换,以及降低成本方面的考量,盘片的面密度逐步地在增加,存储介质本身的可靠性也会逐步降低,这就引起单盘坏道数量的增加。hdd的坏道产生的概率较高,且hdd发生坏道后,再次读操作或写操作对应的位置,在盘内部会进行重映射,从而导致读操作或写操作该区域的延时相对于正常读操作或写操作更不可控,影响到读操作或写操作的服务质量(qualityofservice,qos)。为了读操作或写操作的时延的可控,需要主动识别并隔离包括坏道的区域。hdd的坏道频发,导致基于hdd并支持raid的系统,如果同一个磁盘阵列(redundantarrayofindependentdisks,raid)组的多块磁盘上相同位置发生坏道,则可能导致发生坏道的位置的数据无法通过raid恢复出来,造成数据的丢失(比如8盘组成raid5的raid,如果两块或者两块以上的盘的相同位置出现坏道,则通过raid5的冗余能力,无法将出错的数据通过冗余关系计算出来)。对于ssd,随着3dnandflash的逐步普及,尤其是3dtlc/3dqlc的大规模应用,介质本身的可靠性也在降低。同时,受互联网公司、数据中心等的驱动,去掉ssd内部的闪存转换层(flashtranslationlayer,ftl),直接将ssd介质的物理结构和地址暴露给主机(host),让主机直接管理物理地址成为后续ssd盘控配合的一个发展趋势,这就要求主机能够对存储介质进行管控和识别,知道存储数据的存储介质的健康状况。支持openchannel的全闪存阵列(allflasharray,afa),系统需要直接对单盘的介质的健康状况进行管控,以便能够尽量减少无法从ssd上读出数据的可能性。为了对硬盘的存储介质进行实时评估,提高硬盘的使用性能和可靠性,本申请实施例提供一种评估存储介质的方法,其基本原理是:首先,对第一物理块进行第一操作,第一操作为第一读操作或第一写操作,存储介质包括第一物理块;然后,获取第一操作成功响应或者第一操作失败响应;当获取到第一操作失败响应时,确定第一操作执行失败;根据第一操作失败响应更新第一物理块对应的标记位;当获取到第一操作成功响应时,获取第一操作的操作时长;根据第一操作的操作时长评估第一物理块,得到第一评估结果;根据第一评估结果更新第一物理块对应的标记位。本申请实施例提供的评估存储介质的方法,在对存储介质的物理块进行读操作或写操作过程中,通过读操作响应或写操作响应来对相关物理块进行评估,根据评估结果更新物理块的标记位,从而,能够对存储介质的物理块的状态进行实时的监控更新,对物理块的异常做到提前预防,提高硬盘的使用性能和可靠性。下面将结合附图对本申请实施例的实施方式进行详细描述。硬盘广泛应用于服务器、台式机、笔记本、移动设备、游戏机等设备,评估存储介质的装置就可以是服务器、台式机、笔记本、移动设备、游戏机等设备,下面以电脑为例对评估存储介质的装置的结构进行简单的介绍。图2为本申请实施例提供的一种评估存储介质的装置结构示意图,如图2所示,评估存储介质的装置可以包括至少一个处理器21,存储器22、通信接口23、通信总线24、外部设备25。下面结合图2对评估存储介质的装置的各个构成部件进行具体的介绍:处理器21是评估存储介质的装置的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器21是一个中央处理器(centralprocessingunit,cpu),也可以是特定集成电路(applicationspecificintegratedcircuit,asic),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个微处理器(digitalsignalprocessor,dsp),或,一个或者多个现场可编程门阵列(fieldprogrammablegatearray,fpga)。其中,处理器21可以通过运行或执行存储在存储器22内的软件程序,以及调用存储在存储器22内的数据,执行评估存储介质的装置的各种功能。在具体的实现中,作为一种实施例,处理器21可以包括一个或多个cpu,例如图2中所示的cpu0和cpu1。在本申请实施例中,处理器21主要用于对第一物理块进行第一操作,获取第一操作成功响应或者第一操作失败响应;当获取到第一操作失败响应时,确定第一操作执行失败;根据第一操作失败响应更新第一物理块对应的标记位;当获取到第一操作成功响应时,获取第一操作的操作时长;根据第一操作的操作时长评估第一物理块,得到第一评估结果,第一评估结果为第一操作慢或第一操作超时;根据第一评估结果更新第一物理块对应的标记位。在具体实现中,作为一种实施例,评估存储介质的装置可以包括多个处理器,例如图2中所示的处理器21和处理器26。这些处理器中的每一个可以是一个单核处理器(single-cpu),也可以是一个多核处理器(multi-cpu)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。存储器22是内部存储器,可以是只读存储器(read-onlymemory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(randomaccessmemory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)。存储器22可以是独立存在,通过通信总线24与处理器21相连接。存储器22也可以和处理器21集成在一起。其中,所述存储器22用于存储执行本申请方案的软件程序,并由处理器21来控制执行。通信接口23,可以是i/o设备,用于与其他设备或通信网络通信,如以太网,无线接入网(radioaccessnetwork,ran),无线局域网(wirelesslocalareanetworks,wlan)等。通信接口23可以包括接收单元实现接收功能,以及发送单元实现发送功能。通信总线24,可以是工业标准体系结构(industrystandardarchitecture,isa)总线、外部设备互连(peripheralcomponentinterconnect,pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图2中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。外部设备25,包括外存储设备251、输入设备252和输出设备253。外存储设备251可以包括硬盘、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由评估存储介质的装置存取的任何其他介质,但不限于此。输入设备252包括键盘和鼠标。输出设备253包括显示器。图2中示出的设备结构并不构成对评估存储介质的装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。图3为本申请实施例提供的一种评估存储介质的方法的流程图,如图3所示,该方法可以包括:s301、对第一物理块进行第一操作。在对第一物理块进行第一操作之前,需要将存储介质的物理空间按照固定大小进行划分,得到n个相同大小的物理块,第一物理块就是存储介质中n个物理块中任意一个物理块。物理块的大小指的是物理块的逻辑地址(logicalblockaddress,lba)的范围。第一操作为第一读操作或第一写操作。需要说明的是,为了便于清楚描述本申请实施例的技术方案,在本申请实施例中,采用的“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。在对第一物理块进行第一操作之后,第一操作可能会成功,由于第一物理块包括坏道等原因,第一操作也可能会失败。下面对第一物理块进行第一操作,第一操作失败和第一操作成功后的方法流程进行详细说明。其中,第一操作失败之后,可以参考步骤302至步骤304的详细说明。第一操作成功之后,可以参考步骤305至步骤308的详细说明。s302、获取第一操作失败响应。由于第一物理块可能临时出现坏道等原因,无法对第一物理块进行第一操作,第一操作可能就会失败。例如,对第一物理块进行第一读操作,可能就无法读出第一物理块存储的数据;或者,对第一物理块进行第一写操作,可能就无法将数据写入第一物理块。若第一操作失败,则获取到第一操作失败响应。例如,硬盘无法提供正确的数据,会直接通过错误码高速阵列或者服务器,对应的数据就会错乱,也即是坏道。s303、确定第一操作执行失败。获取到第一操作失败响应后,确定第一操作执行失败。s304、根据第一操作失败响应更新第一物理块对应的标记位。确定第一操作执行失败后,可以更新第一物理块对应的标记位。标记位是位图中的一个区域。第一物理块对应的标记位可以包括多个比特位,每个比特位代表第一物理块的一个状态。例如,操作失败,有对应的操作失败的比特位。更新第一物理块对应的标记位相当于更新第一物理块对应的标记位中的操作失败的比特位。假设“1”代表操作失败,“0”代表操作成功,当对第一物理块的第一操作失败时,该操作失败的比特位可以置为1。需要说明的是,在对第一物理块进行第一操作,即步骤s301之前,还需要生成并更新硬盘的位图,以便于对第一物理块进行第一操作后,根据第一操作的响应更新第一物理块对应的标记位。如图4所示,本申请实施例还包括以下s309至s313:s309、对硬盘的物理空间等分为n个物理块。对于阵列或服务器管控的硬盘,将硬盘的物理空间可以按照固定大小划分为多个物理块。例如,固定大小为32kb、64kb、128kb、256kb、512kb或1mb等。第一物理块为n个物理块中任一个物理块,物理空间为硬盘的存储介质。s310、生成硬盘的位图。硬盘的物理空间被划分为多个个物理块,位图就包括多少个标记位,一个标记位对应一个物理块。假设位图包括n个标记位,第i标记位用于指示第i标记位对应的第i物理块的状态,i为正整数,i取1至n,n为大于等于1的正整数。第i标记位包括至少一个比特位,例如,4bit、8bit或16bit。一个比特位表示第i物理块的一种状态,状态可以包括坏道、读失败、写失败、读超时、写超时、读慢、写慢和读恢复。如果需要关注更多的根因,可将需要关注的根因纳入位图里,标记位包括更多的比特位,并对硬盘的读操作或写操作进行监控,确保对应的根因能够得到识别和处理。坏道表示第i物理块包括坏道。坏道对应的物理块不能够再使用,该物理块需要被隔离。读失败表示对第i物理块进行读操作失败。对应的物理块发生过读失败的情况,读失败可能是存储介质本身有所退化,或者磁介质退化,或者电子泄漏等,导致要读取的数据发生较多比特翻转,不能够正确恢复出数据来。一般来说,这样的物理块还有拯救的价值。写失败表示对第i物理块进行写操作失败。对应的物理块发生过写失败的情况,对于物理块来说是较为严重的错误,这种物理块建议隔离不再使用读超时表示对第i物理块进行读操作超时。对应的物理块发生过读超时的情况(对于操作超时或者慢的情况,先标记,再在后台进行确认,排除其他非介质因素的影响)。写超时表示对第i物理块进行写操作超时。读慢表示对第i物理块进行读操作慢。对应的物理块的读操作,和读操作基准时延比较起来,读操作的响应时间相对较慢。写慢表示对第i物理块进行写操作慢。对应的物理块的写操作,和写操作基准时延比较起来,写操作的响应时间相对较慢。读恢复表示对第i物理块进行读操作,经过容错策略恢复出第i物理块包括的数据。图5为本申请实施例提供的一种位图示意图。标记位中的每个块代表一个基本的单位,即系统进行存储介质标记的基本单位,也是分配新的承载数据写入物理块的基本单位。每个方框代表32kb、64kb、128kb、256kb、512kb或1mb大小的一个物理块对应的标记位(实际上是位图信息)。整个硬盘能够切分为多少个物理块,就对应多少个方框。系统可根据实际需要(位图占用的空间大小的衡量、分配的基本单位等都可以作为划分物理块大小的标准)选择不同大小的管理粒度。假设每个标记位的比特位初始值均为0,如果标记位对应的物理块出现某种状态后,对应的比特位可以更新为1。例如,图5中的比特位为第一物理块对应的比特位,如果第一物理块出现读失败,第一物理块对应的比特位中的第二个比特位更新为1。系统中每块硬盘均有如上这样的一个位图,标记硬盘对应的各个物理块的状态。位图会定期持久化到硬盘上,确保状态信息能够得到传承和延续。系统在从硬盘上读数据的时候,可根据读操作对应的响应时间以及错误码,确定并刷新该物理块的状态。系统将数据写入该硬盘的时候,也可根据写操作对应的时间以及错误码等信息,确定并刷新该物理块对应的状态,从而,能够对存储介质的物理块的状态进行实时的监控更新,对物理块的异常做到提前预防,提高硬盘的使用性能和可靠性。另外,可以对物理块的状态进行等级划分。假设对物理块按等级划分为6个等级,坏道对应等级1,读失败和写失败对应等级2,读超时和写超时对应等级3,读慢和写慢对应等级4,读恢复对应等级5,未发生过任何读写问题对应等级6。等级越大,物理块越健康。等级为1的不能用;等级为6的未发生过任何读写问题。当然,也可用其它的标记来区别,这里的数值和大小只是示意性说明,实际应用中可根据需要进行调整。对于发生过多种错误的物理块,以最严重的为基准。例如,物理块发生过读超时,也发生过读失败,则以读失败为准。可选的,还可以对每个比特位,按严重程度设置每个故障根因的权重。例如,坏道对应的权重为128,读失败或写失败对应的权重为64,读超时或写超时对应的权重为32;读慢或写慢对应的权重为16;发生轻微的读写问题对应的权重为8。累加各个比特对应的权重,可计算得到整个物理块的权重。权重越大,物理块越不健康;权重为0的物理块未发生过任何的读写问题。s311、根据原始坏道信息更新位图。原始坏道信息包括生产硬盘时产生的坏道。s312、对第i物理块进行初始检测,得到初始检测结果。初始检测包括初始读操作和初始写操作。初始检测可以参考s301至s308的详细阐述,本申请实施例在此步骤赘述。s313、根据初始检测结果更新第i物理块对应的标记位。从而,通过对位图进行初始化,排除生成过程中产生的坏道,避免对硬盘进行读操作或写操作时,坏道影响硬盘的使用性能。s305、获取第一操作成功响应。虽然,可以成功对第一物理块进行第一操作,例如,对第一物理块进行第一读操作,能够成功从第一物理块中读取出存储的数据;或者,对第一物理块进行第一写操作,能够将数据成功写入第一物理块,但是,由于存储介质本身蜕化等原因,第一操作的操作时长可能较长,因此,即使第一操作成功,本申请实施例所述的方案在第一操作成功后还需要根据第一操作的操作时长评估第一物理块。s306、获取第一操作的操作时长。在获取到第一操作成功响应之后,获取第一操作的操作时长。s307、根据第一操作的操作时长评估第一物理块,得到第一评估结果。获取到第一操作的操作时长之后,根据第一操作的操作时长评估第一物理块,得到第一评估结果。需要说明的是,可以针对存储介质中每个物理块进行操作的操作时长分别预先设置多个阈值,将操作时长与不同的阈值进行比较时,由于不同阈值的值不同,评估的结果也是不同的。例如,操作慢或操作超时。下面对于本申请实施例所述的根据第一操作的操作时长评估第一物理块,得到第一评估结果进行举例说明。在一种可能的实现方式中,如果第一操作的操作时长只是稍微慢一点,而非很长时间,此时,可以认为第一操作为慢。示例的,如图6所示,根据第一操作的操作时长评估第一物理块,得到第一评估结果具体地可以包括以下详细步骤:s3071、根据第一物理块的大小获取第一物理块对应的第一阈值。需要说明的是,第一操作可以是第一读操作,也可以是第一写操作。对于不同的操作,第一阈值也是不同的。例如,第一操作为第一读操作,第一阈值为第一物理块对应的读操作基准时延;第一操作为第一写操作,第一阈值为第一物理块对应的写操作基准时延。示例的,假设以16kb对存储介质进行划分,每个数据块的大小为16kb,不同范围的数据块对应的读操作基准时延不同;同理,不同范围的数据块对应的写操作基准时延也是不同的。如表1所示。表1读/写lba范围基准时延(us)个数累加时延(us)最小值(单次)最大值(单次)读(0,16kb]150101500100500读(16kb,32kb]150101600120505读(32kb,48kb]200204000901000读(48kb,64kb]200204200105800读(64kb,80kb]250102600110900读(80kb,96kb]3001030001001100读(96kb,112kb]3001029001101200读………………写(0,16kb]20010200040800写(16kb,32kb]20020420050900写(32kb,48kb]250102500501200写(48kb,64kb]25010250060900写(64kb,80kb]300205500501000写(80kb,96kb]3003010000601300写(96kb,112kb]300207000701500写………………上述表1中的数据只是示例性说明,实际使用的时候,可选用里面的部分列,也可以根据需要进行扩充。其中,“读/写”:代表操作的类型。“lba范围”:代表操作的物理块的逻辑区块地址(logicalblockaddress,lba)的大小范围。“基准时延(us)”:代表物理块的大小在对应范围内,对该物理块进行操作的操作时长,操作时长是从对物理块下达命令到接收到响应的时长。“个数”:代表物理块的大小在对应范围内,对该物理块进行操作的总个数。“累加时延(us)”:代表物理块的大小在对应范围内,对该物理块进行操作的操作时长的累加值。“最小值(单次)”:代表物理块的大小在对应范围内,对该物理块进行操作的操作时长的最小值。“最大值(单次)”:代表物理块的大小在对应范围内,对该物理块进行操作的操作时长的最大值。可选择的,也可以按照4kb或8kb对存储介质进行划分,每个物理块的大小为4kb或8kb。一个区间对应一个物理块,对于某个划分区间的读操作或者写操作,对应一个基准时延。例如,对于大于80kb且不大于96kb的读操作,对应的基准时延是300微秒(us);对于大于96kb且不大于112kb的写操作,对应的基准时延是350us。不同类型的硬盘,因为存储介质本身的差别,对应的基准时延会有所差异。根据存储介质的类型的不同,应建立不同的基准时延表。另外,对于基准时延,系统可以预先进行配置,也可以通过实际运行过程统计得到。示例的,基准时延可以参考以下方法得到:第一、预先实测数据:在较长时长内,对硬盘下发大量的读操作和写操作,获取读操作的操作时长和写操作的操作时长,以这些数据为基准,刷新不同大小的读操作和写操作的基准时延。假设对应到8kb的读操作,收集到多种场景下的100万条操作时长,取某个值x作为8kb读操作的基准时延。x的选取标准:100万条操作时长,99%的不大于x,1%的大于x(这里的百分比,可根据需要选择不同的比例,比如90%,99.9%,99.99%等)。第二、基于实际运行过程收集数据:系统实时记录不同lba范围的时延(个数+总时延),在记录的过程中,丢弃明显异常的值(比如明显超过盘的正常相应时间规格的值,比如超过平均值50倍的)。实际使用的时候,可根据累加的时延除以操作的个数,得到这类操作的平均响应时间。第三、预先实测数据+后续实际运行过程中收集的数据的组合:以实测的数据为基准,周期性地(比如一天/一周/一个月修订)基于后期实际运行过程中收集的数据的平均值(或平均值的*倍)来修订这个基准时延。s3072、将第一操作的操作时长与第一阈值进行比较,得到第一操作的操作时长为第一阈值的n倍。s3073、确定第一评估结果,第一评估结果为第一操作慢。在另一种可能的实现方式中,如图7所示,根据第一操作的操作时长评估第一物理块,得到第一评估结果包括以下详细步骤:s3074、根据第一物理块的大小获取第一物理块对应的第二阈值。需要说明的是,第一操作可以是第一读操作,也可以是第一写操作。对于不同的操作,第一阈值也是不同的。例如,第一操作为第一读操作,第二阈值为第一物理块对应的读操作超时时延;第一操作为第一写操作,第二阈值为第一物理块对应的写操作超时时延。s3075、将第一操作的操作时长与第二阈值进行比较,得到第一操作的操作时长大于第二阈值。s3076、确定第一评估结果,第一评估结果为第一操作超时。s308、根据第一评估结果更新第一物理块对应的标记位。根据第一操作的操作时长评估第一物理块,得到第一评估结果之后,根据第一评估结果更新第一物理块对应的标记位。为了进一步的确认第一评估结果,在根据第一评估结果更新第一物理块对应的标记位之后,还需要对评估结果进行验证。如图8所示,本申请实施例还包括以下步骤:s314、验证第一物理块的第一评估结果。具体的,对第一物理块进行第二操作,第二操作为第二读操作或第二写操作,第二写操作与第一写操作不同,第二读操作与第一读操作不同;获取第二操作成功响应;获取第二操作的操作时长;根据第二操作的操作时长评估第一物理块,得到第二评估结果,第二评估结果为第二操作慢或第二操作超时;若第二评估结果与第一评估结果相同,保持第一物理块的标记位;若第二评估结果与第一评估结果不同,更新第一物理块的标记位。需要说明的是,在系统比较空闲的时候,即在第一物理块空闲时,或者,对第一物理块读操作较少时,发起对第一物理块的读验证,对第一物理块对应的区域进行读操作,再次验证读操作对应的时延。如果读操作还是慢,需要再次在硬盘相对空闲的时候进行确认。如果3次操作中有一次发现第一物理块上的读操作响应慢或者超时,则标记第一物理块为读读响应慢或者超时。可选的,也可以在确定第一评估结果,即确定对第一物理块进行读操作的操作慢或操作超时,或对第一物理块进行写操作的操作慢或操作超时后,无需等待硬盘空闲或对硬盘操作较少时,进行验证第一物理块的第一评估结果,而是可以随机延时s(比如60s内的随机值),对第一物理块进行读操作,验证读操作对应的时延。如果读操作对应的时延是读操作基准时延的n倍以上,需要再次随机延时s进行确认。如果3次操作中有一次发现第一物理块上的读操作响应慢或者超时,则标记第一物理块为读慢或者读超时。由于不能随便对原来的区域进行再次覆盖写,写操作的确认只能在下次写的时候进行确认。再次写的时候依然响应慢或者超时,则直接确认第一物理块写的时候响应慢或者超时。经过验证确认后,第一物理块的位图中的相关比特位,根据验证结果进行修订:如果验证发现第一物理块能够正常地读写,则将相关的比特位置0;否则表明在后台验证中确认了相关的现象,维持对应的值不变。另外,第一操作为第一写操作,在根据第一操作失败响应更新第一物理块对应的标记位之后,或者,在根据第一评估结果更新第一物理块对应的标记位之后,第一评估结果为第一操作超时,还需要确定第二物理块,对第二物理块进行第一操作,即将需要写入的数据写入到第二物理块。本申请实施例提供的评估存储介质的方法,在对存储介质的物理块进行读操作或写操作过程中,通过读操作响应或写操作响应来对相关物理块进行评估,根据评估结果更新物理块的标记位,从而,能够对存储介质的物理块的状态进行实时的监控更新,对物理块的异常做到提前预防,提高硬盘的使用性能和可靠性。上述主要从各个网元之间交互的角度对本申请实施例提供的方案进行了介绍。可以理解的是,各个网元,例如评估存储介质的装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。本申请实施例可以根据上述方法示例对评估存储介质的装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在采用对应各个功能划分各个功能模块的情况下,图9示出了上述和实施例中涉及的评估存储介质的装置的一种可能的组成示意图,如图9所示,该评估存储介质的装置可以包括:操作单元901、确定单元902、更新单元903、评估单元904。其中,操作单元901,用于支持评估存储介质的装置执行图3所示的评估存储介质的方法中的s301、s302、s305、s306,图4所示的评估存储介质的方法中的s312,图8所示的评估存储介质的方法中的s301、s302、s305、s306、s314。确定单元902,用于支持评估存储介质的装置执行图3所示的评估存储介质的方法中的s303。更新单元903,用于支持评估存储介质的装置执行图3所示的评估存储介质的方法中的s304、s308,图4所示的评估存储介质的方法中的s311、s313,图8所示的评估存储介质的方法中的s304、s308。评估单元904,用于支持评估存储介质的装置执行图3所示的评估存储介质的方法中的s307,图6所示的评估存储介质的方法中的s3071、s3072、s3073,图7所示的评估存储介质的方法中的s3074、s3075、s3076,图8所示的评估存储介质的方法中的s307。在本申请实施例中,进一步的,该评估存储介质的装置还可以包括:划分单元905和生成单元906。划分单元905,用于支持评估存储介质的装置执行图4所示的评估存储介质的方法中的s309。生成单元906,用于支持评估存储介质的装置执行图4所示的评估存储介质的方法中的s310。需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。本申请实施例提供的评估存储介质的装置,用于执行上述评估存储介质的方法,因此可以达到与上述评估存储介质的方法相同的效果。在采用集成的单元的情况下,图10示出了上述实施例中所涉及的评估存储介质的装置的另一种可能的组成示意图。如图10所示,该评估存储介质的装置包括:处理模块1001和通信模块1002。处理模块1001用于对评估存储介质的装置的动作进行控制管理,例如,处理模块1001用于支持评估存储介质的装置执行图3、图4、图6、图7和图8中的各个步骤、和/或用于本文所描述的技术的其它过程。通信模块1002用于支持评估存储介质的装置与其他网络实体的通信,例如与图2中示出的存储器,硬盘之间的通信。评估存储介质的装置还可以包括存储模块1003,用于存储评估存储介质的装置的程序代码和数据。其中,处理模块1001可以是处理器或控制器。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。通信模块1002可以是通信接口等。存储模块1003可以是存储器。当处理模块1001为处理器,通信模块1002为通信接口,存储模块1003为存储器时,本申请实施例所涉及的评估存储介质的装置可以为图2所示的评估存储介质的装置。通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1