CN102609224A - 一种独立冗余磁盘阵列***及其初始化方法 - Google Patents

一种独立冗余磁盘阵列***及其初始化方法 Download PDF

Info

Publication number
CN102609224A
CN102609224A CN2012100354488A CN201210035448A CN102609224A CN 102609224 A CN102609224 A CN 102609224A CN 2012100354488 A CN2012100354488 A CN 2012100354488A CN 201210035448 A CN201210035448 A CN 201210035448A CN 102609224 A CN102609224 A CN 102609224A
Authority
CN
China
Prior art keywords
band
bitmap
value
zone
initialization
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.)
Granted
Application number
CN2012100354488A
Other languages
English (en)
Other versions
CN102609224B (zh
Inventor
古世磊
施培任
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Beijing Electronic Information Industry Co Ltd
Original Assignee
Inspur Beijing Electronic Information Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Beijing Electronic Information Industry Co Ltd filed Critical Inspur Beijing Electronic Information Industry Co Ltd
Priority to CN201210035448.8A priority Critical patent/CN102609224B/zh
Publication of CN102609224A publication Critical patent/CN102609224A/zh
Application granted granted Critical
Publication of CN102609224B publication Critical patent/CN102609224B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种RAID5***及其初始化方法,涉及计算机***及存储领域。本发明公开的方法包括:创建一级位图,顺序初始化各条带时,从一级位图中读取当前要初始化的条带所属的区域对应位的值,确定此区域已同步时,继续对下一个条带进行顺序初始化;确定此区域不同步时,查找到此区域对应的二级位图,从所查找到的二级位图中读取当前要初始化的条带对应位的值,确定此条带已同步时,继续对下一条带进行顺序初始化,确定此条带不同步时,或者查找不到此区域对应的二级位图时,对当前要初始化的条带进行同步校验计算,使当前所要初始化的条带同步,继续对下一个条带进行顺序初始化。本申请技术方案使得RAID创建之后即可投入使用。

Description

一种独立冗余磁盘阵列***及其初始化方法
技术领域
本发明涉及计算机***及存储领域,具体涉及一种RAID5(RedundantArrays of Inexpensive Disks,独立冗余磁盘阵列)***及其初始化方法。
背景技术
对于具有冗余校验信息的RAID5(Redundant Arrays of InexpensiveDisks,独立冗余磁盘阵列)***,RAID5新创建时各成员盘数据并不能保证条带数据是一致性的.数据的不一致性使得***无法按照正常流程处理主机IO请求,所得到的校验数据可能是错误的,因此这些级别的RAID5创建时必须先进行一致性初始化工作。典型的初始化方式是格式化所有成员盘,将所有成员盘数据写零,即可保证RAID5分条数据符合偶校验。
但RAID5初始化任务必须遍历成员盘的所有数据,这是一项非常耗时的工作,并且随着磁盘的容量的增大,等待的时间就会更长。另外初始化完成之前,RAID5无法响应主机端IO请求,否则已写入的数据可能被初始化操作覆盖,或者产生数据错误,因此初始化过程中RAID5无法响应IO请求,无法满足即插即用的需求。如何快速完成RAID5***初始化工作,并为主机端可用成为一个急需解决的问题。
目前RAID5有两种写方式:读改写和重构写。读改写一般用于小块写,重构写一般用于大块写。对于读改写来说,需要旧的校验数据的参与,所以,如果原来的条带数据不一致的话,读改写由于依赖原来的校验值,经过重新计算,会产生错误的结果,条带还是不一致,失去了冗余的作用。而如果进行重构写的话,不需要旧的校验值参与计算,所以,新的结果是一致的,即使原来的条带数据不一致,经过重构写也变得一致。如果条带的第一次写请求到达,就让它做重构写,第一次写之后,采用各自对应的写方式。也就是说不用刻意地去做初始化,创建之后即可以投入使用。
这样,就需要记录已经写过或者已同步过的区域,目前采用的是位图标记方式,即利用位图中的一位对应记录一个条带的同步情况。例如,某一条带已同步,则该条带对应位图中的位的值为1。若条带不同步,则条带对应位图中的位的值为0。
显而易见,上述位图中的一位对应一个条带的同步情况在实际使用中会有很多限制。假设每个条带4KB,对于2TB的磁盘,共用于记录同步情况的位图大约需要62MB,如果把位图全部放在内存中,会消耗很大的内存,特别是有多个RAID5的***。而如果只放在内存中一部分位图页面,等用到的时候再去磁盘请求页面,并把原来在内存中的页面换出,这样是减少了内存的消耗,但加大了磁盘的请求,很大的影响写性能,特别是对于随机写。
发明内容
本发明所要解决的技术问题是,提供一种RAID5***及其初始化方法,以使得创建之后即可投入使用。
为了解决上述问题,本发明公开了一种独立冗余磁盘阵列RAID5***初始化方法,包括:
创建用于记录RAID5中各区域的同步状态的一级位图,其中,所创建的一级位图中的每一位分别记录一个区域的同步状态,所述一个区域包括多个连续条带;
顺序初始化各条带时,从所述一级位图中读取当前要初始化的条带所属的区域对应位的值,根据读取值确定此区域已同步时,继续对下一个条带进行顺序初始化;
根据读取值确定此区域不同步时,查找到此区域对应的二级位图,从所查找到的二级位图中读取当前要初始化的条带对应位的值,根据读取值确定此条带已同步时,继续对下一条带进行顺序初始化,根据读取值确定此条带不同步时,对当前要初始化的条带进行同步校验计算,使当前所要初始化的条带同步,将所述二级位图中此条带对应位的值设置成已同步状态对应的值,再继续对下一个条带进行顺序初始化;查找不到此区域对应的二级位图,则对当前要初始化的条带进行同步校验计算,使当前所要初始化的条带同步,继续对下一个条带进行顺序初始化。
较佳地,上述方法在上述初始化过程中,还记录初始化完成位置。
较佳地,上述方法还包括:在上述初始化过程中,接收写请求,若所接收的写请求所在的条带的位置小于所记录的初始化完成位置,则根据应用场景选择读改写或者重构写方式进行写操作。
较佳地,上述方法中,若所接收的写请求所在的条带位图大于所记录的初始化完成位置,则查找写请求所在的条带所属的区域对应的二级位图,若查找到该二级位图,则从所查找到的二级位图中读取所接收到的写请求所在的条带对应位的值,根据读取值选择相应的写方式进行写操作,若查找不到写请求所在的条带所属的区域对应的二级位图,则利用空闲内存块创建该二级位图,所创建的二级位图中每一位仅记录此区域中一条条带的同步状态,再对写请求所在的条带进行重构写,将所创建的二级位图中此条带对应位的值设置成已同步状态对应的值。
较佳地,上述方法中,根据读取值选择相应的写方式进行写操作的过程如下:
根据读取的值确定此条带已同步时,按照应用场景选择读改写或者重构写方式进行写操作;
根据读取的值确定此条带不同步时,选择重写方式进行写操作,在写操作结束后,将所述二级位图中此条带对应位的值设置成已同步状态对应的值。
较佳地,上述方法中,当所述二级位图中记录的每一条条带均同步,则将所述一级位图中该二级位图对应的区域对应位的值设置成已同步状态对应的值,并释放该二级位图所占用的内存块。
较佳地,上述方法还包括:当内存使用超过设定比率时,释放长时间未更新的二级位图所占用的内存块。
本发明还公开了一种独立冗余磁盘阵列(RAID5)***,包括:
第一模块,创建用于记录RAID5中各区域的同步状态的一级位图,其中,所创建的一级位图中的每一位分别记录一个区域的同步状态,所述一个区域包括多个连续条带;
第二模块,顺序初始化各条带时,从所述一级位图中读取当前要初始化的条带所属的区域对应位的值;
第三模块,根据读取值确定此区域已同步时,继续对下一个条带进行顺序初始化;根据读取值确定此区域不同步时,查找到此区域对应的二级位图,从所查找到的二级位图中读取当前要初始化的条带对应位的值,根据读取值确定此条带已同步时,继续对下一条带进行顺序初始化,根据读取值确定此条带不同步时,对当前要初始化的条带进行同步校验计算,使当前所要初始化的条带同步,将所述二级位图中此条带对应位的值设置成已同步状态对应的值,继续对下一个条带进行顺序初始化,查找不到此区域对应的二级位图,则对当前要初始化的条带进行同步校验计算,使当前所要初始化的条带同步,继续对下一个条带进行顺序初始化。
较佳地,上述***中,所述第三模块,在初始化过程中,还记录初始化完成位置;此时,该***还包括:
第四模块,在上述初始化过程中,接收写请求,若所接收的写请求所在的条带的位置小于所记录的初始化完成位置,则根据应用场景选择读改写或者重构写方式进行写操作;若所接收的写请求所在的条带位图大于所记录的初始化完成位置,则查找写请求所在的条带所属的区域对应的二级位图,若查找到该二级位图,则从所查找到的二级位图中读取所接收到的写请求所在的条带对应位的值,根据读取值选择相应的写方式进行写操作,若查找不到写请求所在的条带所属的区域对应的二级位图,则利用空闲内存块创建该二级位图,所创建的二级位图中每一位仅记录此区域中一条条带的同步状态,再对写请求所在的条带进行重构写,将所创建的二级位图中此条带对应位的值设置成已同步状态对应的值。
较佳地,上述***中,所述第四模块,在所述二级位图中记录的每一条条带均同步,则将所述一级位图中该二级位图对应的区域对应位的值设置成已同步状态对应的值,并释放该二级位图所占用的内存块。
本申请技术方案,提出一种新的记录条带同步情况的位图方式,使得RAID创建之后即可投入使用,且本申请技术方案提供的位图方式占用内存资源较小。
附图说明
图1为本实施例中顺序初始化流程图;
图2为本实施例中写请求流程图;
图3为本实施例中周期刷写流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文将结合附图对本发明技术方案作进一步详细说明。需要说明的是,在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
实施例1
在本实施例中,申请人提出在linux内核中软RAID基础上,可采用位图去标记各区域的同步状态(例如已经写过或者同步过的区域对应的位图中的位的取值为1),再根据标记对应的同步状态来选择合适的写方式(如读改写或重构写),从而提高RAID初始化的效率。
其中,本实施例中采用的位图标记方式,是位图中的一位用于标记多个连续条带的同步状态,这是个粗粒度的划分,相当于位图中的一位用于标记多个连续条带所组成的一个区域的同步状态信息。假设,位图中的一位用于标记16个连续条带的同步状态信息,那么对于2TB的磁盘,其位图大小不到4MB,这样,可以把位图信息全部放在内存中,以减少与磁盘的交互,同时也减少了内存消耗。由于位图中的一位标记16个条带是否同步的状态信息,当这16个条带都重构写过或者初始化过,才将位图中的这一位置为1(初始值为0)。为了表示更细分的条带的同步状态,当对一个条带有写请求时候,先查看该条带所属的区域在位图中所对应的位的取值,如果该位的取值已经置1,就说明这个区域的16个条带都同步了,即收到写请求的条带已同步;如果该条带所属的区域在位图中所对应的位的取值没有置1,就分配一个内存块,至少有16个位,这个内存块用于创建二级位图,来表示每个条带的状态,然后就是对内存块中对应的位进行操作。直到这16个都置1了,才把位图对应的位设置1,然后释放掉这个内存块,当然,要对这些内存块的数量进行限制,以免过多使用内存,如果达到最大数量,就需要有替换机制,释放被替换出的内存块,给新的请求分配内存块。这个替换算法有很多实现,只要合理就好。另外,较佳的方案中,将进入最早的内存块换出,因为如果全部写过的话,就应该不在内存中了,还在内存中的话,就说明很长时间没有请求,所以换出还是合理的。
而对于已经分配了的内存块,需要快速查找删除等操作时,可采用红黑树进行管理,内存块对应的位的在位图页面的顺序编号(可以计算出)作为关键字,可以进行有效率的查找,添加,删除等操作。
并且考虑到极端的情况下,因为替换机制,会有位图记录丢失,但不会影响数据的正确性,那段条带相当于没有初始化,如果有写请求,就会再进行一次重构写。并且还有顺序初始化线程,所以,到最后会表明整个RAID5都已经同步了。
下面结合图1,说明顺序初始化线程的具体过程,该过程包括如下步骤:步骤100,创建用于记录RAID5中各区域的同步状态的一级位图,并初始化为0,其中,所创建的一级位图中的每一位分别记录一个区域的同步状态,一个区域包括多个连续条带;
需要说明的是,上述步骤100操作是创建RAID时完成的。
步骤200,查询当前要初始化的条带包括的扇区是否达到最大数值,如果是,则表明顺序初始化完毕,结果本流程,否则进入步骤300;
步骤300,从一级位图中读取当前要初始化的条带所属的区域对应位,确定该区域是否同步,如果是,直接返回步骤200对下一个条带进行初始化,否则进入步骤400;
本实施例中,当一级位图中区域对应位置1,则表明该区域所包含的各条带之前均已经重构写过,即包含这些条带的区域已同步。
步骤400,查找此区域对应的二级位图,若查找到,进入步骤500,否则对当前要初始化的条带进行同步校验计算,使当前所要初始化的条带同步,返回步骤200继续对下一个条带进行顺序初始化。
步骤500,从所查找到的二级位图中读取当前要初始化的条带对应位的值,根据读取值判断此条带是否已同步,如果是,返回步骤200继续对下一条带进行顺序初始化,否则对当前要初始化的条带进行同步校验计算,使当前所要初始化的条带同步,将所述二级位图中此条带对应位的值设置成已同步状态对应的值,再返回步骤200继续对下一个条带进行顺序初始化。
有些方案在上述顺序初始化的过程中,还记录初始化完成位置,记录为place_seqinit。
记录初始化完成位置,主要是可以在初始化的同时,进行写操作,即初始化线程和写线程可同时运行。
下面再结合图2,说明初始化过程中具体的数据写流程,该过程包括如下步骤:
a)判断写请求所在的条带的位置是否小于place_seqinit,如果是,说明已经顺序初始化过了,根据实际情况选择读改写或者重构写方式,否则进入步骤b)。
该步骤中,根据实际情况选择读改写还是重构写方式,主要指可按照本领域常规来选择合适的写方式,即根据磁盘要读的数量,哪种方式读盘数量少就采用哪个,以减少读操作而提高性能。例如写请求所要读的磁盘数量过大时,可选用重构写方式,写请求所要读的磁盘数量较小时,则可选用读改写方式。
b)读取一级位图中写请求所在的条带所属区域对应位的值,根据所读取的值判断此条带所属区域是否同步,如果是,说明整个区域的条带都同步了,直接根据实际情况选择读改写还是重构写,否则进入步骤c)。
c)判断该条带所属区域对应的二级位图是否存在,如果存在,进入步骤d),否则进入步骤e);
d)读取二级位图中写请求所在条带对应位的值,根据所读取的值判断此条带同步时,如果是,直接根据实际情况选择进行读改写还是重构写,根据所读取的值判断此条带不同步时,对该条带进行重构写,并将二级位图中写请求所在条带对应位的值设置为已同步状态对应的值。如果二级位图中记录的每一条条带均同步,则将所述一级位图中该二级位图对应的区域对应位的值设置成已同步状态对应的值,并释放该二级位图所占用的内存块。
e)通过内存块为该条带创建所属区域对应的二级位图,并对该条带进行重构写,将所创建的二级位图中写请求所在条带对应位的值设置为已同步状态对应的值,其中,所创建的二级位图中每一位仅记录此区域中一条条带的同步状态。
有些方案中,还考虑到资源有限的问题,故在创建二级位图时,先查看内存块的数量是否达到最大数值。如果没有达到最大数值,就分配对应的内存块以创建二级位图,初始化为0。如果内存块的数量达到最大数值,则找出一个内存块释放掉,给新的请求分配内存块创建二级位图,初始化为0。其中,释放内存块时,可以钭那些长时间未更新(即)的二级位图所占用的内存块释放掉。另外,也可以按照资源利用率来释放内存块,即使用的内存块数量与内存块总数量的比值达到一定设定值,就可以开始释放内存块。
另外,由于位图信息的操作都是在缓存中进行,必要时才进行真正的磁盘操作。但是,在这个过程中有可能发生断电或重启的情况,位图记录就会丢失,就会产生位图记录与实际不一样的情况。但即使位图记录和实际不同,由于位图晚于实际情况,中途断电再启动,那段条带相当于没有初始化,就会再进行一次重构写,可以保证数据的正确性。对实时性要求不是很高,如果同步写回到磁盘的话,会带来很大的性能损失。所以,需要考虑性能的影响,可以设置把位图信息周期性地写回磁盘。这里通过一个线程去实现,可以设置唤醒的时间,图3所示即为周期刷写位图的过程。因为位图页面比较多,所以,让线程每一次只查询一定数目的页面。检查这一批是否已经扫描了足够数量的页面,扫描完就退出,否则就查询一个页面。如果页面没有标记为脏页,就停止对该页面的操作,查询下一个页面。如果标记为脏页,就把该页面写回磁盘。清楚该页的脏标记。
实施例2
本实施例介绍一种RAID5***,至少包括第一模块、第二模块和第三模块。下面介绍各模块的功能。
第一模块,创建用于记录RAID5中各区域的同步状态的一级位图,其中,所创建的一级位图中的每一位分别记录一个区域的同步状态,一个区域包括多个连续条带;
第二模块,顺序初始化各条带时,从一级位图中读取当前要初始化的条带所属的区域对应位的值;
第三模块,根据读取值确定此区域已同步时,继续对下一个条带进行顺序初始化;根据读取值确定此区域不同步时,查找此区域对应的二级位图,从所查找到的二级位图中读取当前要初始化的条带对应位的值,根据读取值确定此条带已同步时,继续对下一条带进行顺序初始化,根据读取值确定此条带不同步时,对当前要初始化的条带进行同步校验计算,使当前所要初始化的条带同步,将所述二级位图中此条带对应位的值设置成已同步状态对应的值,继续对下一个条带进行顺序初始化,查找不到此区域对应的二级位图,则对当前要初始化的条带进行同步校验计算,使当前所要初始化的条带同步,继续对下一个条带进行顺序初始化。
另外,上述第三模块,在初始化过程中,还可以记录初始化完成位置。记录初始化完成位置的主要作用是,可以在初始化的同时进行写操作,即双线程运行。此时,上述***可增加一个第四模块,该模块在初始化过程中,接收写请求,若所接收的写请求所在的条带的位置小于所记录的初始化完成位置,则根据应用场景选择读改写或者重构写方式进行写操作。若所接收的写请求所在的条带位图大于所记录的初始化完成位置,则查找写请求所在的条带所属的区域对应的二级位图,若查找到该二级位图,则从所查找到的二级位图中读取所接收到的写请求所在的条带对应位的值,根据读取值选择相应的写方式进行写操作,若查找不到写请求所在的条带所属的区域对应的二级位图,则利用空闲内存块创建该二级位图,所创建的二级位图中每一位仅记录此区域中一条条带的同步状态,再对写请求所在的条带进行重构写,将所创建的二级位图中此条带对应位的值设置成已同步状态对应的值。写操作以及创建二级位图的具体过程可参见实施例1,在此不再赘述。
还有一些方案中,第四模块,在二级位图中记录的每一条条带均同步时,将一级位图中该二级位图对应的区域对应位的值设置成已同步状态对应的值,并释放该二级位图所占用的内存块。
优选方案中,还考虑到第四模块,可以在内存使用超过设定比率时,释放长时间未更新的二级位图所占用的内存块,以提高资源利用率。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。
以上所述,仅为本发明的较佳实例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种独立冗余磁盘阵列(RAID5)***初始化方法,其特征在于,该方法包括:
创建用于记录RAID5中各区域的同步状态的一级位图,其中,所创建的一级位图中的每一位分别记录一个区域的同步状态,所述一个区域包括多个连续条带;
顺序初始化各条带时,从所述一级位图中读取当前要初始化的条带所属的区域对应位的值,根据读取值确定此区域已同步时,继续对下一个条带进行顺序初始化;
根据读取值确定此区域不同步时,查找到此区域对应的二级位图,从所查找到的二级位图中读取当前要初始化的条带对应位的值,根据读取值确定此条带已同步时,继续对下一条带进行顺序初始化,根据读取值确定此条带不同步时,对当前要初始化的条带进行同步校验计算,使当前所要初始化的条带同步,将所述二级位图中此条带对应位的值设置成已同步状态对应的值,再继续对下一个条带进行顺序初始化;查找不到此区域对应的二级位图,则对当前要初始化的条带进行同步校验计算,使当前所要初始化的条带同步,继续对下一个条带进行顺序初始化。
2.如权利要求1所述的方法,其特征在于,在上述初始化过程中,还记录初始化完成位置。
3.如权利要求2所述的方法,其特征在于,该方法还包括:在上述初始化过程中,接收写请求,若所接收的写请求所在的条带的位置小于所记录的初始化完成位置,则根据应用场景选择读改写或者重构写方式进行写操作。
4.如权利要求3所述的方法,其特征在于,
若所接收的写请求所在的条带位图大于所记录的初始化完成位置,则查找写请求所在的条带所属的区域对应的二级位图,若查找到该二级位图,则从所查找到的二级位图中读取所接收到的写请求所在的条带对应位的值,根据读取值选择相应的写方式进行写操作,若查找不到写请求所在的条带所属的区域对应的二级位图,则利用空闲内存块创建该二级位图,所创建的二级位图中每一位仅记录此区域中一条条带的同步状态,再对写请求所在的条带进行重构写,将所创建的二级位图中此条带对应位的值设置成已同步状态对应的值。
5.如权利要求4所述的方法,其特征在于,根据读取值选择相应的写方式进行写操作的过程如下:
根据读取的值确定此条带已同步时,按照应用场景选择读改写或者重构写方式进行写操作;
根据读取的值确定此条带不同步时,选择重写方式进行写操作,在写操作结束后,将所述二级位图中此条带对应位的值设置成已同步状态对应的值。
6.如权利要求1至5任一项所述的方法,其特征在于,
当所述二级位图中记录的每一条条带均同步,则将所述一级位图中该二级位图对应的区域对应位的值设置成已同步状态对应的值,并释放该二级位图所占用的内存块。
7.如权利要求6所述的方法,其特征在于,该方法还包括:
当内存使用超过设定比率时,释放长时间未更新的二级位图所占用的内存块。
8.一种独立冗余磁盘阵列(RAID5)***,其特征在于,该***包括:
第一模块,创建用于记录RAID5中各区域的同步状态的一级位图,其中,所创建的一级位图中的每一位分别记录一个区域的同步状态,所述一个区域包括多个连续条带;
第二模块,顺序初始化各条带时,从所述一级位图中读取当前要初始化的条带所属的区域对应位的值;
第三模块,根据读取值确定此区域已同步时,继续对下一个条带进行顺序初始化;根据读取值确定此区域不同步时,查找到此区域对应的二级位图,从所查找到的二级位图中读取当前要初始化的条带对应位的值,根据读取值确定此条带已同步时,继续对下一条带进行顺序初始化,根据读取值确定此条带不同步时,对当前要初始化的条带进行同步校验计算,使当前所要初始化的条带同步,将所述二级位图中此条带对应位的值设置成已同步状态对应的值,继续对下一个条带进行顺序初始化,查找不到此区域对应的二级位图,则对当前要初始化的条带进行同步校验计算,使当前所要初始化的条带同步,继续对下一个条带进行顺序初始化。
9.如权利要求8所述的***,其特征在于,所述第三模块,在初始化过程中,还记录初始化完成位置;此时,该***还包括:
第四模块,在上述初始化过程中,接收写请求,若所接收的写请求所在的条带的位置小于所记录的初始化完成位置,则根据应用场景选择读改写或者重构写方式进行写操作;若所接收的写请求所在的条带位图大于所记录的初始化完成位置,则查找写请求所在的条带所属的区域对应的二级位图,若查找到该二级位图,则从所查找到的二级位图中读取所接收到的写请求所在的条带对应位的值,根据读取值选择相应的写方式进行写操作,若查找不到写请求所在的条带所属的区域对应的二级位图,则利用空闲内存块创建该二级位图,所创建的二级位图中每一位仅记录此区域中一条条带的同步状态,再对写请求所在的条带进行重构写,将所创建的二级位图中此条带对应位的值设置成已同步状态对应的值。
10.如权利要求8或9所述的***,其特征在于,
所述第四模块,在所述二级位图中记录的每一条条带均同步,则将所述一级位图中该二级位图对应的区域对应位的值设置成已同步状态对应的值,并释放该二级位图所占用的内存块。
CN201210035448.8A 2012-02-16 2012-02-16 一种独立冗余磁盘阵列***及其初始化方法 Active CN102609224B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210035448.8A CN102609224B (zh) 2012-02-16 2012-02-16 一种独立冗余磁盘阵列***及其初始化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210035448.8A CN102609224B (zh) 2012-02-16 2012-02-16 一种独立冗余磁盘阵列***及其初始化方法

Publications (2)

Publication Number Publication Date
CN102609224A true CN102609224A (zh) 2012-07-25
CN102609224B CN102609224B (zh) 2015-03-11

Family

ID=46526631

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210035448.8A Active CN102609224B (zh) 2012-02-16 2012-02-16 一种独立冗余磁盘阵列***及其初始化方法

Country Status (1)

Country Link
CN (1) CN102609224B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105867841A (zh) * 2016-03-24 2016-08-17 浙江宇视科技有限公司 一种数据重建方法及装置
US9678831B2 (en) 2013-03-18 2017-06-13 Silicon Motion, Inc. Error correction method and memory device capable of reading pages continuously
CN111158596A (zh) * 2019-12-28 2020-05-15 天地伟业技术有限公司 一种raid快速初始化方法
CN113835641A (zh) * 2021-09-28 2021-12-24 苏州浪潮智能科技有限公司 一种条带初始化控制方法、装置、设备、存储介质
CN115098046A (zh) * 2022-08-26 2022-09-23 苏州浪潮智能科技有限公司 磁盘阵列初始化方法、***、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7103716B1 (en) * 2003-06-26 2006-09-05 Adaptec, Inc. RAID 6 disk array with prime number minus one disks
US7711897B1 (en) * 2005-06-10 2010-05-04 American Megatrends, Inc. Method, system, apparatus, and computer-readable medium for improving disk array performance
CN101840360A (zh) * 2009-10-28 2010-09-22 创新科存储技术有限公司 Raid***的快速重建方法及装置
CN102023902A (zh) * 2010-12-28 2011-04-20 创新科存储技术有限公司 一种磁盘阵列重建方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7103716B1 (en) * 2003-06-26 2006-09-05 Adaptec, Inc. RAID 6 disk array with prime number minus one disks
US7711897B1 (en) * 2005-06-10 2010-05-04 American Megatrends, Inc. Method, system, apparatus, and computer-readable medium for improving disk array performance
CN101840360A (zh) * 2009-10-28 2010-09-22 创新科存储技术有限公司 Raid***的快速重建方法及装置
CN102023902A (zh) * 2010-12-28 2011-04-20 创新科存储技术有限公司 一种磁盘阵列重建方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9678831B2 (en) 2013-03-18 2017-06-13 Silicon Motion, Inc. Error correction method and memory device capable of reading pages continuously
CN104064221B (zh) * 2013-03-18 2017-10-24 慧荣科技股份有限公司 错误修正方法以及存储器装置
CN105867841A (zh) * 2016-03-24 2016-08-17 浙江宇视科技有限公司 一种数据重建方法及装置
CN105867841B (zh) * 2016-03-24 2019-01-15 浙江宇视科技有限公司 一种数据重建方法及装置
CN111158596A (zh) * 2019-12-28 2020-05-15 天地伟业技术有限公司 一种raid快速初始化方法
CN113835641A (zh) * 2021-09-28 2021-12-24 苏州浪潮智能科技有限公司 一种条带初始化控制方法、装置、设备、存储介质
CN113835641B (zh) * 2021-09-28 2023-07-25 苏州浪潮智能科技有限公司 一种条带初始化控制方法、装置、设备、存储介质
CN115098046A (zh) * 2022-08-26 2022-09-23 苏州浪潮智能科技有限公司 磁盘阵列初始化方法、***、电子设备及存储介质
CN115098046B (zh) * 2022-08-26 2023-01-24 苏州浪潮智能科技有限公司 磁盘阵列初始化方法、***、电子设备及存储介质

Also Published As

Publication number Publication date
CN102609224B (zh) 2015-03-11

Similar Documents

Publication Publication Date Title
US8639898B2 (en) Storage apparatus and data copy method
CN101515276B (zh) 一种文件数据写操作的方法、文件数据恢复方法及***
US10146435B2 (en) Storage system and data write method
WO2013160972A1 (en) Storage system and storage apparatus
CN102023809A (zh) 存储***、从存储***读取数据的方法及写入数据的方法
CN104050097A (zh) 在具有不同的最小可寻址数据单元大小的非易失性存储器单元之间进行选择
US20130265861A1 (en) Efficient access to storage devices with usage bitmaps
CN102682012A (zh) 一种文件***内读写数据的方法及装置
CN104503706A (zh) 一种基于磁盘阵列的数据存储及读取方法
CN101609420A (zh) 实现磁盘冗余阵列重建的方法和磁盘冗余阵列及其控制器
JP2016503927A (ja) ストレージシステム及びキャッシュコントロール方法
US11128535B2 (en) Computer system and data management method
CN103534688A (zh) 数据恢复方法、存储设备和存储***
CN101482802A (zh) 独立磁盘冗余阵列5扩展方法及装置
CN103150128A (zh) 基于ssd和磁盘的可靠混合存储***实现方法
CN102609224B (zh) 一种独立冗余磁盘阵列***及其初始化方法
CN103229134A (zh) 存储设备及其控制方法
CN104166601A (zh) 一种存储数据的备份方法和装置
CN105630413B (zh) 一种磁盘数据的同步回写方法
US9122416B2 (en) Mainframe storage apparatus that utilizes thin provisioning
CN101169705B (zh) 多硬盘下基于裸文件***实现文件级镜像的方法及装置
CN106371950B (zh) 一种实现raid级别转换的方法及装置
CN102609223A (zh) 一种独立冗余磁盘阵列***及其初始化方法
JP2003131818A (ja) クラスタ構成ストレージにおけるクラスタ間raid構成
CN114415968B (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