磁盘检测方法及装置制造方法及图纸

技术编号:15840290 阅读:23 留言:0更新日期:2017-07-18 16:45
本申请提供一种磁盘检测方法及装置,应用于存储设备的RAID系统,该方法包括:当接收到磁盘返回的用于表示读错误的执行结果时,确定磁盘中发生读错误的故障条块中的第一数据是否具有RAID冗余性;若是,则通过磁盘所属RAID阵列中其他磁盘上的数据计算出第一数据;向故障条块写入第一数据;若第一数据写入成功,则基于故障条块确定至少一个待检条块;依次确定所述至少一个待检条块中的一个待检条块中的第二数据,向该一个待检条块写入第二数据;若第二数据写入失败,则确定磁盘故障。应用该方法,可以实现尽可能及时地发现故障磁盘,提高RAID的可靠性,提高数据的可靠性;同时,有效地降低磁盘检测过程对系统资源和磁盘IO处理性能的消耗。

Disk detecting method and device

This application provides a disk detection method and device, the RAID system is applied to the storage device, the method includes: when used for receiving said return to disk read error execution result, determine whether the RAID has read the first data redundancy fault block error occurs in the disk; if the disk is. Other data on the disk in a RAID array to calculate the first data; write data to the first block if the first data write fault; fault block, determining at least one piece to be detected based on second data; determining the at least one piece in a quarantine quarantine strip in order, to the one to check if the second data block write second; data write failure, determine the fault disk. The application of the method can be implemented as soon as possible to find the fault disk, improve the reliability of RAID, improve the reliability of the data; at the same time, effectively reduce the disk detection process of system resources and performance of IO disk consumption.

【技术实现步骤摘要】
磁盘检测方法及装置
本申请涉及存储
,尤其涉及一种磁盘检测方法及装置。
技术介绍
随着信息技术的发展,越来越多的数据被保存在磁盘中,为了提高磁盘中数据的可靠性,通常使用RAID(RedundantArraysofIndependentDisks,独立磁盘冗余阵列)技术对磁盘中的数据进行冗余保护。然而,因为突发的震动或机械故障导致磁盘盘面被划伤,或者磁盘盘面蒙尘等因素而出现磁盘介质错误的情形不可避免地发生,当磁盘组中连续多块磁盘出现磁盘介质错误时,RAID重建的速率较低,很有可能导致RAID对数据的冗余保护机制失效,导致数据丢失。因此,通过及时发现磁盘介质问题并对介质错误的磁盘进行修复,可以有效地提高数据的可靠性。在现有方案中,可以采用磁盘预检测技术对磁盘进行检测,以发现故障磁盘,并及时进行相应处理。具体地,在磁盘预检测技术中,可以预先设定磁盘检测策略,例如,设定计算机每隔预设时长对磁盘进行一次全盘读或全盘写(以下简称全盘读/写),当检测到读/写命令执行失败时,触发RAID重建。然而,在上述磁盘预检测技术中,由于对磁盘进行全盘读/写,从而导致磁盘检测过程占用系统资源,消耗磁盘的IO处理性能;并且,当磁盘容量越大时,磁盘检测过程耗时越长,占用系统资源的耗时越长,越多地消耗磁盘的IO处理性能;同时,在极端情况下,也可能会出现刚刚检测过的磁盘因突发性的震动或机械故障导致盘面被划伤,而出现磁盘介质错误的情形。
技术实现思路
有鉴于此,本申请提供一种磁盘检测方法及装置,以实现尽可能及时地发现故障磁盘,提高RAID的可靠性,提高数据的可靠性;同时,有效地降低磁盘检测过程对系统资源和磁盘IO处理性能的消耗。具体地,本申请是通过如下技术方案实现的:根据本申请实施例的第一方面,提供一种磁盘检测方法,所述方法应用于存储设备的RAID系统,所述存储设备预配置有至少一个RAID阵列,所述RAID阵列包括若干个磁盘;所述方法包括:当接收到磁盘返回的用于表示读错误的执行结果时,确定所述磁盘中发生读错误的故障条块中的第一数据是否具有RAID冗余性;若所述第一数据具有RAID冗余性,则通过所述磁盘所属RAID阵列中其他磁盘上的数据计算出所述第一数据;向所述故障条块写入所述第一数据;若所述第一数据写入成功,则基于所述故障条块确定至少一个待检条块;依次确定所述至少一个待检条块中的一个待检条块中的第二数据,向所述一个待检条块写入所述第二数据;若所述第二数据写入失败,则确定所述磁盘故障。根据本申请实施例的第二方面,提供一种磁盘检测装置,所述装置应用于存储设备的RAID系统,所述存储设备预配置有至少一个RAID阵列,所述RAID阵列包括若干个磁盘,所述装置包括:冗余确定单元,用于当接收到磁盘返回的用于表示读错误的执行结果时,确定所述磁盘中发生读错误的故障条块中的第一数据是否具有RAID冗余性;第一确定单元,用于若所述第一数据具有RAID冗余性,则通过所述磁盘所属RAID阵列中其他磁盘上的数据计算出所述第一数据;第一写入单元,用于向所述故障条块写入所述第一数据;待检确定单元,用于若所述第一数据写入成功,则基于所述故障条块确定至少一个待检条块;第二确定单元,用于依次确定所述至少一个待检条块中的一个待检条块中的第二数据;第二写入单元,用于向所述一个待检条块写入所述第二数据;故障确定单元,用于若所述第二数据写入失败,则确定所述磁盘故障。由上述实施例可见,RAID阵列通过在实际的读操作中,接收到磁盘返回的用于表示读错误的执行结果时,进一步尝试向发生读错误的故障条块中写入该故障条块中原本的数据,在写入成功时,触发本申请提供的轻量级磁盘检测,由于轻量级磁盘检测是在实际的读操作过程后触发的,并未额外设置磁盘检测触发机制,可以实现尽可能早地发现磁盘故障,从而及时进行相应的修复,提高RAID的可靠性,提高数据的可靠性;同时,由于在本申请提供的轻量级磁盘检测过程中,对指定范围的待检条块进行检测,相较于全盘检测,可以有效地降低磁盘检测过程对系统资源和磁盘IO处理性能的消耗。附图说明图1为本申请磁盘检测方法的一个实施例流程图;图2为本申请磁盘检测装置所在存储设备的一种硬件结构图;图3为本申请磁盘检测装置的一个实施例框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。RAID技术是将多个独立的物理磁盘按照不同的方式组合起来,形成一个虚拟磁盘。通过采用RAID技术,可以实现并行读写数据,提高了数据的存取速率,同时,RAID技术运用了镜像、奇偶校验等技术对数据进行冗余保护,极大地提高了数据的可靠性。一个RAID阵列可以包含多个成员磁盘,RAID阵列中的数据组织方式包括条块和条带。其中,条块是RAID阵列管理存储空间的最小单位,在创建RAID阵列时,将其包括的成员磁盘的存储空间按预设条块大小划分为大小相等、地址相邻的块,这些大小相等、地址相邻的块称为条块;条带是RAID阵列的多个成员磁盘上位置相关的条块的集合,根据RAID级别不同,RAID实现方式不同,RAID阵列中成员磁盘的数目不同,成员磁盘状态不同以及RAID算法不同,条块中数据的RAID冗余性也不同。在RAID技术中,RAID阵列对读/写命令的处理是按照条带进行处理的,当RAID阵列接收到上层软件下发的读/写命令后,基于该读/写命令中携带的地址确定待操作的条带,之后基于RAID级别、RAID算法、成员磁盘状态等因素,把该读/写命令拆分为针对该条带中一个或多个成员磁盘的对应条块的读/写命令,将拆分后的读/写命令发给相应的成员磁盘执行。后续,成员磁盘执行接收到的读/写命令,并将执行结果返回至RAID阵列。在本申请中,RAID阵列可以基于其包括的成员磁盘对读命令的执行结果,进一步触发轻量级磁盘检测,这里所说的“轻量级磁盘检测”是指对成员磁盘的指定条块范围内进行检测,相较于现有的磁盘预检测技术,可以实现尽可能及时地发现故障磁盘,提高RAID的可靠性,提高数据的可靠性;同时,有效地降低磁盘检测过程对系统资源和磁盘IO处理性能的消耗。如下,为了使本领域技术人员可以清楚、直观地了解本申请提供的磁盘检测方法如何实现尽可能及时地发现故障磁盘,提高RAID的可靠本文档来自技高网...
磁盘检测方法及装置

【技术保护点】
一种磁盘检测方法,其特征在于,所述方法应用于存储设备的磁盘阵列RAID系统,所述存储设备预配置有至少一个RAID阵列,所述RAID阵列包括若干个磁盘;所述方法包括:当接收到磁盘返回的用于表示读错误的执行结果时,确定所述磁盘中发生读错误的故障条块中的第一数据是否具有RAID冗余性;若所述第一数据具有RAID冗余性,则通过所述磁盘所属RAID阵列中其他磁盘上的数据计算出所述第一数据;向所述故障条块写入所述第一数据;若所述第一数据写入成功,则基于所述故障条块确定至少一个待检条块;依次确定所述至少一个待检条块中的一个待检条块中的第二数据,向所述一个待检条块写入所述第二数据;若所述第二数据写入失败,则确定所述磁盘故障。

【技术特征摘要】
1.一种磁盘检测方法,其特征在于,所述方法应用于存储设备的磁盘阵列RAID系统,所述存储设备预配置有至少一个RAID阵列,所述RAID阵列包括若干个磁盘;所述方法包括:当接收到磁盘返回的用于表示读错误的执行结果时,确定所述磁盘中发生读错误的故障条块中的第一数据是否具有RAID冗余性;若所述第一数据具有RAID冗余性,则通过所述磁盘所属RAID阵列中其他磁盘上的数据计算出所述第一数据;向所述故障条块写入所述第一数据;若所述第一数据写入成功,则基于所述故障条块确定至少一个待检条块;依次确定所述至少一个待检条块中的一个待检条块中的第二数据,向所述一个待检条块写入所述第二数据;若所述第二数据写入失败,则确定所述磁盘故障。2.根据权利要求1所述的方法,其特征在于,所述基于所述故障条块确定至少一个待检条块包括:基于预设的偏移量从所述故障条块处进行偏移,得到至少一个待检条块。3.根据权利要求1所述的方法,其特征在于,所述依次确定所述至少一个待检条块中的一个待检条块中的第二数据,包括:依次确定所述至少一个待检条块中的一个待检条块中的第二数据是否具有RAID冗余性;若所述第二数据具有RAID冗余性,则通过所述磁盘所属RAID阵列中其他磁盘上的数据计算出所述第二数据。4.根据权利要求3所述的方法,其特征在于,所述依次确定所述至少一个待检条块中的一个待检条块中的第二数据是否具有RAID冗余性,包括:依次读取所述至少一个待检条块中的一个待检条块中的第二数据;若所述第二数据读取失败,则确定所述第二数据是否具有RAID冗余性。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:若所述第二数据读取成功,则继续读取另一个所述待检条块中的第二数据,直至每一个所述待检条块中的第二数据读取成功时,确定所述磁盘正常。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述第一数据不具有RAID冗余性,则确定所述磁盘故障。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述第一数据写入失败,则确定所述磁盘故障。8.一种磁盘检测装置,其特征在于,所述装置应用于...

【专利技术属性】
技术研发人员:张学东上官应兰
申请(专利权)人:杭州宏杉科技股份有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1