一种磁盘阵列raid重建方法及装置的制造方法

文档序号:9546878阅读:634来源:国知局
一种磁盘阵列raid重建方法及装置的制造方法
【技术领域】
[0001]本申请涉及计算机技术领域,尤其涉及一种磁盘阵列RAID重建方法及装置。
【背景技术】
[0002]RAID (Redundant Arrays of Independent Disks,磁盘阵列)表不“独立磁盘构成的具有冗余能力的阵列”,Stripe(条带)是把连续的数据分割成相同大小的数据块,把每段数据块分别写入到RAID中的不同磁盘上的方法。
[0003]当RAID中的硬盘损坏时,则需要更换新的硬盘,当更换硬盘后需要对新的硬盘中的数据块进行重建,在新硬盘进行数据重建的过程中,可能又需要对磁盘阵列进行写数据或读数据操作,因此如何处理新硬盘数据重建与对磁盘阵列进行写数据或读数据操作之间的关系,成为了一个很重要的技术问题。
[0004]现有技术中,当对新硬盘进行数据重建时,若有对磁盘阵列进行写数据或读数据操作,一般会给与读或写数据操作更高的优先级,因此会先处理读或写数据操作,等系统资源空闲时再进行新硬盘的重建,因而导致新硬盘的重建的速度非常慢,尤其是在有大量数据进行读出或者写入的场景下,例如监控视频存储,新硬盘重建的速度更是下降的非常厉害,新硬盘的重建时间非常长,因而导致RAID系统的数据无法得到及时更新,降低了重建速度,以及降低了系统的可靠性。
[0005]综上所述,现有技术中存在当既需要新硬盘的重建,又需要大量的读出数据或者写入数据操作时,新硬盘重建速度非常慢而导致系统可靠性降低的问题。

【发明内容】

[0006]
[0007]本申请提供一种磁盘阵列RAID重建方法及装置,用以解决现有技术中存在的当既需要新硬盘的重建,又需要大量的读出数据或者写入数据操作时,新硬盘重建速度非常慢而导致系统可靠性降低的技术问题。
[0008]—方面,本申请实施例提供一种磁盘阵列RAID重建方法,包括:
[0009]在确定需要对RAID中的条带进行写入操作或读出操作后,若所述条带的状态为未重建,则根据需要进行操作的条带对应的数据和/或根据所述条带在所述RAID中正常块对应的数据,确定实际写入的数据;
[0010]将确定的所述实际写入的数据写入到所述条带中。
[0011]可选地,需要对RAID中的条带进行写入操作且写入操作为满写操作;
[0012]所述根据需要进行操作的条带对应的数据,确定实际写入的数据,包括:
[0013]根据需要写入所述条带的数据,确定所述条带中校验块对应的数据;
[0014]将所述校验块对应的数据以及需要写入所述条带的数据,确定为实际写入的数据。
[0015]可选地,需要对RAID中的条带进行写入操作且写入操作为非满写操作;
[0016]所述根据需要进行操作的条带对应的数据和根据所述条带在所述RAID中正常块对应的数据,包括:
[0017]根据需要写入所述条带的数据和所述条带在所述RAID中正常块对应的数据,确定所述条带中校验块对应的数据;
[0018]根据所述校验块对应的数据以及需要写入所述条带的数据,确定实际写入的数据。
[0019]可选地,所述根据需要写入所述条带的数据和所述条带在所述RAID中正常块对应的数据,确定所述条带中校验块对应的数据,包括:
[0020]若所述条带包括的重建块为校验块,则确定所述条带上的第一覆盖数据,所述第一覆盖数据为所述条带上与所述非满写操作对应的位置上的数据;
[0021]根据所述第一覆盖数据,确定所述条带上的第一目标数据,其中,所述第一目标数据为所述RAID中正常块对应的数据除所述第一覆盖数据之外的所有数据;
[0022]根据需要写入所述条带的数据及所述第一目标数据,确定所述重建块对应的数据;
[0023]根据所述校验块对应的数据以及需要写入所述条带的数据,确定实际写入的数据,包括:
[0024]将所述重建块对应的数据以及所述需要写入所述条带的数据确定为实际写入的数据。
[0025]可选地,所述根据需要写入所述条带的数据和所述条带在所述RAID中正常块对应的数据,确定所述条带中校验块对应的数据,包括:
[0026]若所述条带包括的重建块为数据块,则根据所述条带上目标硬盘对应的数据,确定所述重建块对应的数据,所述目标硬盘为RAID中除所述重建块对应的重建盘之外的所有硬盘;
[0027]根据所述非满写操作,确定所述条带上的第二覆盖数据,所述第二覆盖数据为所述条带上与所述非满写操作对应的位置上的数据;
[0028]根据所述第二覆盖数据,确定所述条带上的第二目标数据,其中,所述第二目标数据为所述RAID中正常块对应的数据除所述第二覆盖数据和校验块数据之外的所有数据;
[0029]根据需要写入所述条带的数据,所述第二目标数据及所述重建块对应的数据,确定所述校验块对应的数据;
[0030]根据所述校验块对应的数据以及需要写入所述条带的数据,确定实际写入的数据,包括:
[0031]将所述重建块对应的数据,所述校验块对应的数据以及需要写入所述条带的数据确定为实际写入的数据。
[0032]可选地,所述操作为读出操作;
[0033]所述根据所述条带在所述RAID中其他硬盘上的正常块对应的数据,确定实际写入的数据,包括:
[0034]根据所述条带上目标硬盘对应的数据,确定所述重建块对应的数据,其中所述目标硬盘为RAID中除所述重建块对应的重建盘之外的所有硬盘;
[0035]将所述重建块对应的数据确定为实际写入的数据;
[0036]可选地,根据下列方式确定所述条带的状态:
[0037]根据所述需要进行操作的条带在位图中对应的位的数值,确定所述条带的状态;
[0038]其中,所述位图中的一位对应一个条带的状态。
[0039]可选地,将确定的所述实际写入的数据写入到所述条带中之后,还包括:
[0040]将所述条带在所述位图中对应的位的状态设置为已重建。
[0041]另一方面,本申请实施例提供的一种磁盘阵列RAID重建装置,包括:
[0042]确定单元,用于在确定需要对RAID中的条带进行写入操作或读出操作后,若所述条带的状态为未重建,则根据需要进行操作的条带对应的数据和/或根据所述条带在所述RAID中正常块对应的数据,确定实际写入的数据;
[0043]写入单元,用于将确定的所述实际写入的数据写入到所述条带中。
[0044]可选地,需要对RAID中的条带进行写入操作且写入操作为满写操作;
[0045]所述确定单元,具体用于:
[0046]根据需要写入所述条带的数据,确定所述条带中校验块对应的数据;
[0047]将所述校验块对应的数据以及需要写入所述条带的数据,确定为实际写入的数据。
[0048]可选地,需要对RAID中的条带进行写入操作且写入操作为非满写操作;
[0049]所述确定单元,还用于:
[0050]根据需要写入所述条带的数据和所述条带在所述RAID中正常块对应的数据,确定所述条带中校验块对应的数据;
[0051]根据所述校验块对应的数据以及需要写入所述条带的数据,确定实际写入的数据。
[0052]可选地,所述确定单元,还用于:
[0053]若所述条带包括的重建块为校验块,则确定所述条带上的第一覆盖数据,所述第一覆盖数据为所述条带上与所述非满写操作对应的位置上的数据;
[0054]根据所述第一覆盖数据,确定所述条带上的第一目标数据,其中,所述第一目标数据为所述RAID中正常块对应的数据除所述第一覆盖数据之外的所有数据;
[0055]根据需要写入所述条带的数据及所述第一目标数据,确定所述重建块对应的数据;
[0056]将所述重建块对应的数据以及所述需要写入所述条带的数据确定为实际写入的数据。
[0057]可选地,所述确定单元,还用于:
[0058]若所述条带包括的重建块为数据块,则根据所述条带上目标硬盘对应的数据,确定所述重建块对应的数据,所述目标硬盘为RAID中除所述重建块对应的重建盘之外的所有硬盘;
[0059]根据所述非满写操作,确定所述条带上的第二覆盖数据,所述第二覆盖数据为所述条带上与所述非满写操作对应的位置上的数据;
[0060]根据所述第二覆盖数据,确定所述条带上的第二目标数据,其中,所述第二目标数据为所述RAID中正常块对应的数据除所述第二覆盖数据和校验块数据之外的所有数据;
[0061]根据需要写入所述条带的数据,所述第二目标数据及所述重建块对应的数据,确定所述校验块对应的数据;
[0062]将所述重建块对应的数据,所述校验块对应的数据以及需要写入所述条带的数据确定为实际写入的数据。
[0063]可选地,需要对RAID中的条带进行写入操作且读出操作;
[0064]所述确定单元,还用于:
[0065]根据所述条带上目标硬盘对应的数据,确定所述重建块对应的数据,其中所述目标硬盘为RAID中除所述重建块对应的重建盘之外的所有硬盘;
[0066]将所述重建块对应的数据确定为实际写入的数据。
[0067]可选地,所述确定单元,还用于:
[0068]根据所述需要进行操作的条带在位图中对应的位的数值,确定所述条带的状态;
[0069]其中,所述位图中的一位对应一个条带的状态。
[0070]可选地,所述写入单元,还用于:
[0071]将所述条带在所述位图中对应的位的状态设置为已重建。
[0072]本申请实施例提供的方法,在确定需要对RAID中的条带进行操作后,若条带的状态为未重建,则根据需要进行操作的条带对应的数据和/或根据条带在RAID中正常块对应的数据,确定实际写入的数据;将确定的实际写入的数据写入到条带中。该方法在对RAID中的条带进行数据操作的同时,就可完成对该条带中重建盘的重建,因而节约了重建盘的重建时间,提高了系统的可靠性,提高了实际应用能力。
【附图说明】
[0073]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0074]图1为现有技术磁盘阵列中RAID5中条带示意图;
[0075]图2为本申请实施例提供的磁盘阵列RAID重建方法流程图;
[0076]图3为本申请实施例提供的重建盘替换RAID中硬盘4的示意图;
[0077]图4为本申请实施例提供的重建盘替换RAID中硬盘4的示意图;
[0078]图5为本申请实施例提供的磁盘阵列RAID重建方法详细流程图;
[0079]图6为本申请实施例提供的写入数据过程中磁盘阵列RAID重建方法详细流程图;
[0080]图7为本申请实施例提供的读取数据过程中磁盘阵列RAID重建方法详细流程图;
[0081]图8为本申请实施例提供的磁盘阵列RAID重建装置示意图。
【具体实施方式】
[0082]为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部份实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
[0083]本申请实施例提供的方法,在确定需要对RAID中的条带进行操作后,若条带的状态为未重建,则根据需要进行操作的条带对应的数据和/或根据所述条带在所述RAID中正常块对应的数据,确定实际写入的数据;将确定的实际写入的数据写入到条带中。该方法在对RAID中的条带进行数据操作的同时,就可
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1