CN101556802B - 一种raid阵列转换的方法及装置 - Google Patents
一种raid阵列转换的方法及装置 Download PDFInfo
- Publication number
- CN101556802B CN101556802B CN2009101437306A CN200910143730A CN101556802B CN 101556802 B CN101556802 B CN 101556802B CN 2009101437306 A CN2009101437306 A CN 2009101437306A CN 200910143730 A CN200910143730 A CN 200910143730A CN 101556802 B CN101556802 B CN 101556802B
- Authority
- CN
- China
- Prior art keywords
- raid1
- disk
- data
- array
- master disk
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种RAID阵列转换的方法,包括:RAID控制器设置RAID1镜像磁盘为源数据盘,所述RAID1主磁盘提供在线业务读写;RAID控制器将RAID1镜像磁盘的数据作为源数据迁移到RAID5阵列,且不对RAID1主磁盘的数据进行迁移,预留RAID1主磁盘对应的RAID5阵列逻辑地址,RAID控制器确定RAID1镜像磁盘的数据迁移到RAID5阵列完成后,对所述RAID1主磁盘物理地址与所述预留的RAID5阵列逻辑地址进行映射,根据所述映射关系对RAID1主磁盘进行逻辑地址编址,完成阵列转换。因此,本发明可以不影响阵列的在线业务性能,并且可以加快RAID阵列的转换速度。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种RAID阵列转换的方法及装置。
背景技术
RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)作为高性能、高可靠的存储技术,已经得到了广泛的应用。RAID将一系列单独的磁盘以不同的方式组合起来,为一个应用主机或主机集群提供一个逻辑磁盘。RAID技术利用多个磁盘的组合扩大磁盘容量,并提高数据读写速度和安全性,例如,当一块或多块磁盘出现故障时,能够依靠其他磁盘中的数据计算出丢失的数据。
RAID技术经过不断发展,现在已拥有了从RAID 0到RAID5的6种明确标准级别的RAID。另外,还有RAID6、RAID7、RAID10(RAID 1与RAID0的组合)、RAID01(RAID 0与RAID 1的组合)、RAID30(RAID 3与RAID0的组合)、RAID50(RAID 0与RAID 5的组合)等。
其中RAID1阵列是镜像磁盘阵列,由2块磁盘组成,如图1所示。其中一块磁盘作为主磁盘,另一块磁盘作为镜像磁盘,***中的RAID控制器通过I(输入)/O(输出)口向主磁盘和镜像磁盘写数据,当两块磁盘的数据都写完后向RAID控制器发送确认消息,表示写操作结束;RAID控制器可以通过主磁盘或镜像磁盘读取数据,当其中一块磁盘损坏时,可以从RAID1阵列的另一块磁盘上读出数据。
虽然RAID1阵列可以对数据进行冗余保护,但是RAID1阵列的可用空间利用率只有50%,并且RAID1阵列大小不能超过1个磁盘的空间大小,当存储空间需求扩大,或者磁盘空间利用率需要提高时,可以应用RAID5阵列。
在一个具有n个(例如5个,如图2所示)磁盘的RAID5阵列组织形式中,每n-1个block(数据块)产生一个Pn(奇偶校验块),并且这n个块(n-1个数据块和1个奇偶校验块)分别存储于不同的磁盘上。其中,一个奇偶校验块通过n-1个数据块按位异或获得,一个奇偶校验块和计算出该奇偶校验块的n-1个数据块称为奇偶校验组,一个奇偶校验组中的任何块可以从该奇偶校验组中其他块计算出来。因此,RAID5阵列的空间利用率为(n-1)/n,其中n为磁盘数,随着磁盘数n的增加,RAID5阵列的空间利用率也会随之增大。并且RAID5阵列是按条带(Stripe)进行数据读写,条带是阵列的不同分区上的位置相关的strip的集合,是组织不同分区上条块的单位。
有时为了适应现实应用的需求,例如,提高磁盘利用率时,需要对RAID阵列进行阵列间的转换,将原来的一种RAID(例如RAID1)级别,转换成另外一种RAID(例如RAID5)级别,并且不损失任何数据内容。RAID阵列做阵列转换有两种方式,一种是将数据迁移到新磁盘组成的新阵列中,另一种是将数据迁移到原RAID1磁盘和新磁盘组成的新阵列中,如图3所示。
当RAID1阵列转换为RAID5阵列时,需要把RAID1阵列的所有数据全部迁移到原RAID1磁盘和新磁盘组成的新RAID5阵列中的磁盘上,如图4所示,具体包括:RAID控制器读出RAID1中的数据,依次写到原RAID1磁盘和新磁盘组成的新RAID5阵列中。
因为在阵列转换的过程中需要数据迁移,并且RAID阵列地址需要重新计算,所以需要很长时间。若在阵列转换过程中对RAID1有数据读写时,需要对RAID1的主磁盘和镜像磁盘都进行读写操作,由于有RAID1阵列到RAID5阵列的数据迁移(无论从主磁盘还是镜像磁盘进行数据迁移),读写操作必须等待数据迁移完成后才能进行,会很大的影响在线业务的性能,并且如果在阵列转换的过程中终止RAID阵列的数据迁移,无法恢复成原先的RAID1阵列。
发明内容
本发明提供了一种RAID阵列转换的方法及装置,以不影响RAID阵列转换过程中的在线业务性能。
本发明提供了一种RAID阵列转换的方法,应用于包括RAID控制器、RAID1主磁盘、RAID1镜像磁盘和新磁盘的装置中,所述方法包括以下步骤:
所述RAID控制器设置所述RAID1镜像磁盘为源数据盘,所述RAID1主磁盘为提供在线业务读写的磁盘;
所述RAID控制器将所述RAID1镜像磁盘的数据作为源数据迁移到RAID5阵列,且不对所述RAID1主磁盘的数据进行迁移,预留RAID1主磁盘对应的RAID5阵列逻辑地址;其中,对于RAID5阵列,新阵列磁盘包括原RAID1主磁盘、RAID1镜像磁盘和新磁盘;
所述RAID控制器将所述RAID1镜像磁盘的数据作为源数据迁移到RAID5阵列具体为:RAID控制器根据RAID5阵列的条带深度,把RAID1阵列中的主磁盘和镜像磁盘都按相同的block大小进行逻辑划分,划分为n个block,其中,条带深度为条带中分块block的大小;每次从RAID1阵列的镜像磁盘上读取n-1个数据块,计算出校验和Pn,把校验和Pn和读取的数据块写入到新阵列条带中的数据块中;并且,在写入数据的过程中,校验和Pn只写在镜像磁盘和新增磁盘上,主磁盘上不放任何的校验和Pn和数据块,其中,第n-1倍数的数据块暂时不写入到新阵列中;
所述RAID控制器确定所述RAID1镜像磁盘的数据作为源数据迁移到RAID5阵列完成后,对所述RAID1主磁盘物理地址与所述预留的RAID5阵列逻辑地址进行映射,根据所述映射关系对RAID1主磁盘进行逻辑地址编址,完成阵列转换。
其中,在将所述RAID1镜像磁盘的数据迁移到RAID5阵列过程中,还包括:
所述RAID控制器对所述RAID1主磁盘和镜像磁盘进行异步镜像。
其中,所述对RAID1主磁盘和镜像磁盘进行异步镜像,具体包括:
所述RAID控制器设置并维护数据修改逻辑地址表,所述数据修改逻辑地址表用于记录数据迁移过程中所述RAID1主磁盘中在线业务的变化数据;
所述RAID控制器检测到所述RAID1主磁盘业务流量不会影响在线业务时,通过查找所述数据修改逻辑地址表,将所述RAID 1主磁盘的变化数据同步到RAID5阵列。
其中,所述通过查找所述数据修改逻辑地址表,将所述RAID1主磁盘的变化数据同步到RAID5阵列,具体包括:
若所述变化数据对应的RAID1镜像磁盘中的数据已迁移到RAID5阵列中,则将所述变化数据迁移到所述RAID5阵列中;
若所述变化数据对应的RAID1镜像磁盘中的数据还未同步到RAID5阵列中,则将所述变化数据同步到所述RAID1镜像磁盘中。
其中,所述对RAID1主磁盘物理地址与所述预留的RAID5阵列逻辑地址进行映射,具体为:
所述RAID1主磁盘的物理地址与RAID5阵列逻辑地址L的映射关系为:
RAID1主磁盘的物理地址=(n-1)*(L%(m/(n-1)))-(L-(m/(n-1)))/(m/(n-1));
其中,n为转换后的RAID5阵列包含的磁盘数,L为编址的RAID5条带数,m为RAID5阵列总共的条带数;
若根据上述公式算出RAID1主磁盘的物理地址的结果小于等于0,则
RAID1主磁盘的物理地址=(n-1)*(m/(n-1))-(L/(m/(n-1))-1)。
本发明还提供了一种RAID阵列转换的装置,包括RAID控制器、RAID1主磁盘、RAID1镜像磁盘和新磁盘,所述RAID控制器具体包括:
设置模块,用于设置所述RAID1镜像磁盘为源数据盘,所述RAID1主磁盘为提供在线业务读写的磁盘;
迁移模块,与所述设置模块连接,用于将所述RAID1镜像磁盘的数据作为源数据迁移到RAID5阵列,且不对所述RAID1主磁盘的数据进行迁移,预留RAID1主磁盘对应的RAID5阵列逻辑地址;其中,对于RAID5阵列,新阵列磁盘包括原RAID1主磁盘、RAID1镜像磁盘和新磁盘;
将所述RAID1镜像磁盘的数据作为源数据迁移到RAID5阵列具体为:RAID控制器根据RAID5阵列的条带深度,把RAID1阵列中的主磁盘和镜像磁盘都按相同的block大小进行逻辑划分,划分为n个block,其中,条带深度为条带中分块block的大小;每次从RAID1阵列的镜像磁盘上读取n-1个数据块,计算出校验和Pn,把校验和Pn和读取的数据块写入到新阵列条带中的数据块中;并且,在写入数据的过程中,校验和Pn只写在镜像磁盘和新增磁盘上,主磁盘上不放任何的校验和Pn和数据块,其中,第n-1倍数的数据块暂时不写入到新阵列中;
映射模块,与所述迁移模块连接,用于在确定所述RAID1镜像磁盘的数据迁移到RAID5阵列完成后,对所述RAID1主磁盘中的物理地址与所述预留的RAID5阵列逻辑地址进行映射,根据所述映射关系对RAID1主磁盘进行逻辑地址编址,完成阵列转换。
其中,还包括:
异步镜像模块,与所述迁移模块连接,用于在将所述RAID1镜像磁盘的数据迁移到RAID5阵列过程中对所述RAID1主磁盘和镜像磁盘进行异步镜像。
其中,所述异步镜像模块包括:
逻辑地址表设置子模块,用于所述RAID控制器设置并维护数据修改逻辑地址表,所述数据修改逻辑地址表用于记录数据迁移过程中所述RAID 1主磁盘中在线业务的变化数据;
检测子模块,与所述逻辑地址表设置子模块连接,用于检测所述RAID1主磁盘业务流量是否影响在线业务;
同步子模块,与所述检测子模块连接,用于检测所述RAID1主磁盘业务流量不影响在线业务时,通过查找所述数据修改逻辑地址表,将所述RAID1主磁盘的变化数据同步到RAID5阵列。
其中,所述同步子模块,具体用于若所述变化数据对应的RAID1镜像磁盘中的数据已迁移到RAID5阵列中,则将所述变化数据迁移到所述RAID5阵列中;若所述变化数据对应的RAID1镜像磁盘中的数据还未同步到RAID5阵列中,则将所述变化数据同步到所述RAID1镜像磁盘中。
其中,所述迁移模块中,所述RAID1主磁盘的物理地址与RAID5阵列逻辑地址L的映射关系为:
RAID1主磁盘的物理地址=(n-1)*(L%(m/(n-1)))-(L-(m/(n-1)))/(m/(n-1));
其中,n为转换后的RAID5阵列包含的磁盘数,L为编址的RAID5条带数,m为RAID5阵列总共的条带数;
若根据上述公式算出RAID1主磁盘的物理地址的结果小于等于0,则
RAID1主磁盘的物理地址=(n-1)*(m/(n-1))-(L/(m/(n-1))-1)。
与现有技术相比,本发明具有以下优点:
本发明中,RAID1阵列转换为RAID5阵列时,RAID1的主磁盘负责在线业务,RAID1的镜像磁盘负责数据迁移,且RAID1主磁盘与RAID1镜像磁盘功能分离,因此,本发明可以不影响阵列的在线业务性能,并且可以加快RAID阵列的转换速度。
附图说明
图1是现有技术中RAID1阵列示意图;
图2是现有技术中RAID5阵列示意图;
图3是现有技术中阵列转换类型示意图;
图4是现有技术中RAID1->RAID5阵列转换示意图;
图5是本发明中一种RAID阵列转换的方法流程图;
图6是本发明中镜像盘数据同步到新阵列示意图;
图7是本发明中阵列转换流程图;
图8是本发明中阵列转换过程示意图;
图9是本发明中一种RAID阵列转换的装置结构图。
具体实施方式
本发明的核心思想是:RAID1阵列转换为RAID5阵列,需要将数据迁移到RAID1磁盘和新磁盘上。使用RAID1阵列的镜像磁盘作为源数据盘,提供阵列重建的数据源,RAID1阵列的主磁盘作为业务盘,提供在线业务读写;维护在线业务的数据修改逻辑地址表,用于记录主磁盘中在线业务的数据修改或增加;在数据迁移过程中,原RAID1的主磁盘的数据不进行迁移,预留RAID1主磁盘对应的RAID5阵列逻辑地址;确定RAID1镜像磁盘的数据迁移到RAID5阵列完成后,对所述RAID1主磁盘物理地址与所述预留的RAID5阵列逻辑地址进行映射,根据所述映射关系对RAID1主磁盘进行逻辑地址编址,完成阵列转换。并且在阵列转换过程中,RAID1的主磁盘与镜像磁盘之间做异步镜像,当主磁盘没有业务或者业务流量很小,不会影响在线业务时,通过查找上述数据修改逻辑地址表,同步主磁盘上修改的在线业务数据到镜像磁盘。本发明中,由于主磁盘负责在线业务,镜像磁盘负责数据迁移,且主磁盘与镜像磁盘功能分离,因此,本发明不影响磁盘阵列的在线业务性能,进而加快RAID阵列的转换速度。
本发明提供了一种RAID阵列转换的方法,应用于包括RAID控制器、RAID1主磁盘、RAID1镜像磁盘和新磁盘的装置中,所述方法如图5所示,包括以下步骤:
步骤501,所述RAID控制器设置所述RAID1镜像磁盘为源数据盘,所述RAID1主磁盘为提供在线业务读写的磁盘。
步骤502,所述RAID控制器将所述RAID1镜像磁盘的数据作为源数据迁移到RAID5阵列,且不对所述RAID1主磁盘的数据进行迁移,预留RAID1主磁盘对应的RAID5阵列逻辑地址。其中,在将所述RAID1镜像磁盘的数据迁移到RAID5阵列过程中,还包括:所述RAID控制器对所述RAID1主磁盘和镜像磁盘进行异步镜像,具体包括:所述RAID控制器设置并维护数据修改逻辑地址表,所述数据修改逻辑地址表用于记录数据迁移过程中所述RAID1主磁盘中在线业务的变化数据;所述RAID控制器检测到所述RAID主磁盘业务流量不会影响在线业务时,通过查找所述数据修改逻辑地址表,将所述RAID1主磁盘的变化数据同步到RAID5阵列。
步骤503,所述RAID控制器确定所述RAID1镜像磁盘的数据作为源数据迁移到RAID5阵列完成后,对所述RAID1主磁盘中的物理地址与所述预留的RAID5阵列逻辑地址进行映射,根据所述映射关系对RAID1主磁盘进行逻辑地址编址,完成阵列转换。
本发明中,RAID1转换为RAID5时,阵列重建的数据迁移过程如图6所示。其中新增的磁盘可以是1个、2个或者多个,把新阵列的总磁盘数算做n块,那么新增的磁盘数为n-2个。本实施例中以新增3个磁盘为例进行说明,新阵列包括5块磁盘,其中两块是原RAID1阵列磁盘,3块是新磁盘,图6中1、2、3、5、6、7等代表条带上每个block(数据块)的编号,例如,1代表block1;P1、P2、P3等代表每个条带的奇偶校验块。
RAID1转换为RAID5阵列转换过程如图7所示,包括以下步骤:
步骤701,RAID控制器指定用于新阵列的磁盘。对于RAID5阵列,新阵列磁盘包括原RAID1阵列的主磁盘、镜像磁盘和新增磁盘。
步骤702,RAID控制器根据RAID5阵列的条带深度,把RAID1阵列中的主磁盘和镜像磁盘都按相同的block大小进行逻辑划分,划分为n个block,其中,条带深度为条带中分块block的大小,例如,每个block的大小为10kbit。
RAID控制器对新阵列进行RAID阵列逻辑地址编址,先预留RAID1阵列中主磁盘的RAID阵列逻辑地址,暂不对主磁盘进行数据迁移,然后将RAID1阵列的主磁盘作为在线业务磁盘,进行在线业务数据的访问,即RAID控制器只对RAID1阵列的主磁盘进行数据读写操作。
接着,每次从RAID1阵列的镜像磁盘上读取n-1个数据块,计算出校验和Pn,把校验和Pn和读取的数据块写入到新阵列条带中的数据块中;并且,在写入数据的过程中,校验和Pn只写在镜像磁盘和新增磁盘上,主磁盘上不放任何的校验和Pn和数据块,如图8中的“第一步”所示。其中,第n-1倍数的数据块暂时不写入到新阵列中,例如,在图5中有5个磁盘,则4倍数的数据块暂时不写入到新阵列中。
步骤703,RAID控制器监测RAID1阵列主磁盘的I/O流量,判断主磁盘是否没有业务读写或业务流量较小,如果是,则步骤704,否则转步骤707。检测过程具体包括:RAID控制器定时或实时检测RAID1阵列主磁盘的I/O流量,如果在预设周期内没有数据写入或读出,则说明没有业务读写,如果在预设周期内写入或读出的数据量小于预设值,则说明业务流量较小,该预设值根据不同业务类型的业务流量设定,即对于某种类型的业务,在该预设值以下的流量不会对业务造成影响。
步骤704,当主磁盘没有业务或者业务流量很小不会影响在线业务时,通过查找数据修改逻辑地址表,确定在线业务的数据修改或增加的块编号,判断主磁盘中修改的数据块是否已迁移到新阵列中,如果是,则转步骤706,否则,转步骤705。上述数据修改逻辑地址表是在阵列转换过程中形成的,用于记录主磁盘中在线业务的数据修改或增加的块编号,该数据修改逻辑地址表可以由RAID控制器存储到内存中,也可以存储到新阵列中的新磁盘或原RAID1磁盘的保留区域中,该保留区对于读写数据操作是隐藏的。
步骤705,若修改数据已转换到新阵列中,将修改或新增数据直接同步到镜像磁盘中,转步骤707。
步骤706,若修改数据已转换到新阵列中,将改变的数据块同步到新阵列中,转步骤707。
步骤707,从镜像磁盘中读取数据块,进行新阵列创建。具体为:将镜像磁盘中数据块1、2、3迁移到新阵列中的条带1;将镜像磁盘中数据块5、6、7迁移到新阵列中的条带2;将镜像磁盘中数据块9、10、11迁移到新阵列中的条带3;将镜像磁盘中数据块13、14、15迁移到新阵列中的条带4,依次类推。将镜像磁盘中数据块1、2、3、4的校验和P1放到条带1中;将镜像磁盘中数据块5、6、7、8的校验和P2放到条带2中;将镜像磁盘中数据块9、10、11、12的校验和P3放到条带3中;将镜像磁盘中数据块13、14、15、16的校验和P4放到条带4中,依次类推。其中,这些数据块只存储在新磁盘及镜像磁盘中,不存储到主磁盘中。
步骤708,判断数据迁移是否完成,如果未完成,则继续步骤704,知道将镜像磁盘中n个数据块都迁移到新阵列中,如果完成,则转步骤709。
步骤709,根据预留的RAID阵列逻辑地址与数据修改逻辑地址表,进行主磁盘中的物理地址与逻辑地址对应编码,完成阵列转换。
当镜像磁盘中的数据全部转换到新阵列中后,把在第2步中预留的RAID阵列逻辑地址与主磁盘中的物理地址,按公式(1)生成地址关系:
(n-1)*(L%(m/(n-1)))-(L-(m/(n-1)))/(m/(n-1)) (1)
其中,n为转换后的RAID阵列包含的磁盘数,L为编址的RAID条带数,m为RAID阵列总共的条带数。
若根据公式(1)计算出的结果小于等于0,则使用公式(2)进行RAID阵列逻辑地址与主磁盘中的物理地址的映射;
(n-1)*(m/(n-1))-(L/(m/(n-1))-1) (2)
本发明提供了一种RAID阵列转换的装置,如图9所示,包括RAID控制器910、RAID1主磁盘920、RAID1镜像磁盘930和新磁盘940,所述RAID控制器910具体包括:
设置模块911,用于设置RAID1镜像磁盘930为源数据盘,RAID1主磁盘920为提供在线业务读写的磁盘;
迁移模块912,与设置模块911连接,用于将RAID1镜像磁盘930的数据作为源数据迁移到RAID5阵列,且不对RAID1主磁盘920的数据进行迁移,预留RAID1主磁盘对应的RAID5阵列逻辑地址。RAID1主磁盘920的物理地址与RAID5阵列逻辑地址L的映射关系为:
主磁盘的物理地址=(n-1)*(L%(m/(n-1)))-(L-(m/(n-1)))/(m/(n-1));其中,n为转换后的RAID阵列包含的磁盘数,L为编址的RAID条带数,m为RAID阵列总共的条带数;
若根据上述公式算出主磁盘的物理地址的结果小于等于0,则
主磁盘的物理地址=(n-1)*(m/(n-1))-(L/(m/(n-1))-1)。
映射模块913,与迁移模块连接912,用于在确定RAID1镜像磁盘930的数据作为源数据迁移到RAID5阵列完成后,对所述RAID1主磁盘中的物理地址与所述预留的RAID5阵列逻辑地址进行映射,根据映射关系对RAID1主磁盘进行逻辑地址编址,阵列转换。
异步镜像模块914,与迁移模块912连接,用于在将RAID1镜像磁盘930的数据迁移到RAID5阵列过程中对所述RAID1主磁盘920和镜像磁盘930进行异步镜像。
其中,异步镜像模块914包括:逻辑地址表设置子模块,用于RAID设置并维护数据修改逻辑地址表,数据修改逻辑地址表用于记录数据迁移过程中所述RAID1主磁盘920中在线业务的变化数据;检测子模块,与逻辑地址表设置子模块连接,用于检测RAID主磁盘920业务流量是否影响在线业务;同步子模块,与检测子模块连接,用于检测RAID主磁盘920业务流量不影响在线业务时,通过查找数据修改逻辑地址表,将所述RAID1主磁盘920的变化数据同步到RAID5阵列。
同步子模块,具体用于若变化数据对应的RAID1镜像磁盘930中的数据已迁移到RAID5阵列中,则将变化数据迁移到RAID5阵列中;若变化数据对应的RAID1镜像磁盘930中的数据还未同步到RAID5阵列中,则将变化数据同步到所述RAID1镜像磁盘930中。
本发明中,RAID1阵列转换为RAID5阵列时,RAID1的主磁盘负责在线业务,RAID1的镜像磁盘负责数据迁移,且RAID1主磁盘与RAID1镜像磁盘功能分离,因此,本发明可以不影响阵列的在线业务性能,并且可以加快RAID阵列的转换速度。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (10)
1.一种RAID阵列转换的方法,应用于包括RAID控制器、RAID1主磁盘、RAID1镜像磁盘和新磁盘的装置中,其特征在于,所述方法包括以下步骤:
所述RAID控制器设置所述RAID1镜像磁盘为源数据盘,所述RAID1主磁盘为提供在线业务读写的磁盘;
所述RAID控制器将所述RAID1镜像磁盘的数据作为源数据迁移到RAID5阵列,且不对所述RAID1主磁盘的数据进行迁移,预留RAID1主磁盘对应的RAID5阵列逻辑地址;其中,对于RAID5阵列,新阵列磁盘包括原RAID1主磁盘、RAID1镜像磁盘和新磁盘;
所述RAID控制器将所述RAID1镜像磁盘的数据作为源数据迁移到RAID5阵列具体为:RAID控制器根据RAID5阵列的条带深度,把RAID1阵列中的主磁盘和镜像磁盘都按相同的block大小进行逻辑划分,划分为n个block,其中,条带深度为条带中分块block的大小;每次从RAID1阵列的镜像磁盘上读取n-1个数据块,计算出校验和Pn,把校验和Pn和读取的数据块写入到新阵列条带中的数据块中;并且,在写入数据的过程中,校验和Pn只写在镜像磁盘和新增磁盘上,主磁盘上不放任何的校验和Pn和数据块,其中,第n-1倍数的数据块暂时不写入到新阵列中;
所述RAID控制器确定所述RAID1镜像磁盘的数据迁移到RAID5阵列完成后,对所述RAID1主磁盘物理地址与所述预留的RAID5阵列逻辑地址进行映射,根据所述映射关系对RAID1主磁盘进行逻辑地址编址,完成阵列转换。
2.如权利要求1所述的方法,其特征在于,在将所述RAID1镜像磁盘的数据作为源数据迁移到RAID5阵列过程中,还包括:
所述RAID控制器对所述RAID1主磁盘和镜像磁盘进行异步镜像。
3.如权利要求2所述的方法,其特征在于,所述对RAID1主磁盘和镜像磁盘进行异步镜像,具体包括:
所述RAID控制器设置并维护数据修改逻辑地址表,所述数据修改逻辑地址表用于记录数据迁移过程中所述RAID1主磁盘中在线业务的变化数据;
所述RAID控制器检测到所述RAID1主磁盘业务流量不会影响在线业务时,通过查找所述数据修改逻辑地址表,将所述RAID1主磁盘的变化数据同步到RAID5阵列。
4.如权利要求3所述的方法,其特征在于,所述通过查找所述数据修改逻辑地址表,将所述RAID1主磁盘的变化数据同步到RAID5阵列,具体包括:
若所述变化数据对应的RAID1镜像磁盘中的数据已迁移到RAID5阵列中,则将所述变化数据迁移到所述RAID5阵列中;
若所述变化数据对应的RAID1镜像磁盘中的数据还未同步到RAID5阵列中,则将所述变化数据同步到所述RAID1镜像磁盘中。
5.如权利要求3所述的方法,其特征在于,所述对RAID1主磁盘物理地址与所述预留的RAID5阵列逻辑地址进行映射,具体为:
所述RAID1主磁盘的物理地址与RAID5阵列逻辑地址L的映射关系为:
RAID1主磁盘的物理地址=(n-1)*(L%(m/(n-1)))-(L-(m/(n-1)))/(m/(n-1));
其中,n为转换后的RAID5阵列包含的磁盘数,L为编址的RAID5条带数,m为RAID5阵列总共的条带数;
若根据上述公式算出RAID1主磁盘的物理地址的结果小于等于0,则RAID1主磁盘的物理地址=(n-1)*(m/(n-1))-(L/(m/(n-1))-1)。
6.一种RAID阵列转换的装置,包括RAID控制器、RAID1主磁盘、RAID1镜像磁盘和新磁盘,其特征在于,所述RAID控制器具体包括:
设置模块,用于设置所述RAID1镜像磁盘为源数据盘,所述RAID1主磁盘为提供在线业务读写的磁盘;
迁移模块,与所述设置模块连接,用于将所述RAID1镜像磁盘的数据作为源数据迁移到RAID5阵列,且不对所述RAID1主磁盘的数据进行迁移,预留RAID1主磁盘对应的RAID5阵列逻辑地址;其中,对于RAID5阵列,新阵列磁盘包括原RAID1主磁盘、RAID1镜像磁盘和新磁盘;
将所述RAID1镜像磁盘的数据作为源数据迁移到RAID5阵列具体为:
RAID控制器根据RAID5阵列的条带深度,把RAID1阵列中的主磁盘和镜像磁盘都按相同的block大小进行逻辑划分,划分为n个block,其中,条带深度为条带中分块block的大小;每次从RAID1阵列的镜像磁盘上读取n-1个数据块,计算出校验和Pn,把校验和Pn和读取的数据块写入到新阵列条带中的数据块中;并且,在写入数据的过程中,校验和Pn只写在镜像磁盘和新增磁盘上,主磁盘上不放任何的校验和Pn和数据块,其中,第n-1倍数的数据块暂时不写入到新阵列中;
映射模块,与所述迁移模块连接,用于在确定所述RAID1镜像磁盘的数据作为源数据迁移到RAID5阵列完成后,对所述RAID1主磁盘物理地址与所述预留的RAID5阵列逻辑地址进行映射,根据所述映射关系对RAID1主磁盘进行逻辑地址编址,完成阵列转换。
7.如权利要求6所述的装置,其特征在于,还包括:
异步镜像模块,与所述迁移模块连接,用于在将所述RAID1镜像磁盘的数据迁移到RAID5阵列过程中对所述RAID1主磁盘和镜像磁盘进行异步镜像。
8.如权利要求7所述的装置,其特征在于,所述异步镜像模块包括:
逻辑地址表设置子模块,用于设置并维护数据修改逻辑地址表,所述数据修改逻辑地址表用于记录数据迁移过程中所述RAID1主磁盘中在线业务的变化数据;
检测子模块,与所述逻辑地址表设置子模块连接,用于检测所述RAID1主磁盘业务流量是否影响在线业务;
同步子模块,与所述检测子模块连接,用于检测所述RAID1主磁盘业务流量不影响在线业务时,通过查找所述数据修改逻辑地址表,将所述RAID1主磁盘的变化数据同步到RAID5阵列。
9.如权利要求8所述的装置,其特征在于,所述同步子模块,具体用于若所述变化数据对应的RAID1镜像磁盘中的数据已迁移到RAID5阵列中,则将所述变化数据迁移到所述RAID5阵列中;若所述变化数据对应的RAID1镜像磁盘中的数据还未同步到RAID5阵列中,则将所述变化数据同步到所述RAID1镜像磁盘中。
10.如权利要求6所述的装置,其特征在于,所述迁移模块中,所述RAID1主磁盘的物理地址与RAID5阵列逻辑地址L的映射关系为:
RAID1主磁盘的物理地址=(n-1)*(L%(m/(n-1)))-(L-(m/(n-1)))/(m/(n-1));
其中,n为转换后的RAID5阵列包含的磁盘数,L为编址的RAID5条带数,m为RAID5阵列总共的条带数;
若根据上述公式算出RAID1主磁盘的物理地址的结果小于等于0,则RAID1主磁盘的物理地址=(n-1)*(m/(n-1))-(L/(m/(n-1))-1)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101437306A CN101556802B (zh) | 2009-05-25 | 2009-05-25 | 一种raid阵列转换的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101437306A CN101556802B (zh) | 2009-05-25 | 2009-05-25 | 一种raid阵列转换的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101556802A CN101556802A (zh) | 2009-10-14 |
CN101556802B true CN101556802B (zh) | 2011-04-13 |
Family
ID=41174888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101437306A Active CN101556802B (zh) | 2009-05-25 | 2009-05-25 | 一种raid阵列转换的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101556802B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9195412B2 (en) | 2010-10-07 | 2015-11-24 | International Business Machines Corporation | System and method for transforming an in-use raid array including migrating data using reserved extents |
CN102446072B (zh) | 2010-10-07 | 2014-11-19 | 国际商业机器公司 | 用于池式存储中的raid 阵列变换的***和方法 |
CN103853497A (zh) * | 2012-11-30 | 2014-06-11 | 华为技术有限公司 | 磁盘镜像的块调整方法和磁盘镜像创建方法及相关设备 |
CN103677733B (zh) * | 2013-12-16 | 2017-04-12 | 华为技术有限公司 | Raid属性变更方法和装置 |
CN105824572B (zh) * | 2015-01-05 | 2019-06-04 | 中兴通讯股份有限公司 | 一种磁盘存储空间管理方法、装置及存储设备 |
CN106371950B (zh) * | 2015-07-20 | 2020-11-03 | 中兴通讯股份有限公司 | 一种实现raid级别转换的方法及装置 |
CN109445687B (zh) * | 2015-09-30 | 2022-04-26 | 华为技术有限公司 | 一种数据存储方法以及协议服务器 |
CN109542687B (zh) * | 2018-11-23 | 2020-12-25 | 新华三技术有限公司 | 一种raid级别转换方法及装置 |
CN117112455B (zh) * | 2023-10-24 | 2024-02-06 | 苏州元脑智能科技有限公司 | 一种空间地址的转化方法、装置、计算机设备及存储介质 |
-
2009
- 2009-05-25 CN CN2009101437306A patent/CN101556802B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN101556802A (zh) | 2009-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101556802B (zh) | 一种raid阵列转换的方法及装置 | |
US10210045B1 (en) | Reducing concurrency bottlenecks while rebuilding a failed drive in a data storage system | |
US6718436B2 (en) | Method for managing logical volume in order to support dynamic online resizing and software raid and to minimize metadata and computer readable medium storing the same | |
CN102880428B (zh) | 分布式独立磁盘冗余阵列的创建方法及装置 | |
KR101758544B1 (ko) | 비휘발성 메모리 시스템에서의 동기 미러링 | |
US6393516B2 (en) | System and method for storage media group parity protection | |
CN103064765B (zh) | 数据恢复方法、装置及集群存储*** | |
CN102929748B (zh) | 数据备份方法及装置 | |
US7418550B2 (en) | Methods and structure for improved import/export of raid level 6 volumes | |
CN103534688B (zh) | 数据恢复方法、存储设备和存储*** | |
CN101923441B (zh) | 混合磁盘冗余阵列的写请求处理方法、控制器和存储*** | |
WO2013157032A1 (en) | Storage subsystem and data management method of storage subsystem | |
CN103699457A (zh) | 基于条带化的磁盘阵列修复方法及装置 | |
CN111782439B (zh) | 一种基于水平编码的双盘循环校验方法 | |
US20080091916A1 (en) | Methods for data capacity expansion and data storage systems | |
CN105302665B (zh) | 一种改进的写时拷贝快照方法及*** | |
CN106033320A (zh) | 高性能廉价磁盘冗余阵列raid机制的处理方法及装置 | |
CN102164165A (zh) | 一种网络存储***的管理方法及装置 | |
CN102226892B (zh) | 一种磁盘容错处理方法及设备 | |
CN102135862B (zh) | 一种磁盘存储***及其数据访问方法 | |
CN102169419A (zh) | 基于sata控制器的raid数据块拆分、组装方法 | |
US20130219119A1 (en) | Writing new data of a first block size to a second block size using a write-write mode | |
CN102033717B (zh) | 基于磁盘阵列的数据存储方法及*** | |
CN115562595B (zh) | 一种卷创建方法及装置、卷读写方法及装置、电子设备 | |
CN107957850A (zh) | 具虚拟区块及磁盘阵列结构的数据存储***及其管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CP03 | Change of name, title or address |