CN111816239B - 磁盘检测方法、装置、电子设备及机器可读存储介质 - Google Patents

磁盘检测方法、装置、电子设备及机器可读存储介质 Download PDF

Info

Publication number
CN111816239B
CN111816239B CN201910294877.9A CN201910294877A CN111816239B CN 111816239 B CN111816239 B CN 111816239B CN 201910294877 A CN201910294877 A CN 201910294877A CN 111816239 B CN111816239 B CN 111816239B
Authority
CN
China
Prior art keywords
data
sector
read
disk
error
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
Application number
CN201910294877.9A
Other languages
English (en)
Other versions
CN111816239A (zh
Inventor
张学东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Macrosan Technologies Co Ltd
Original Assignee
Macrosan Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Macrosan Technologies Co Ltd filed Critical Macrosan Technologies Co Ltd
Priority to CN201910294877.9A priority Critical patent/CN111816239B/zh
Publication of CN111816239A publication Critical patent/CN111816239A/zh
Application granted granted Critical
Publication of CN111816239B publication Critical patent/CN111816239B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/10Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/30Accessing single arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information

Landscapes

  • Debugging And Monitoring (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本申请提供一种磁盘检测方法、装置、电子设备及机器可读存储介质。在本申请中,基于预设的RAID算法,计算获得第一数据,其中,所述第一数据包括读错误扇区对应故障条块保存的数据;向所述故障条块写入所述第一数据,若所述第一数据写入成功,则向所述故障条块下发读命令,获得第二数据;基于预设的数据一致性算法,判断所述第二数据与所述第一数据是否一致,若一致,则确定所述读错误扇区对应的磁盘为已修复。通过上述方法,基于对存在读错误扇区进行数据回写,触发磁盘的坏扇区重映射机制;以及,对读错误扇区回写的数据再读取,并执行数据一致性校验,进一步确保了读错误扇区得到真正修复,从而提高了RAID的可靠性,保证了数据的可靠性。

Description

磁盘检测方法、装置、电子设备及机器可读存储介质
技术领域
本申请涉及存储技术领域,尤其涉及磁盘检测方法、装置、电子设备及机器可读存储介质。
背景技术
随着信息技术的发展,越来越多的数据被保存在磁盘中,为了提高磁盘中数据的可靠性,通常使用RAID(Redundant Arrays of Independent Disks,独立磁盘冗余阵列)技术对磁盘中的数据进行冗余保护。
RAID是一种把多块独立的物理磁盘按不同的方式组合起来形成的一个磁盘阵列的存储技术,基于RAID的阵列可以提供比单个磁盘更高的存储性能。RAID技术可以有多种实现策略,其中,常用的RAID策略包括RAID0、RAID1、RAID5、RAID6、RAID10等。
然而,因为突发的震动或机械故障导致磁盘盘面被划伤,或者磁盘盘面蒙尘等因素而出现磁盘介质错误的情形不可避免地发生,当RAID阵列中连续多块磁盘出现磁盘介质错误时,由于RAID重建速率较低,很有可能导致RAID阵列对数据的冗余保护机制失效,导致数据丢失。因此,通过及时发现磁盘介质问题并对介质错误的磁盘进行修复,可以有效地提高数据的可靠性。
发明内容
本申请提供一种磁盘检测方法,所述方法应用于存储设备,所述存储设备预配置有至少一个具有冗余性的RAID阵列,所述RAID阵列包括若干个磁盘,所述方法包括:
基于预设的RAID算法,计算获得第一数据,其中,所述第一数据包括读错误扇区对应故障条块保存的数据;
向所述故障条块写入所述第一数据,若所述第一数据写入成功,则向所述故障条块下发读命令,获得第二数据;
基于预设的数据一致性算法,判断所述第二数据与所述第一数据是否一致,若一致,则确定所述读错误扇区对应的磁盘为已修复。
可选的,所述第一数据还包括与所述读错误扇区为相邻扇区对应条块保存的数据,所述向所述故障条块写入所述第一数据,还包括:
将所述第一数据中的与所述读错误扇区为相邻扇区对应条块保存的数据,写入所述相邻扇区对应条块。
可选的,所述向所述故障条块下发读命令,获得第二数据,还包括:
向所述相邻扇区对应条块下发读命令,获得第二数据,其中,所述第二数据还包括从所述相邻扇区对应条块读取的数据。
可选的,还包括:
若所述第二数据与所述第一数据不一致,则确定所述磁盘为故障。
可选的,所述数据一致性算法为异或算法。
可选的,所述异或算法基于硬件实现。
本申请还提供一种磁盘检测装置,所述装置应用于存储设备,所述存储设备预配置有至少一个具有冗余性的RAID阵列,所述RAID阵列包括若干个磁盘,所述装置包括:
计算模块,基于预设的RAID算法,计算获得第一数据,其中,所述第一数据包括读错误扇区对应故障条块保存的数据;
读写模块,向所述故障条块写入所述第一数据,若所述第一数据写入成功,则向所述故障条块下发读命令,获得第二数据;
检测模块,基于预设的数据一致性算法,判断所述第二数据与所述第一数据是否一致,若一致,则确定所述读错误扇区对应的磁盘为已修复。
可选的,所述第一数据还包括与所述读错误扇区为相邻扇区对应条块保存的数据,所述读写模块进一步:
将所述第一数据中的与所述读错误扇区为相邻扇区对应条块保存的数据,写入所述相邻扇区对应条块。
可选的,所述向所述故障条块下发读命令,获得第二数据,所述读写模块进一步:
向所述相邻扇区对应条块下发读命令,获得第二数据,其中,所述第二数据还包括从所述相邻扇区对应条块读取的数据。
可选的,所述检测模块进一步:
若所述第二数据与所述第一数据不一致,则确定所述磁盘为故障。
可选的,所述数据一致性算法为异或算法。
可选的,所述异或算法基于硬件实现。
本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述非易失性存储之间通过总线相互连接;
所述非易失性存储中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述的方法。
本申请还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述方法。
通过以上实施例,基于对存在读错误扇区进行数据回写,触发磁盘的坏扇区重映射机制;以及,对读错误扇区回写的数据再读取,并执行数据一致性校验,进一步确保了读错误扇区得到真正修复,从而提高了RAID的可靠性,保证了数据的可靠性。
附图说明
图1是一示例性实施例提供的一种磁盘检测方法的流程图;
图2是一示例性实施例提供的一种电子设备的硬件结构图;
图3是一示例性实施例提供的一种磁盘检测装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,下面先对本申请实施例涉及的磁盘检测的相关技术,进行简要说明。
为了方便理解,先介绍下在本说明书中,RAID相关基本概念。RAID技术是将多个独立的物理磁盘按照不同的方式组合起来,形成一个虚拟磁盘。通过采用RAID技术,可以实现并行读写数据,提高了数据的存取速率,同时,RAID技术运用了镜像、奇偶校验等技术对数据进行冗余保护,极大地提高了数据的可靠性。
一个RAID阵列可以包含多个成员磁盘,RAID阵列中的数据组织方式包括条块和条带。其中,条块是RAID阵列管理存储空间的最小单位,在创建RAID阵列时,将其包括的成员磁盘的存储空间按预设条块大小划分为大小相等、地址相邻的块,这些大小相等、地址相邻的块称为条块;条带是RAID阵列的多个成员磁盘上位置相关的条块的集合,根据RAID级别不同,RAID实现方式不同,RAID阵列中成员磁盘的数目不同,成员磁盘状态不同以及RAID算法不同,条块中数据的RAID冗余性也不同。
在RAID技术中,RAID阵列对读/写命令的处理是按照条带进行处理的,当RAID阵列接收到上层软件下发的读/写命令后,基于该读/写命令中携带的地址确定待操作的条带,之后基于RAID级别、RAID算法、成员磁盘状态等因素,把该读/写命令拆分为针对该条带中一个或多个成员磁盘的对应条块的读/写命令,将拆分后的读/写命令发给相应的成员磁盘执行。后续,成员磁盘执行接收到的读/写命令,并将执行结果返回至RAID阵列。
为了方便理解,再介绍下磁盘坏扇区重映射机制。通常情况下,磁盘出厂时,磁盘生产厂家就在磁盘中保留一部分扇区,该部分扇区对磁盘的使用者不可见,磁盘可以将该部分扇区作为备用扇区,当磁盘发生写错误时,磁盘可以自动将发生写错误的坏扇区映射到备用扇区,即将指向该坏扇区的地址替换成指向备用扇区的地址,后续,磁盘可以重新向已映射完成的备用扇区中写入数据,后续也将不再访问坏扇区。基于上述所描述的磁盘坏扇区重映射机制,上层软件并不会感知到磁盘发生写错误,从而认为磁盘正常,后续,直至磁盘的备用扇区用完时,上层软件才可以感知到磁盘发生写错误,从而确定磁盘故障。
在一些场景下,磁盘故障的常见原因主要分为两类:机械故障、介质错误;其中,一旦磁盘发生机械故障,磁盘基本不可用,具有不可修复性。而介质错误又分为两种情况:物理介质真正损坏、磁盘FW(FirmWare,固件)软件BUG引起的介质错误。
其中,当构成磁盘的物理介质发生真正损坏后,磁盘可以利用上述磁盘坏扇区重映射机制实现介质的重新映射,从而实现坏扇区被修复效果。
而对于磁盘FW软件BUG引起的介质错误,其是由FW软件的映射算法BUG引起的,这种介质错误表现的效果是:写入磁盘扇区的数据和从该磁盘扇区读出的数据是不一致;或者数据可以写入该扇区,但是从该扇区读出时会报错。因此,该类错误具有隐藏深、不可预测性、不可修复性。若发生该类错误,而存储设备又未及时识别,则将极大影响坏扇区所在RAID阵列的数据可靠性。
基于上述场景,在现有方案中,对于磁盘FW软件BUG引起的介质错误,上述磁盘坏扇区重映射机制无法确保坏扇区被完全修复,从而影响导致对应RAID阵列的数据不可靠。
而本申请旨在提出一种,基于对存在读错误扇区进行数据回写,以及对回写数据读出,进行再校验的技术方案。
在实现时,基于预设的RAID算法,计算获得读错误扇区对应故障条块保存的数据;将向所述故障条块写入上述数据,若上述数据写入成功,则向上述故障条块下发读命令,获得回写数据;基于预设的数据一致性算法,判断已读出的上述回写数据与上述数据是否一致,若一致,则确定上述读错误扇区对应的磁盘为已修复。
在以上方案中,基于对存在读错误扇区进行数据回写,触发磁盘的坏扇区重映射机制;以及,对读错误扇区回写的数据再读取,并执行数据一致性校验,进一步确保了读错误扇区得到真正修复,从而提高了RAID的可靠性,保证了数据的可靠性。
下面通过具体实施例并结合具体的应用场景对本申请进行描述。
请参考图1,图1是本申请一实施例提供的一种磁盘检测方法的流程图,所述方法应用于存储设备,所述存储设备预配置有至少一个具有冗余性的RAID阵列,所述RAID阵列包括若干个磁盘,上述方法执行以下步骤:
步骤102、基于预设的RAID算法,计算获得第一数据,其中,所述第一数据包括读错误扇区对应故障条块保存的数据。
步骤104、向所述故障条块写入所述第一数据,若所述第一数据写入成功,则向所述故障条块下发读命令,获得第二数据。
步骤106、基于预设的数据一致性算法,判断所述第二数据与所述第一数据是否一致,若一致,则确定所述读错误扇区对应的磁盘为已修复。
以下通过具体的实施例,并结合“读错误扇区监测”、“数据回写”、“回写数据的一致性校验”,对本申请的涉及的技术方案进行详细描述:
1)读错误扇区监测
在本说明书中,上述RAID阵列是指,被存储设备管理的,具有冗余性的阵列,其中,上述RAID阵列包括若干个成员磁盘。
例如:RAID类型为RAID5的阵列,可以允许一块磁盘故障而依然能保证数据可靠,具有冗余性。又例如:RAID类型为RAID10的阵列,可以允许一半数目的磁盘故障而依然能保证数据可靠,具有冗余性。
在本说明书中,上述RAID算法,是指与上述RAID阵列对应的RAID类型所使用的算法。
在本说明书中,当存储设备接收到针对上述RAID阵列的读/写命令后,基于该读/写命令中携带的地址确定待操作的条带,之后基于RAID类型、RAID算法、成员磁盘状态等因素,把该读/写命令拆分为针对该条带中一个或多个成员磁盘的对应条块的读/写命令,将拆分后的读/写命令发给相应的成员磁盘执行。当上述成员磁盘执行接收到的读/写命令时,如果某个成员磁盘中待读/写条块故障,那么,该成员磁盘可以向存储设备返回用于表示读/写命令错误的执行结果,其中,上述执行结果至少包括读/写错误扇区。
在本说明书中,上述读错误扇区是指,上述成员磁盘执行接收到的读命令时,发生数据读取错误对应的一个或多个磁盘扇区。
在本说明书中,上述故障条块是指,存储设备在获得上述读错误扇区之后,基于RAID类型对应的RAID算法,计算确定与上述读错误扇区对应的条块。
在本说明书中,存储设备针对上述RAID阵列的读命令执行监测;获得上述读错误扇区以及对应的上述故障条块;基于RAID类型对应的RAID算法,以及上述故障条块在同一条带的其它条块,将上述故障条块保存的数据恢复出来。具体针对不同RAID类型对应的RAID算法如何恢复数据,本领域技术人员可以参见现有技术中的相关描述,本申请对此不做详述。
在本说明书中,上述第一数据包括,存储设备通过RAID算法计算后获得的上述读错误扇区对应故障条块保存的数据。
2)数据回写
在本说明书中,存储设备向上述故障条块写入上述第一数据。
在本说明书中,在示出的另一种实施方式中,进一步地,上述第一数据还包括,与上述读错误扇区为相邻扇区对应条块保存的数据;其中,上述相邻扇区可以在存储设备中设置。
例如:在存储设备上可以预先设置一个扇区偏移量,该扇区偏移量可以以容量大小为单位,也可以以扇区个数为单位,基于该相邻扇区偏移量,从上述读错误扇区处进行双向偏移,可以得到上述相邻扇区的范围。在获得上述相邻扇区之后,存储设备基于RAID类型对应的RAID算法,计算确定与上述相邻扇区对应的条块,简称为“相邻条块”;并将上述相邻条块保存的数据读取出来作为上述第一数据的一部分。
在本说明书中,存储设备将包含故障条块保存的数据的上述第一数据,写入上述故障条块;若写入成功,则可以认为该磁盘中还有剩余的备用扇区,并且,在向故障条块写入上述第一数据的过程中,已触发了磁盘坏扇区重映射,即该磁盘已自动进行了修复,该磁盘仍可用;若上述第一数据写入失败,则基于上述磁盘坏扇区重映射机制,可以认为该磁盘中已不存在备用扇区,从而可以确定该磁盘已不可用。
在本说明书中,在示出的另一种实施方式中,存储设备将包含故障条块保存的数据,以及上述相邻条块保存的数据的上述第一数据,分别写入到上述故障条块、以及上述相邻条块;若写入成功,则可以认为该磁盘中还有剩余的备用扇区,并且,在向故障条块写入上述第一数据的过程中,已触发了磁盘坏扇区重映射,即该磁盘已自动进行了修复,该磁盘仍可用;若上述第一数据写入失败,则基于上述磁盘坏扇区重映射机制,可以认为该磁盘中已不存在备用扇区,从而可以确定该磁盘已不可用,也即确定该磁盘为故障。
在本说明书中,在上述第一数据(仅包含上述故障条块对应保存的数据)写入成功后,存储设备向上述故障条块下发读命令,获得第二数据,其中,上述第二数据包括从上述故障条块中读取的数据。
需要说明的是,由于上述第一数据写入成功,若上述故障条块对应的读错误扇区存在的故障是:物理介质真正损坏;并且该磁盘对应存在备用扇区,基于上述磁盘坏扇区重映射机制,上述故障条块实际上已被真正修复。然而,若上述故障条块对应的读错误扇区存在的故障是:磁盘FW软件BUG引起的介质错误;虽然上述第一数据可以写入成功,但从上述故障条块再次下发读命令时,读取的数据可能发生错误或者无法读出。
在示出的另一种实施方式中,在上述第一数据(包含上述故障条块对应保存的数据,以及上述相邻条块保存的数据)写入成功后,存储设备向上述故障条块,以及上述相邻条块,下发读命令,获得上述第二数据,其中,上述第二数据包括从上述故障条块中读取的数据、以及从上述相邻条块中读取的数据。
需要说明的是,在上述第二数据可获得的情况,对应上述第二数据的读命令可以正常返回,若上述第二数据的读命令无法正常返回,则上述第二数据获取失败;上述故障条块对应的读错误扇区已完全损坏,存储设备可以确定该磁盘已不可用,也即确定该磁盘为故障。
在本说明书中,上述第二数据,也被简称为“回写数据”。
由于磁盘介质损坏时一般都是一片区域,而不是几个扇区损坏,因此,基于上述“数据回写”过程,对故障条块以及相邻条块进行数据回写,不再局限于读错误扇区对应故障条块的数据,而是对错误扇区的相邻扇区对应相邻条块的数据进行数据回写,这样实现可以尽可能多的通过磁盘坏扇区重映射机制,对错误扇区以及潜在的错误扇区进行修复。
3)回写数据的一致性校验
在本说明书中,在上述第二数据,也即“回写数据”被存储设备读取后,可以进一步将上述第二数据与上述第一数据,进行数据比较,分析两者是否一致,上述过程,也被简称为“回写数据的一致性校验”。
在本说明书中,存储设备基于预设的数据一致性算法,判断上述第二数据与上述第一数据是否一致,若一致,则确定上述读错误扇区对应的磁盘为已修复。
存储设备在进行“回写数据的一致性校验”的时候,可以基于软件进行数据比较。
例如:存储设备可以以固定字节的长度方式,分别从上述第二数据与上述第一数据中,读取相同偏移位置对应的数据,逐一进行比较。
而上述数据比较的方式,效率相对较低,在示出的另一种实施方式中,上述数据一致性算法为异或算法,存储设备可以基于异或算法,将上述第二数据与上述第一数据按bit位执行异或运算,若上述异或运算对应的最后结果为零,则指示上述第二数据与上述第一数据一致;否则,则指示上述第二数据与上述第一数据不一致。
在本说明书中,存储设备对上述异或算法,可以基于集成于其上的CPU执行软运算。
而上述CPU执行软运算的方式,效率相对较低,在示出的另一种实施方式中,存储设备可以获取自身的硬件模块,若上述硬件模块中存在对应支持异或运算的RAID硬件,则可以基于上述RAID硬件执行上述异或算法的硬运算。
例如:存储设备若存在支持RAID5算法的硬件,则可以基于RAID5算法的硬件执行上述异或运算,从而提高运算效率。
在本说明书中,存储设备基于预设的数据一致性算法,判断上述第二数据与上述第一数据是否一致,在示出的另一种实施方式中,若上述第二数据与上述第一数据不一致,则确定上述读错误扇区对应的磁盘为故障。
基于上述“回写数据的一致性校验”过程,存储设备可以有效发现磁盘FW软件BUG引起的介质错误,并确保从修复后的读错误扇区对应的故障条块以及相邻扇区对应的相邻条块,读取的数据有效。
在以上技术方案中,基于对存在读错误扇区进行数据回写,触发磁盘的坏扇区重映射机制;以及,对读错误扇区回写的数据再读取,并执行数据一致性校验,进一步确保了读错误扇区得到真正修复,从而提高了RAID的可靠性,保证了数据的可靠性。
与上述方法实施例相对应,本申请还提供了磁盘检测装置的实施例。
与上述方法实施例相对应,本说明书还提供了一种磁盘检测装置的实施例。本说明书的磁盘检测装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本说明书的磁盘检测装置所在电子设备的一种硬件结构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
图3是本说明书一示例性实施例示出的一种磁盘检测装置的框图。
请参考图3,所述磁盘检测装置30可以应用在前述图2所示的电子设备中,所述装置应用于存储设备,所述存储设备预配置有至少一个具有冗余性的RAID阵列,所述RAID阵列包括若干个磁盘,所述装置包括:
计算模块301,基于预设的RAID算法,计算获得第一数据,其中,所述第一数据包括读错误扇区对应故障条块保存的数据;
读写模块302,向所述故障条块写入所述第一数据,若所述第一数据写入成功,则向所述故障条块下发读命令,获得第二数据;
检测模块303,基于预设的数据一致性算法,判断所述第二数据与所述第一数据是否一致,若一致,则确定所述读错误扇区对应的磁盘为已修复。
在本实施例中,所述第一数据还包括与所述读错误扇区为相邻扇区对应条块保存的数据,所述读写模块302进一步:
将所述第一数据中的与所述读错误扇区为相邻扇区对应条块保存的数据,写入所述相邻扇区对应条块。
在本实施例中,所述向所述故障条块下发读命令,获得第二数据,所述读写模块302进一步:
向所述相邻扇区对应条块下发读命令,获得第二数据,其中,所述第二数据还包括从所述相邻扇区对应条块读取的数据。
在本实施例中,所述检测模块303进一步:
若所述第二数据与所述第一数据不一致,则确定所述磁盘为故障。
在本实施例中,所述数据一致性算法为异或算法。
在本实施例中,所述异或算法基于硬件实现。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的装置、装置、模块或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与上述方法实施例相对应,本说明书还提供了一种电子设备的实施例。所述电子设备可以应用于存储设备,所述存储设备预配置有至少一个具有冗余性的RAID阵列,所述RAID阵列包括若干个磁盘;该电子设备包括:处理器以及用于存储机器可执行指令的存储器;其中,处理器和存储器通常通过内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与磁盘检测逻辑对应的机器可执行指令,所述处理器被促使:
基于预设的RAID算法,计算获得第一数据,其中,所述第一数据包括读错误扇区对应故障条块保存的数据;
向所述故障条块写入所述第一数据,若所述第一数据写入成功,则向所述故障条块下发读命令,获得第二数据;
基于预设的数据一致性算法,判断所述第二数据与所述第一数据是否一致,若一致,则确定所述读错误扇区对应的磁盘为已修复。
在本实施例中,所述第一数据还包括与所述读错误扇区为相邻扇区对应条块保存的数据,通过读取并执行所述存储器存储的与磁盘检测逻辑对应的机器可执行指令,所述处理器被促使:
将所述第一数据中的与所述读错误扇区为相邻扇区对应条块保存的数据,写入所述相邻扇区对应条块。
在本实施例中,通过读取并执行所述存储器存储的与磁盘检测逻辑对应的机器可执行指令,所述处理器被促使:
向所述相邻扇区对应条块下发读命令,获得第二数据,其中,所述第二数据还包括从所述相邻扇区对应条块读取的数据。
在本实施例中,通过读取并执行所述存储器存储的与磁盘检测逻辑对应的机器可执行指令,所述处理器被促使:
若所述第二数据与所述第一数据不一致,则确定所述磁盘为故障。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

Claims (12)

1.一种磁盘检测方法,其特征在于,所述方法用于检测磁盘FW软件BUG引起的介质错误;所述方法应用于存储设备,所述存储设备预配置有至少一个具有冗余性的RAID阵列,所述RAID阵列包括若干个磁盘,所述方法包括:
基于预设的RAID算法,计算获得第一数据,其中,所述第一数据包括读错误扇区对应故障条块保存的数据;
向所述故障条块写入所述第一数据,若所述第一数据写入成功,则向所述故障条块下发读命令,获得第二数据;
基于预设的数据一致性算法,判断所述第二数据与所述第一数据是否一致,若一致,则确定所述读错误扇区对应的磁盘为已修复;
若第二数据获取失败,或者所述第二数据与所述第一数据不一致,确定所述读错误扇区存在的故障为:磁盘FW软件BUG引起的介质错误。
2.根据权利要求1所述的方法,其特征在于,所述第一数据还包括与所述读错误扇区为相邻扇区对应条块保存的数据,所述向所述故障条块写入所述第一数据,还包括:
将所述第一数据中的与所述读错误扇区为相邻扇区对应条块保存的数据,写入所述相邻扇区对应条块。
3.根据权利要求2所述的方法,其特征在于,所述向所述故障条块下发读命令,获得第二数据,还包括:
向所述相邻扇区对应条块下发读命令,获得第二数据,其中,所述第二数据还包括从所述相邻扇区对应条块读取的数据。
4.根据权利要求1所述的方法,其特征在于,所述数据一致性算法为异或算法。
5.根据权利要求4所述的方法,其特征在于,所述异或算法基于硬件实现。
6.一种磁盘检测装置,其特征在于,所述装置用于检测磁盘FW软件BUG引起的介质错误;所述装置应用于存储设备,所述存储设备预配置有至少一个具有冗余性的RAID阵列,所述RAID阵列包括若干个磁盘,所述装置包括:
计算模块,基于预设的RAID算法,计算获得第一数据,其中,所述第一数据包括读错误扇区对应故障条块保存的数据;
读写模块,向所述故障条块写入所述第一数据,若所述第一数据写入成功,则向所述故障条块下发读命令,获得第二数据;
检测模块,基于预设的数据一致性算法,判断所述第二数据与所述第一数据是否一致,若一致,则确定所述读错误扇区对应的磁盘为已修复;若第二数据获取失败,或者所述第二数据与所述第一数据不一致,确定所述读错误扇区存在的故障为:磁盘FW软件BUG引起的介质错误。
7.根据权利要求6所述的装置,其特征在于,所述第一数据还包括与所述读错误扇区为相邻扇区对应条块保存的数据,所述读写模块进一步:
将所述第一数据中的与所述读错误扇区为相邻扇区对应条块保存的数据,写入所述相邻扇区对应条块。
8.根据权利要求7所述的装置,其特征在于,所述向所述故障条块下发读命令,获得第二数据,所述读写模块进一步:
向所述相邻扇区对应条块下发读命令,获得第二数据,其中,所述第二数据还包括从所述相邻扇区对应条块读取的数据。
9.根据权利要求6所述的装置,其特征在于,所述数据一致性算法为异或算法。
10.根据权利要求9所述的装置,其特征在于,所述异或算法基于硬件实现。
11.一种电子设备,其特征在于,包括通信接口、处理器、内存、非易失性存储和总线,所述通信接口、所述处理器、所述内存和所述非易失性存储之间通过总线相互连接;
所述非易失性存储中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行如权利要求1至5任一项所述的方法。
12.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1至5任一项所述的方法。
CN201910294877.9A 2019-04-12 2019-04-12 磁盘检测方法、装置、电子设备及机器可读存储介质 Active CN111816239B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910294877.9A CN111816239B (zh) 2019-04-12 2019-04-12 磁盘检测方法、装置、电子设备及机器可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910294877.9A CN111816239B (zh) 2019-04-12 2019-04-12 磁盘检测方法、装置、电子设备及机器可读存储介质

Publications (2)

Publication Number Publication Date
CN111816239A CN111816239A (zh) 2020-10-23
CN111816239B true CN111816239B (zh) 2022-11-11

Family

ID=72843956

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910294877.9A Active CN111816239B (zh) 2019-04-12 2019-04-12 磁盘检测方法、装置、电子设备及机器可读存储介质

Country Status (1)

Country Link
CN (1) CN111816239B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113626248B (zh) * 2021-06-30 2023-07-18 苏州浪潮智能科技有限公司 一种raid中条带数据不一致的修复方法和系统
CN113805800B (zh) * 2021-08-08 2023-08-18 苏州浪潮智能科技有限公司 一种基于raid条带的写io的方法、装置、设备及可读介质
CN113868019B (zh) * 2021-08-27 2023-11-03 苏州浪潮智能科技有限公司 一种数据处理方法、装置及相关设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005040917A1 (de) * 2005-08-30 2007-03-08 Robert Bosch Gmbh Datenverarbeitungssystem und Betriebsverfahren dafür
CN103488578A (zh) * 2012-12-28 2014-01-01 晶天电子(深圳)有限公司 虚拟存储设备(vmd)应用/驱动器
CN106959912A (zh) * 2017-03-07 2017-07-18 杭州宏杉科技股份有限公司 磁盘检测方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6922801B2 (en) * 2001-06-01 2005-07-26 International Business Machines Corporation Storage media scanner apparatus and method providing media predictive failure analysis and proactive media surface defect management
JP2006072435A (ja) * 2004-08-31 2006-03-16 Hitachi Ltd ストレージシステムおよびデータ記録方法
JP4837121B1 (ja) * 2010-06-23 2011-12-14 株式会社東芝 データ記憶装置及びデータ書き込み方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005040917A1 (de) * 2005-08-30 2007-03-08 Robert Bosch Gmbh Datenverarbeitungssystem und Betriebsverfahren dafür
CN103488578A (zh) * 2012-12-28 2014-01-01 晶天电子(深圳)有限公司 虚拟存储设备(vmd)应用/驱动器
CN106959912A (zh) * 2017-03-07 2017-07-18 杭州宏杉科技股份有限公司 磁盘检测方法及装置

Also Published As

Publication number Publication date
CN111816239A (zh) 2020-10-23

Similar Documents

Publication Publication Date Title
US20210019060A1 (en) Method and Apparatus for Flexible RAID in SSD
KR101874290B1 (ko) 메모리 스트라이프 매핑
CN107766172B (zh) 用于ddr sdram接口的dram辅助纠错方法
US8347138B2 (en) Redundant data distribution in a flash storage device
US9081716B1 (en) Solid-state disk cache-assisted redundant array of independent disks
US7546515B2 (en) Method of storing downloadable firmware on bulk media
US8370715B2 (en) Error checking addressable blocks in storage
US7536627B2 (en) Storing downloadable firmware on bulk media
US20140068208A1 (en) Separately stored redundancy
JP4901987B1 (ja) 記憶装置、電子機器及び誤りデータの訂正方法
CN106959912B (zh) 磁盘检测方法及装置
US10025666B2 (en) RAID surveyor
CN111816239B (zh) 磁盘检测方法、装置、电子设备及机器可读存储介质
US20140298087A1 (en) Hard disk data recovery method, apparatus, and system
JPH05505264A (ja) データ記憶装置における書込みオペレーション識別子の不揮発性メモリ記憶
US20120324148A1 (en) System and method of protecting metadata from nand flash failures
US20080184062A1 (en) System and method for detecting write errors in a storage device
US20090113235A1 (en) Raid with redundant parity
US8074113B2 (en) System and method for data protection against power failure during sector remapping
JP4114877B2 (ja) 不正データを検出するための装置、方法、及びプログラム
CN107678894B (zh) 一种内存测试方法、装置及系统
US7577804B2 (en) Detecting data integrity
US20100251013A1 (en) Method for processing bad block in redundant array of independent disks
JP2014119831A (ja) ストレージ装置、制御方法及び制御プログラム
Nair Architectural techniques to enable reliable and scalable memory systems

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