1.一种RAID重建的方法,其特征在于,包括:
当RAID触发重建时,RAID主线程创建三个线程;其中,三个线程中均包含有条带队列;三个线程并行的按照对应的条带队列中条带的顺序依次执行线程操作,当各条带队列中均不含有条带时,完成RAID重建;
其中,第一线程,用于根据磁盘扇区获取空闲条带,并按照空闲条带宽度下发读操作请求,并把所述空闲条带加入到该线程的条带队列中,当所述空闲条带内所有磁盘中的数据读取完毕后将对应条带发送到第二线程;
第二线程,用于按照条带队列中条带的顺序依次对条带进行异或运算处理,并将对应条带发送到第三线程;
第三线程,用于按照条带队列中条带的顺序依次将条带中的数据下发到热备磁盘。
2.根据权利要求1所述的RAID重建的方法,其特征在于,当RAID触发重建时,RAID主线程创建三个线程,包括:
当RAID存在故障磁盘时触发RAID重建,RAID主线程创建三个线程,并分别将三个线程进行CPU绑定。
3.根据权利要求2所述的RAID重建的方法,其特征在于,根据磁盘扇区获取空闲条带,并按照空闲条带宽度下发读取数据请求,并把所述空闲条带加入到该线程的条带队列中,当所述空闲条带内所有磁盘中的数据读取完毕后将对应条带发送到第二线程,包括:
根据磁盘扇区以固定数据长度作为步长申请空闲条带作为当前条带;
申请成功后,对RAID中正常磁盘按照当前条带宽度下发起读操作请求并加入条带队列,在发起读操作请求后处理下一个步长的数据;
当所述当前条带中读操作对应数据成功返回到所述当前条带缓存区后,将所述当前条带发送到第二线程。
4.根据权利要求3所述的RAID重建的方法,其特征在于,对条带进行异或运算处理,并将对应条带发送到第三线程,包括:
对当前条带发起异或运算请求,并在发起异或运算请求后处理下一个条带;
当所述当前条带成功执行异或运算后,将所述当前条带发送到第三线程。
5.根据权利要求4所述的RAID重建的方法,其特征在于,将条带中的数据下发到热备磁盘,包括:
将当前条带中异或运算的结果数据下发到热备磁盘中。
6.一种RAID重建的系统,其特征在于,包括:
主线程模块,用于当RAID触发重建时,RAID主线程创建三个线程;其中,三个线程中均包含有条带队列;三个线程并行的按照对应的条带队列中条带的顺序依次执行线程操作,当各条带队列中均不含有条带时,完成RAID重建;
第一线程模块,用于根据磁盘扇区获取空闲条带,并按照空闲条带宽度下发读操作请求,并把所述空闲条带加入到该线程的条带队列中,当所述空闲条带内所有磁盘中的数据读取完毕后将对应条带发送到第二线程;
第二线程模块,用于按照条带队列中条带的顺序依次对条带进行异或运算处理,并将对应条带发送到第三线程;
第三线程模块,用于按照条带队列中条带的顺序依次将条带中的数据下发到热备磁盘。
7.根据权利要求6所述的RAID重建的系统,其特征在于,所述主线程模块具体用于当RAID存在故障磁盘时触发RAID重建,RAID主线程创建三个线程,并分别将三个线程进行CPU绑定。
8.根据权利要求7所述的RAID重建的系统,其特征在于,所述第一线程模块,包括:
条带申请单元,用于根据磁盘扇区以固定数据长度作为步长申请空闲条带作为当前条带;
读操作单元,用于申请成功后,对RAID中正常磁盘按照当前条带宽度下发起读操作请求并加入条带队列,在发起读操作请求后处理下一个步长的数据;
第一发送单元,用于当所述当前条带中读操作对应数据成功返回到所述当前条带缓存区后,将所述当前条带发送到第二线程。
9.根据权利要求8所述的RAID重建的系统,其特征在于,所述第二线程模块,包括:
异或运算单元,用于对当前条带发起异或运算请求,并在发起异或运算请求后处理下一个条带;
第二发送单元,用于当所述当前条带成功执行异或运算后,将所述当前条带发送到第三线程。
10.一种RAID,其特征在于,包括:根据权利要求6或9任一项所述的RAID重建的系统。