发明名称 |
一种数据一致性错误定位方法和装置 |
摘要 |
本发明涉及一种数据一致性错误定位方法和装置,其中装置是内置CRC计算引擎的磁盘阵列控制器,其中方法包括:确定检验块的长度,并在磁盘阵列中的每个磁盘上都专门划分出CRC校验和及位图区域;完成CRC计算的初始化,更新所述CRC校验和及位图区域;对新写入数据的检验块计算该检验块的CRC校验和,更新所述CRC校验和及位图区域;数据一致性错误定位任务启动后,定位磁盘阵列中发生数据一致性错误的检验块,更新所述CRC校验和及位图区域。这种方法和装置在磁盘阵列控制器级别上实现,采用DMA数据传输方式、位图机制和硬件实现的CRC计算引擎,提高数据一致性错误定位时的性能和可靠性,保证了磁盘阵列数据一致性。 |
申请公布号 |
CN101562034B |
申请公布日期 |
2012.09.26 |
申请号 |
CN200810090292.7 |
申请日期 |
2008.04.17 |
申请人 |
中兴通讯股份有限公司 |
发明人 |
李艳国 |
分类号 |
G06F12/00(2006.01)I;G11B20/18(2006.01)I |
主分类号 |
G06F12/00(2006.01)I |
代理机构 |
北京安信方达知识产权代理有限公司 11262 |
代理人 |
龙洪;霍育栋 |
主权项 |
一种数据一致性错误定位方法,其特征在于,利用磁盘阵列控制器及其内置的CRC计算引擎在磁盘阵列控制器级别上实现,CRC计算引擎采用DMA方式存取内存中的数据,完成CRC计算任务,具体包括以下步骤:1.1)确定检验块的长度,并在磁盘阵列中的每个磁盘上都专门划分出CRC校验和及位图区域,所述检验块为数据在磁盘上的存放单位;1.2)完成CRC计算的初始化,更新所述CRC校验和及位图区域;对于磁盘阵列RAID 0,在其中引入校验条带,校验条带的宽度与校验块的长度相等,磁盘阵列中位于同一行的各个磁盘的所有校验块称为一个校验条带;1.3)对新写入数据的检验块计算该检验块的CRC校验和,更新所述CRC校验和及位图区域,所述CRC校验和及位图区域包括对应每一检验块的CRC校验和及位图;所述位图包括位图头部和位图数据;数据一致性错误定位任务启动后,定位磁盘阵列中发生数据一致性错误的检验块,更新所述CRC校验和及位图区域;即当有新数据写到磁盘上时,将新写入的数据划分成若干个校验块,CRC计算引擎从内存中读取这些校验块并计算出CRC校验和,然后写入CRC校验和区域,更新位图头部,并将位图数据中数据块对应的比特位设置成1,表示CRC校验和匹配;当数据一致性错误定位任务启动时,从头至尾读取磁盘阵列上的数据,每次从磁盘上读取若干个校验块及这些校验块对应的CRC校验和到内存中,然后CRC计算引擎从内存中读取这些校验块及其对应的CRC校验和,接着根据校验块计算出新的CRC校验和,与先前从内存中读取的CRC校验和进行比较,如果两者不一致,表明该校验块上发生了数据一致性错误,更新位图头部,并将位图数据中校验块对应的比特位设置成0,表示CRC校验和不匹配。 |
地址 |
518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法律部 |