CN105468479B - 一种磁盘阵列raid坏块处理方法及装置 - Google Patents
一种磁盘阵列raid坏块处理方法及装置 Download PDFInfo
- Publication number
- CN105468479B CN105468479B CN201510799068.5A CN201510799068A CN105468479B CN 105468479 B CN105468479 B CN 105468479B CN 201510799068 A CN201510799068 A CN 201510799068A CN 105468479 B CN105468479 B CN 105468479B
- Authority
- CN
- China
- Prior art keywords
- disk
- bad block
- normal blocks
- hard disk
- global
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
- G06F11/1662—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请涉及计算机技术领域,尤其涉及一种磁盘阵列RAID坏块处理方法及装置,以解决现有技术中存在的在检测到硬盘有坏块并且无法修复时,使用新的硬盘替换坏的硬盘,因而导致硬盘实际使用寿命短,运维系统成本增加的问题,包括:根据RAID中第一坏块,确定第一坏块对应的条带,根据条带中位于RAID其他硬盘上的第一正常块对应的数据,确定第一坏块对应的原始数据,将确定的原始数据存储到至少一个全局热备盘中的至少一个第二正常块中并建立第一坏块与第二正常块的映射关系,因而当硬盘有坏块时不需要更换新的硬盘,而只需要将硬盘中坏块对应的原始数据存储到全局热备的正常块中,从而减少了硬盘的替换和重建,节约了系统资源和系统开销。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种磁盘阵列RAID坏块处理方法及装置。
背景技术
RAID(Redundant Arrays of Independent Disks,磁盘阵列)表示“独立磁盘构成的具有冗余能力的阵列”,Stripe(条带)是把连续的数据分割成相同大小的数据块,把每段数据块分别写入到RAID中的不同磁盘上的方法。
由于RAID中的硬盘需要经常写入或者读出数据,尤其是在需要进行大量I/O的操作中,例如监控级的硬盘,对硬盘的操作更是频繁,因而可能使RAID中的硬盘中的某个或某些块出现损坏,当硬盘中出现块损坏时,首先会尝试根据损坏的块所在的条带中其它块的数据,对损坏的块的数据进行修复,如果不能修复,则需要使用其它方法使得损坏的块的数据能够正常使用。
现有技术中,当对RAID中的坏块进行写修复失败时,一般是将坏块所在的硬盘直接剔除,然后用新的硬盘替代被剔除的硬盘,并且对新的硬盘进行重建。该方法只要检测到硬盘中有坏块并且进行写修复失败时,就丢弃该硬盘,因而导致硬盘实际使用寿命非常短,需要频繁的更换硬盘,造成运维系统成本增加。
综上所述,现有技术中在检测到硬盘有坏块并且无法修复时,直接使用新的硬盘替换坏的硬盘,导致硬盘实际使用寿命短,造成运维系统成本增加。
发明内容
本申请提供一种磁盘阵列RAID坏块处理方法及装置,用以解决现有技术 中存在的在检测到硬盘有坏块并且无法修复时,直接使用新的硬盘替换坏的硬盘,因而导致硬盘实际使用寿命短,造成运维系统成本增加的技术问题。
一方面,本申请实施例提供的一种磁盘阵列RAID坏块处理方法,包括:
根据RAID中第一坏块,确定所述第一坏块对应的条带;
根据所述条带中位于所述RAID其他硬盘上的第一正常块对应的数据,确定所述第一坏块对应的原始数据;
将所述原始数据存储到至少一个全局热备盘中的至少一个第二正常块中,并建立所述第一坏块与所述第二正常块的映射关系;
其中,所述全局热备盘为所述RAID之外的一块硬盘。
本申请实施例提供的方法,根据RAID中第一坏块,确定第一坏块对应的条带,以及根据条带中位于RAID其他硬盘上的第一正常块对应的数据,确定第一坏块对应的原始数据,然后将确定的原始数据存储到至少一个全局热备盘中的至少一个第二正常块中并建立第一坏块与第二正常块的映射关系,其中全局热备盘为RAID之外的一块硬盘,当硬盘有坏块时不需要更换新的硬盘然后对新的硬盘进行重建,而只需要将硬盘中坏块对应的原始数据存储到全局热备盘的第二正常块中,从而减少了硬盘的替换和重建,节约了系统资源和系统开销。
另一方面,本申请实施例还提供一种磁盘阵列RAID坏块处理装置,包括:
第一确定单元,用于根据RAID中第一坏块,确定所述第一坏块对应的条带;
第二确定单元,用于根据所述条带中位于所述RAID其他硬盘上的第一正常块对应的数据,确定所述第一坏块对应的原始数据;
映射单元,用于将所述原始数据存储到至少一个全局热备盘中的至少一个第二正常块中,并建立所述第一坏块与所述第二正常块的映射关系;其中,所述全局热备盘为所述RAID之外的一块硬盘。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术磁盘阵列RAID5中条带示意图;
图2为本申请实施例提供的RAID坏块处理方法流程图;
图3为本申请实施例提供的RAID坏块与全局热备盘映射关系示意图;
图4为本申请实施例提供的多个磁盘阵列的坏块映射全局热备盘的示意图;
图5为本申请实施例提供的替换全局热备盘示意图;
图6为本申请实施例提供的替换RAID中的硬盘示意图;
图7为本申请实施例提供的RAID坏块处理方法详细流程图;
图8为本申请实施例提供的RAID坏块处理装置示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部份实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
磁盘阵列RAID是由很多价格较便宜的磁盘组合成的一个容量巨大的磁盘组,利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上,其中,条带是把连续的数据分割成相同大小的块,把每段数据分别写入到阵列中不同磁盘上的方法。如图1所示,为现有技术磁盘阵列中RAID5中条带示意图。其中磁盘阵列中包含4个硬盘,分别为硬盘1,硬盘2,硬盘3和硬盘4,在一个条带中,分为3个数据块和一个校验块,如图1中的条带1,例如D1_1,D2_1,D3_1是数据块,D4_1是校验块,其中数据块用来存储数据,校验块用来存储同一条带中所有数据块对应的数据的校验值,其中校验块D4_1中存储的校验值是由数据块D1_1,D2_1,D3_1通过“异或运算”得到的,因而在一个条带中,任一个块(包括数据块和校验块)中的数据丢失或者损坏,都可以通过该条带中其它的块中的数据来恢复该块中的数据。需要说明的是,本申请实施例提供的方法是以RAID5作为示例进行说明的,但本申请实施例提供的方法不限于RAID5,任何存在冗余磁盘的RAID级别,只要是适用于本申请实施例提供的方法即可,例如RAID6、RAID1、RAID10、RAID4、纠删码EC(Erasure code,纠删码)等。
下面结合说明书附图对本申请实施例作进一步详细描述。
如图2所示,本申请实施例提供的RAID坏块处理方法流程图,包括:
步骤201、根据RAID中第一坏块,确定所述第一坏块对应的条带;
步骤202、根据所述条带中位于所述RAID其他硬盘上的第一正常块对应的数据,确定所述第一坏块对应的原始数据;
步骤203、将所述原始数据存储到至少一个全局热备盘中的至少一个第二正常块中,并建立所述第一坏块与所述第二正常块的映射关系。
其中,RAID中的第一坏块指的是RAID中硬盘上出现数据丢失或者损失的块,且该块无法通过写入数据进行修复,即第一坏块是已经无法正常使用且无法恢复的块。第一坏块可以是一个条带中的数据块,也可以是条带中的校验块。RAID中的第一正常块是指RAID中硬盘上除第一坏块之外的块,即RAID中硬盘上可以正常使用的块,第一正常块可以是数据块也可以是校验块。
全局热备盘用于备份RAID中第一坏块对应的数据,具体地,使用全局热备盘中的第二正常块存储RAID中第一坏块对应的数据,第二正常块是全局热备盘中除第二坏块之外的块,即全局热备盘中可以正常使用的块,如果第二正常块损坏而导致不能使用,则第二正常块变成了第二坏块,第二坏块是指全局热备盘中出现数据丢失或者损失的块,且该块无法通过写入数据进行修复。
上述步骤201中,当RAID中有第一坏块时,首先根据RAID中有第一坏块,确定第一坏块对应的条带,如图1所示,如果D2_1是第一坏块,则确定第一坏块对应的条带为条带1;如果D4_5是第一坏块,则确定第一坏块对应的条带为条带5。
上述步骤202中,由于具有N块硬盘的RAID5中,在一个条带上,使用其中N-1个块来存储数据,另外一个块来存储校验数据,因此,任何一块硬盘中的某个块损坏,均可以根据条带中其他的块进行“异或运算”得到坏块的数据,因此当确定了第一坏块对应的条带之后,可以根据该条带中其他硬盘上的第一正常块对应的数据确定第一坏块对应的原始数据,其中第一正常块指的是硬盘中没有损坏,可以正常使用的数据块或者校验块。
上述步骤203中,将确定的第一坏块对应的原始数据存储到至少一个全局热备盘中的至少一个第二正常块中,并且建立第一坏块与第二正常块的映射关系,如图3所示,为本申请实施例提供的RAID坏块与全局热备盘映射关系示意图,其中,RAID中一共有4块硬盘,RAID中的坏块统称为第一坏块,分别为D1_1,D4_1,D3_2,D2_3,D3_N,其中,需要说明的是,一个条带中不能有两个或两个以上的块同时损坏,因为RAID5中对于一个条带上的坏块对应的数据是需要通过该条带上的其它所有块中的数据来恢复的,例如D1_1,D4_1是不能同时成为坏块的,但可以是一个块损坏时在全局热备盘中做好备份后,同一条带上的其它的块再出现坏块时才能够恢复数据,例如D1_1成为坏块后,在全局热备盘中做好备份后,即备份为S1_1,这时如果D4_1成为坏块,也是可以通过条带中的其它所有块对应的数据,将D4_1对应的数据恢复出来的,因为虽然D1_1是坏块,但该坏块对应的数据已经做过备份了,因此在恢复D4_1对应的数据中需要用到D1_1对应的数据时,可以使用全局热备盘中的块S1_1对应的备份数据。在D4_1成为坏块后,将它在全局热备盘中备份,如图3所示备份到S2_2。全局热备盘中一共有N块硬盘,分别为全局热备盘1~N,其中,全局热备盘的一个块的大小应该是大于或者等于RAID中的 一个块的大小,优选的,全局热备盘中的一个块的大小等于RAID中的一个块的大小。根据步骤202确认出RAID中的第一坏块中的原始数据之后,将原始数据存储到至少一个全局热备盘中的至少一个第二正常块中,比如可以将原始数据存储到全局热备盘中的一个正常块中,如图3中的D3_2中的原始数据存储到全局热备盘1中的第二正常块S1_2,D2_3中的原始数据存储到全局热备盘1中的第二正常块S1_3,D3_N中的原始数据存储到全局热备盘1中的第二正常块S1_K,当然,也还可以是将原始数据存储到多个全局热备盘中的多个正常块中,如图3中的D1_1中的原始数据存储到全局热备盘1中的第二正常块S1_1,以及存储到全局热备盘2中的第二正常块S2_1,之所以将RAID中一个第一坏块的原始数据存储到多个第二正常块中,是为了在全局热备中的某个第二正常块损坏之后,可以从其他的第二正常块中找到第一坏块的原始数据,因而可以提高系统性能。
需要特别说明是,本申请实施例提供的磁盘阵列RAID坏块处理方法是以RAID中包含4块硬盘作为举例说明,实际应用中,对于包含任意数量硬盘的RAID,本申请实施例提供的均适用,对此后续不再特别说明。
另外,本申请中对于RAID中的第一坏块中的原始数据存储到一个全局热备盘的哪个第二正常块中,不做具体限定,例如,可以是按照顺序存储,当确定全局热备盘1可以用来存储并且有剩余第二正常块时,则按顺序存储到全局热备盘1的相应剩余的第二正常块中,如果全局热备盘1没有剩余的第二正常块时,则存储到其它有剩余的第二正常块的全局热备盘中;当然,还可以是其它方式来存储,比如可以按照哈希函数映射,将RAID中的第一坏块按照预先设定的哈希函数映射到某个可以存储的第二正常块中。
在将第一坏块对应的原始数据存储到第二正常块之后,建立所述第一坏块与所述第二正常块的映射关系,以便于后续可以根据该映射关系在第二正常块中找到第一坏块对应的原始数据。
另外,还可以是将多个磁盘阵列中的坏块映射到全局热备盘中,如图4, 为多个磁盘阵列的坏块映射全局热备盘的示意图,其中,有N个磁盘阵列,分别为磁盘阵列1~N,磁盘阵列1~N中的坏块中的原始数据均可以存储到全局热备盘中。例如,图4中,磁盘阵列RAID-1中的某个坏块被映射到了全局热备盘2中,磁盘阵列RAID-2中的某个坏块被映射到了全局热备盘1中,磁盘阵列RAID-N中的某个坏块被映射到了全局热备盘1中。
本申请实施例提供的方法,根据RAID中第一坏块,确定第一坏块对应的条带,以及根据条带中位于RAID其他硬盘上的第一正常块对应的数据,确定第一坏块对应的原始数据,然后将确定的原始数据存储到至少一个全局热备盘中的至少一个第二正常块中并建立第一坏块与第二正常块的映射关系,其中全局热备盘为RAID之外的一块硬盘,当硬盘有坏块时不需要更换新的硬盘然后对新的硬盘进行重建,而只需要将硬盘中坏块对应的原始数据存储到全局热备的正常中,从而减少了硬盘的替换和重建,节约了系统资源和系统开销。
通过上述步骤201~203,可以将RAID中第一坏块中的原始数据存储到全局热备盘中第二正常块中,并建立第一坏块与第二正常块之间的映射关系,其中,在步骤202之后,步骤203之前,即在确定第一坏块对应的条带之后,将原始数据存储到至少一个全局热备盘中的至少一个第二正常块中之前,还包括:
针对一个全局热备盘,若该全局热备盘中未存储所述第一坏块对应的条带中的数据,则将所述该全局热备盘作为候选全局热备盘;
从所有所述候选热备盘中选择至少一个作为所述原始数据对应的全局热备盘。
上述方法,可以保证同一个全局热备盘中存储的数据是来自于RAID中不同的条带中的第一坏块,因为如果在同一个全局热备盘中存储的数据有来自于RAID中同一个的条带中的第一坏块,则如果该全局热备盘损坏,那么将会导致同一个条带中的多个第一坏块对应的原始数据无法通过查找全局热备盘而获得,因而导致该条带中的第一坏块数据无法得到恢复,例如,如图3所示,第一坏块D1_1和第一坏块D4_1的原始数据分别存储到全局热备盘1和全局 热备盘2中的第二正常块中,假如第一坏块D1_1和第一坏块D4_1的原始数据都存储到全局热备盘1中并且各自只存储了一个备份,那么一旦全局热备盘1损坏,则将导致第一坏块D1_1和第一坏块D4_1的原始数据同时丢失,而导致条带1中有至少两个第一坏块的原始数据无法恢复。因此,上述方法,通过将同一个条带中的第一坏块对应的原始数据存储到不同的全局热备盘中,提高了系统的容错能力和健壮性。
另外,由于全局热备盘跟RAID中的硬盘一样,也是有可能损坏的,例如图3中全局热备盘1中的第二正常块S1_1存储了RAID的硬盘1中第一坏块D1_1的原始数据,但由于意外,全局热备盘1中的第二正常块S1_1也损坏了,成为了第二坏块,此时则需要将第二坏块中的数据恢复出来,然后存储到全局热备盘中的其它第二正常块中。
可选的,将所述原始数据存储到至少一个全局热备盘中的至少一个第二正常块中,并建立所述第一坏块与所述第二正常块的映射关系之后,还包括:
若所述全局热备盘中有新的第二坏块,且没有其他第二正常块存储所述新的第二坏块中的原始数据,则恢复所述新的第二坏块中的原始数据,并存储到至少一个全局热备盘中的至少一个第二正常块中;
更新所述第一坏块与第二正常块的映射关系,以及建立第二坏块和第二正常块的映射关系。
上述方法中,RAID中的第一坏块的原始数据可能存储到全局热备盘中的多个第二正常块中,例如如图3所示,第一坏块D1_1的原始数据存储到了第二正常块S1_1和第二正常块S2_1,如果只是其中一个第二正常块损坏了,则还可以通过另外一个第二正常块找到第一坏块D1_1对应的原始数据,但如果第二正常块S1_1和第二正常块S2_1都损坏成为了第二坏块,则需要通过上述方法首先重新将第二坏块中的原始数据恢复,然后存储到至少一个全局热备盘中的至少一个第二正常块中,并且更新第一坏块与第二正常块的映射关系,以及建立第二坏块和第二正常块的映射关系。因而通过上述方式可保证在全局热 备盘中的第二正常块有损坏时,RAID中的第一坏块的原始数据能够得到及时重新映射到另外的第二正常块中,保证了RAID系统的正确工作,提高了系统性能和健壮性。
在RAID中的第一坏块的原始数据存储到全局热备盘中的第二坏块之后,倘若需要读取RAID中的第一坏块的数据,则可以通过以下方式来读取:
可选的,在将所述第一坏块对应的原始数据存储到确定所述第二正常块中之后,还包括:
在接收到数据读取指令后,若所述数据读取指令对应的条带中包括第一坏块,则根据所述第一坏块与第二正常块的映射关系,确定所述条带中包括的第一坏块对应的第二正常块;
读取所述第二正常块对应的数据。
上述方法,在建立RAID中第一坏块的原始数据和全局热备盘中的第二正常块之后,当需要读取第一坏块的原始数据时,通过第一坏块与第二正常块的映射关系,从第二正常块获取到第一坏块的原始数据,从而保证在RAID中的坏损坏时,也可以在全局热备盘中获取到正确数据,该方法简单易实施,并且节约了系统资源。
另外,当RAID中一个硬盘或者全局热备盘中的一个硬盘只有少量的块损失中,可以通过将损坏的坏的数据存储到全局热备中的第二正常块中,但是,如果当某个硬盘的坏块数量比较多时,实际上该硬盘已经无法正常工作了,此时,此时可将该无法损坏的硬盘设置为待恢复状态,然后用一块新的硬盘来替换到该损坏的硬盘。下面分两种情形来分析:
情形一、处于待恢复状态的硬盘是全局热备盘
可选的,确定与热备替换盘连接,其中所述热备替换盘用于替换处于待恢复状态的全局热备盘;
对于所述处于待恢复状态的全局热备盘中第二正常块,将所述处于待恢复状态的全局热备盘中第二正常块对应的数据拷贝至所述热备替换盘中对应的 第二正常块中;
对于所述处于待恢复状态的全局热备盘中第二坏块,根据所述第二坏块和第二正常块的映射关系,确定与所述处于待恢复状态的全局热备盘中第二坏块对应的第二正常块,并将所述第二正常块对应的数据拷贝至所述热备替换盘中的第二正常块;
更新所述第一坏块与第二正常块的映射关系。
上述方法中,处于待恢复状态的硬盘是全局热备盘,在准备使用热备替换盘替换处于待恢复状态的硬盘之前,要确定与热备替换盘已经建立连接,然后分别将待恢复状态的全局热备盘中的第二正常块对应的数据和第二坏块对应的原始数据拷贝至热备替换盘中的第二正常块,下面举例说明,如图5所示,为本申请实施例提供的替换全局热备盘示意图,处于待恢复状态的硬盘全局热备盘1,使用热备替换盘替换全局热备盘1,在确定与热备替换盘处于连接状态之后,对于全局热备盘1中的第二正常块,直接将第二正常块中的数据拷贝至热备替换盘中的第二正常块中,例如全局热备盘1中存储的数据D3_2’,D2_3’,D3_N’,由于存储于第二正常块中,因此数据是正确的,可以直接拷贝至热备替换盘中的第二正常块,对于全局热备盘1中的第二坏块,例如存储D1_1’的坏为第二坏块,由于该坏是坏块,因此该坏块的数据被存储到了其它全局热备盘中,如图中所示,被存储到了全局热备盘2中的D1_1”中了,因此对于处于待恢复状态的硬盘中的第二坏块中的数据,可通过第二坏块和第二正常块的映射关系,找到第二坏块中存储的原始数据,然后将该数据拷贝至热备替换盘,即将第二坏块对应的第二正常块D1_1”拷贝至热备替换盘。然后更新第一坏块与第二正常块的映射关系,即增加阵列中的第一坏块D1_1与热备替换盘中的D1_1”的映射关系。
需要说明的是,在更新第一坏块与第二正常块的映射关系时,可以在全局热备盘中只保留第一坏块的一个备份,即建立第一坏块与第二正常块的一对一的映射关系,也可以保留第一坏块的多个备份,即建立第一坏块与第二正常块 的一对多的映射关系,本申请对此不作限定,具体视实际需要而定。
该方法,使得某个处于待恢复状态的全局热备盘需要被替换时,可保证能够正确地对处于待恢复状态的全局热备盘进行重建,因而保证系统数据的正确性。
情形二、处于待恢复状态的硬盘是RAID中的硬盘
确定与阵列替换硬盘连接,其中所述阵列替换盘用于替换RAID中处于待恢复状态的硬盘;
对于所述RAID中处于待恢复状态的硬盘中的第一正常块,将所述处于待恢复状态的硬盘中第一正常块对应的数据拷贝至所述阵列替换盘中与所述第一正常块对应的块中;
对于所述RAID中处于待恢复状态的硬盘中的第一坏块,根据第一坏块与第二正常块的映射关系,确定与所述处于待恢复状态的硬盘中第一坏块对应的第二正常块,并将所述第二正常块对应的数据拷贝至所述阵列替换盘中的第一正常块。
上述方法中,处于待恢复状态的硬盘是RAID中的硬盘,在准备使用阵列替换盘替换处于待恢复状态的硬盘之前,要确定与阵列替换盘已经建立连接,然后分别将待恢复状态的RAID中的硬盘中的第一正常块对应的数据和第一坏块对应的原始数据拷贝至阵列替换盘中的第一正常块,下面举例说明,如图6所示,为本申请实施例提供的替换RAID中的硬盘示意图,处于待恢复状态的硬盘是RAID中的硬盘3,使用阵列替换盘替换RAID中的硬盘3,在确定与阵列替换盘处于连接状态之后,对于RAID中的硬盘3中的第一正常块,直接将第一正常块中的数据拷贝至阵列替换盘中的第一正常块中,例如RAID中的硬盘3存储的数据D3_1,D3_3,由于存储于第一正常块中,因此数据是正确的,可以直接拷贝至阵列替换盘中的第一正常块,对于RAID中的硬盘3中的第一坏块,例如D3_2和D3_N,由于该坏是坏块,因此该坏块的数据被存储到了全局热备盘中,如图中所示,均被存储到了全局热备盘1中,因此对于处 于待恢复状态的硬盘中的RAID中的硬盘3中第一坏块的数据,可通过第一坏块和第二正常块的映射关系,找到第一坏块中存储的原始数据,然后将该数据拷贝至阵列替换盘。
该方法,使得某个处于待恢复状态的RAID中的硬盘需要被替换时,可保证能够正确地对处于待恢复状态的RAID中的硬盘进行重建,因而保证系统数据的正确性。
上述情形一或者情形二中,在对硬盘进行替换之前,都需要先判断硬盘是否需要进行更换,当判断硬盘需要更换时则将硬盘设置为待恢复状态。对于判断硬盘是否需要更换的方式有很多,例如,当硬盘中坏块的数量在硬盘所有块中的占比超过了某个阈值,则将该硬盘设置为待恢复状态,或者还可以是在硬盘中的连续坏块数量超过了某个阈值,则将该该硬盘设置为待恢复状态,当然还可以是其它方式。
可选的,根据下列方式判断是否将硬盘的状态设置为待恢复状态:
针对一个硬盘,根据所述硬盘的坏块记录信息及所述硬盘的自我监测分析和报告技术SMART信息,确定所述硬盘的健康信息值;
若所述硬盘的健康信息值大于警戒阈值,则将所述硬盘的状态设置为待恢复状态;
其中,所述坏块记录信息包括硬盘中坏块的大小和所述坏块在硬盘中的位置。
上述方法中,可通过记录硬盘的坏块记录信息和SMART(Self MonitoringAnalysis And Reporting Technology,自我监测分析和报告技术)信息,来确定硬盘是否处于正常状态,其中,坏块记录信息包含硬盘的坏块数量,坏块容量以及坏块之间的紧密程度,通过分析硬盘的坏块记录信息,可判断硬盘的健康状况,例如可通过以下公式计算出硬盘的第一警戒值Key1,其中Key1=k1*(坏块数量)+k2*(坏块容量/逻辑块大小)+k3*(坏块之间LBA间隔小于最小间隔的坏块总数),其中,加权系数k1,k2,k3取值范围0~1,满足k1+k2+k3=1,逻 辑块大小默认为条带单元大小,例如16K,可以调节;坏块之间最小间隔默认大小为1M。根据上述方法,可确定第一警戒值Key1;然后根据第一警戒值Key1和SMART信息,综合得到硬盘的健康信息值,其中,硬盘SMART信息可通过硬盘检测工具获取得到,可检测到硬盘的状态为正常,警告或者是失效,因而结合第一警戒值Key1和硬盘的状态,来确定硬盘的健康信息值,例如当检测到硬盘状态为失效时,可设置硬盘的健康信息值较高,当检测到硬盘的状态为正常且第一警戒值Key1较小时,可设置硬盘的健康信息值较低,具体如何设定,依实际需要而定,不做限定。
下面对本申请实施例提供的RAID坏块处理方法做详细描述。如图7所示,为本申请实施例提供的RAID坏块处理方法详细流程图。
步骤701、根据RAID中的第一坏块,确定第一坏块对应的条带;
步骤702、根据条带中位于RAID其他硬盘上的第一正常块对应的数据,确定第一坏块对应的原始数据;
步骤703、将原始数据存储到至少一个全局热备盘中的至少一个第二正常块中,并建立第一坏块与第二正常块的映射关系;
步骤704、若确定硬盘处于待恢复状态,则使用新的硬盘替换处于待恢复状态的硬盘并建立连接;
步骤705、若处于待恢复状态的硬盘是全局热备盘,则新的硬盘为热备替换盘,将第二正常块对应的数据拷贝至热备替换盘,根据第二坏块和第二正常块的映射关系,确定与第二坏块对应的第二正常块,并将该第二正常块对应的数据拷贝至热备替换盘;若处于待恢复状态的硬盘是RAID中的硬盘,则将该硬盘中第一正常块对应的数据拷贝至阵列替换盘,根据第一坏块与第二正常块的映射关系,确定与该硬盘中第一坏块对应的第二正常块,并将该第二正常块对应的数据拷贝至阵列替换盘。
基于相同的技术构思,本申请实施例还提供一种RAID坏块处理设备,本申请实施例提供的RAID坏块处理设备如图8所示。
第一确定单元801,用于根据RAID中第一坏块,确定所述第一坏块对应的条带;
第二确定单元802,用于根据所述条带中位于所述RAID其他硬盘上的第一正常块对应的数据,确定所述第一坏块对应的原始数据;
映射单元803,用于将所述原始数据存储到至少一个全局热备盘中的至少一个第二正常块中,并建立所述第一坏块与所述第二正常块的映射关系;其中,所述全局热备盘为所述RAID之外的一块硬盘。
可选的,所述映射单元803,还用于:
在接收到数据读取指令后,若所述数据读取指令对应的条带中包括第一坏块,则根据所述第一坏块与第二正常块的映射关系,确定所述条带中包括的第一坏块对应的第二正常块;
读取所述第二正常块对应的数据。
可选的,所述映射单元803,还用于:
针对一个全局热备盘,若该全局热备盘中未存储所述第一坏块对应的条带中的数据,则将所述该全局热备盘作为候选全局热备盘;
从所有所述候选热备盘中选择至少一个作为所述原始数据对应的全局热备盘。
所述映射单元803,还用于:
若所述全局热备盘中有新的第二坏块,且没有其他第二正常块存储所述新的第二坏块中的原始数据,则恢复所述新的第二坏块中的原始数据,并存储到至少一个全局热备盘中的至少一个第二正常块中;
更新所述第一坏块与第二正常块的映射关系,以及建立第二坏块和第二正常块的映射关系。
可选的,该装置还包括硬盘替换单元804,具体用于:
确定与热备替换盘连接,其中所述热备替换盘用于替换处于待恢复状态的全局热备盘;
对于所述处于待恢复状态的全局热备盘中第二正常块,将所述处于待恢复状态的全局热备盘中第二正常块对应的数据拷贝至所述热备替换盘中对应的第二正常块中;
对于所述处于待恢复状态的全局热备盘中第二坏块,根据所述第二坏块和第二正常块的映射关系,确定与所述处于待恢复状态的全局热备盘中第二坏块对应的第二正常块,并将所述第二正常块对应的数据拷贝至所述热备替换盘中的第二正常块;
更新所述第一坏块与第二正常块的映射关系。
可选的,所述硬盘替换单元804,还用于:
确定与阵列替换盘连接,其中所述阵列替换盘用于替换RAID中处于待恢复状态的硬盘;
对于所述RAID中处于待恢复状态的硬盘中的第一正常块,将所述处于待恢复状态的硬盘中第一正常块对应的数据拷贝至所述阵列替换盘中与所述第一正常块对应的块中;
对于所述RAID中处于待恢复状态的硬盘中的第一坏块,根据第一坏块与第二正常块的映射关系,确定与所述处于待恢复状态的硬盘中第一坏块对应的第二正常块,并将所述第二正常块对应的数据拷贝至所述阵列替换盘中的第一正常块。
可选的,所述硬盘替换单元804,还用于:
针对一个硬盘,根据所述硬盘的坏块记录信息及所述硬盘的自我监测分析和报告技术SMART信息,确定所述硬盘的健康信息值;
若所述硬盘的健康信息值大于警戒阈值,则将所述硬盘的状态设置为待恢复状态;
其中,所述坏块记录信息包括硬盘中坏块的大小和所述坏块在硬盘中的位置。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产 品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种磁盘阵列RAID坏块处理方法,其特征在于,包括:
根据RAID中第一坏块,确定所述第一坏块对应的条带;
根据所述条带中位于所述RAID其他硬盘上的第一正常块对应的数据,确定所述第一坏块对应的原始数据;
将所述原始数据存储到至少一个全局热备盘中的至少一个第二正常块中,并建立所述第一坏块与所述第二正常块的映射关系;
其中,所述将所述原始数据存储到至少一个全局热备盘中的至少一个第二正常块中,并建立所述第一坏块与所述第二正常块的映射关系之后,还包括:
若所述全局热备盘中有新的第二坏块,且没有其他第二正常块存储所述新的第二坏块中的原始数据,则恢复所述新的第二坏块中的原始数据,并存储到至少一个全局热备盘中的至少一个第二正常块中;
更新所述第一坏块与第二正常块的映射关系,以及建立第二坏块和第二正常块的映射关系;
其中,所述全局热备盘为所述RAID之外的一块硬盘。
2.如权利要求1所述的方法,其特征在于,在将所述第一坏块对应的数据存储到确定所述第二正常块中之后,还包括:
在接收到数据读取指令后,若所述数据读取指令对应的条带中包括第一坏块,则根据所述第一坏块与第二正常块的映射关系,确定所述条带中包括的第一坏块对应的第二正常块;
读取所述第二正常块对应的数据。
3.如权利要求1所述的方法,其特征在于,所述确定所述第一坏块对应的条带之后,将所述原始数据存储到至少一个全局热备盘中的至少一个第二正常块中之前,还包括:
针对一个全局热备盘,若该全局热备盘中未存储所述第一坏块对应的条带中的数据,则将所述该全局热备盘作为候选全局热备盘;
从所有所述候选热备盘中选择至少一个作为所述原始数据对应的全局热备盘。
4.如权利要求1所述的方法,其特征在于,该方法还包括:
确定与热备替换盘连接,其中所述热备替换盘用于替换处于待恢复状态的全局热备盘;
对于所述处于待恢复状态的全局热备盘中第二正常块,将所述处于待恢复状态的全局热备盘中第二正常块对应的数据拷贝至所述热备替换盘中对应的第二正常块中;
对于所述处于待恢复状态的全局热备盘中第二坏块,根据所述第二坏块和第二正常块的映射关系,确定与所述处于待恢复状态的全局热备盘中第二坏块对应的第二正常块,并将所述第二正常块对应的数据拷贝至所述热备替换盘中的第二正常块;
更新所述第一坏块与第二正常块的映射关系。
5.如权利要求1所述的方法,其特征在于,该方法还包括:
确定与阵列替换盘连接,其中所述阵列替换盘用于替换RAID中处于待恢复状态的硬盘;
对于所述RAID中处于待恢复状态的硬盘中的第一正常块,将所述处于待恢复状态的硬盘中第一正常块对应的数据拷贝至所述阵列替换盘中与所述第一正常块对应的块中;
对于所述RAID中处于待恢复状态的硬盘中的第一坏块,根据第一坏块与第二正常块的映射关系,确定与所述处于待恢复状态的硬盘中第一坏块对应的第二正常块,并将所述第二正常块对应的数据拷贝至所述阵列替换盘中的第一正常块。
6.如权利要求4或5所述的方法,其特征在于,根据下列方式判断是否将硬盘的状态设置为待恢复状态:
针对一个硬盘,根据所述硬盘的坏块记录信息及所述硬盘的自我监测分析和报告技术SMART信息,确定所述硬盘的健康信息值;
若所述硬盘的健康信息值大于警戒阈值,则将所述硬盘的状态设置为待恢复状态;
其中,所述坏块记录信息包括硬盘中坏块的大小和所述坏块在硬盘中的位置。
7.一种磁盘阵列RAID坏块处理装置,其特征在于,包括:
第一确定单元,用于根据RAID中第一坏块,确定所述第一坏块对应的条带;
第二确定单元,用于根据所述条带中位于所述RAID其他硬盘上的第一正常块对应的数据,确定所述第一坏块对应的原始数据;
映射单元,用于将所述原始数据存储到至少一个全局热备盘中的至少一个第二正常块中,并建立所述第一坏块与所述第二正常块的映射关系;
其中,所述将所述原始数据存储到至少一个全局热备盘中的至少一个第二正常块中,并建立所述第一坏块与所述第二正常块的映射关系之后,还包括:
若所述全局热备盘中有新的第二坏块,且没有其他第二正常块存储所述新的第二坏块中的原始数据,则恢复所述新的第二坏块中的原始数据,并存储到至少一个全局热备盘中的至少一个第二正常块中;
更新所述第一坏块与第二正常块的映射关系,以及建立第二坏块和第二正常块的映射关系;
其中,所述全局热备盘为所述RAID之外的一块硬盘。
8.如权利要求7所述的装置,其特征在于,所述映射单元,还用于:
在接收到数据读取指令后,若所述数据读取指令对应的条带中包括第一坏块,则根据所述第一坏块与第二正常块的映射关系,确定所述条带中包括的第一坏块对应的第二正常块;
读取所述第二正常块对应的数据。
9.如权利要求7所述的装置,其特征在于,所述映射单元,还用于:
针对一个全局热备盘,若该全局热备盘中未存储所述第一坏块对应的条带中的数据,则将所述该全局热备盘作为候选全局热备盘;
从所有所述候选热备盘中选择至少一个作为所述原始数据对应的全局热备盘。
10.如权利要求7所述的装置,其特征在于,该装置还包括硬盘替换单元,具体用于:
确定与热备替换盘连接,其中所述热备替换盘用于替换处于待恢复状态的全局热备盘;
对于所述处于待恢复状态的全局热备盘中第二正常块,将所述处于待恢复状态的全局热备盘中第二正常块对应的数据拷贝至所述热备替换盘中对应的第二正常块中;
对于所述处于待恢复状态的全局热备盘中第二坏块,根据所述第二坏块和第二正常块的映射关系,确定与所述处于待恢复状态的全局热备盘中第二坏块对应的第二正常块,并将所述第二正常块对应的数据拷贝至所述热备替换盘中的第二正常块;
更新所述第一坏块与第二正常块的映射关系。
11.如权利要求7所述的装置,其特征在于,所述硬盘替换单元,还用于:
确定与阵列替换盘连接,其中所述阵列替换盘用于替换RAID中处于待恢复状态的硬盘;
对于所述RAID中处于待恢复状态的硬盘中的第一正常块,将所述处于待恢复状态的硬盘中第一正常块对应的数据拷贝至所述阵列替换盘中与所述第一正常块对应的块中;
对于所述RAID中处于待恢复状态的硬盘中的第一坏块,根据第一坏块与第二正常块的映射关系,确定与所述处于待恢复状态的硬盘中第一坏块对应的第二正常块,并将所述第二正常块对应的数据拷贝至所述阵列替换盘中的第一正常块。
12.如权利要求10或11所述的装置,其特征在于,所述硬盘替换单元,还用于:
针对一个硬盘,根据所述硬盘的坏块记录信息及所述硬盘的自我监测分析和报告技术SMART信息,确定所述硬盘的健康信息值;
若所述硬盘的健康信息值大于警戒阈值,则将所述硬盘的状态设置为待恢复状态;
其中,所述坏块记录信息包括硬盘中坏块的大小和所述坏块在硬盘中的位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510799068.5A CN105468479B (zh) | 2015-11-18 | 2015-11-18 | 一种磁盘阵列raid坏块处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510799068.5A CN105468479B (zh) | 2015-11-18 | 2015-11-18 | 一种磁盘阵列raid坏块处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105468479A CN105468479A (zh) | 2016-04-06 |
CN105468479B true CN105468479B (zh) | 2018-06-26 |
Family
ID=55606213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510799068.5A Active CN105468479B (zh) | 2015-11-18 | 2015-11-18 | 一种磁盘阵列raid坏块处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105468479B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107526651A (zh) * | 2016-06-21 | 2017-12-29 | 深圳中电长城信息安全系统有限公司 | 一种磁盘阵列备份的方法和系统 |
JP2019523490A (ja) * | 2016-07-19 | 2019-08-22 | アール−ストール インコーポレイテッド | 非アグリゲート型メモリプラッタを実装するための方法及び装置 |
CN107731262A (zh) * | 2017-09-29 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种存储磁盘坏块管理方法、装置、设备及可读存储介质 |
CN110955383B (zh) * | 2018-09-26 | 2023-05-02 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
CN109445715B (zh) * | 2018-11-09 | 2022-02-18 | 郑州云海信息技术有限公司 | 一种组合块的坏块处理方法及装置 |
CN112732167B (zh) * | 2019-10-28 | 2024-04-16 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备 |
CN111596865B (zh) * | 2020-05-22 | 2023-07-14 | 浙江大华技术股份有限公司 | 一种存储处理方法及装置 |
CN114443368B (zh) * | 2021-12-31 | 2023-11-14 | 苏州浪潮智能科技有限公司 | raid系统的冗余数据处理方法、装置、系统及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508733A (zh) * | 2011-09-22 | 2012-06-20 | 杭州华三通信技术有限公司 | 一种基于磁盘阵列的数据处理方法及磁盘阵列管理器 |
CN103530069A (zh) * | 2013-11-05 | 2014-01-22 | 浪潮(北京)电子信息产业有限公司 | 一种raid5磁盘阵列坏扇区处理方法 |
-
2015
- 2015-11-18 CN CN201510799068.5A patent/CN105468479B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508733A (zh) * | 2011-09-22 | 2012-06-20 | 杭州华三通信技术有限公司 | 一种基于磁盘阵列的数据处理方法及磁盘阵列管理器 |
CN103530069A (zh) * | 2013-11-05 | 2014-01-22 | 浪潮(北京)电子信息产业有限公司 | 一种raid5磁盘阵列坏扇区处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105468479A (zh) | 2016-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105468479B (zh) | 一种磁盘阵列raid坏块处理方法及装置 | |
US10606491B2 (en) | Providing redundancy in a virtualized storage system for a computer system | |
CN102708019B (zh) | 一种硬盘数据恢复方法、装置及系统 | |
CN103970481B (zh) | 重建存储器阵列的方法和装置 | |
CN102981927B (zh) | 分布式独立冗余磁盘阵列存储方法及分布式集群存储系统 | |
US6480970B1 (en) | Method of verifying data consistency between local and remote mirrored data storage systems | |
CN105122213B (zh) | 用于数据存储系统中的错误检测和纠正的方法和装置 | |
CN102483686B (zh) | 数据存储系统和用于操作数据存储系统的方法 | |
US10025666B2 (en) | RAID surveyor | |
CN107484427B (zh) | 用于处理存储设备中分条的方法和存储设备 | |
CN104094236B (zh) | 防止数据丢失的系统和方法 | |
CN103309775A (zh) | 一种高可靠磁盘阵列的容错方法 | |
CN102508733B (zh) | 一种基于磁盘阵列的数据处理方法及磁盘阵列管理器 | |
CN102024059B (zh) | 一种文件系统内实现独立磁盘冗余阵列保护的方法及装置 | |
US9727411B2 (en) | Method and processor for writing and error tracking in a log subsystem of a file system | |
CN104035830A (zh) | 一种数据恢复方法和装置 | |
CN101960429B (zh) | 视频媒体数据存储系统以及相关方法 | |
CN106959912B (zh) | 磁盘检测方法及装置 | |
CN107870731B (zh) | 独立盘冗余阵列系统的管理方法和电子设备 | |
CN110413454B (zh) | 基于存储阵列的数据重建方法、装置及存储介质 | |
CN101526885A (zh) | 一种提升独立磁盘冗余阵列性能的方法及其控制器 | |
CN110795273A (zh) | 一种raid的写洞保护方法、系统及存储介质 | |
CN103544995B (zh) | 一种坏道修复方法及装置 | |
CN102521074B (zh) | 一种加快raid5恢复的方法 | |
US20150347224A1 (en) | Storage control apparatus and method therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |