CN103970487A - 一种独立磁盘冗余阵列及实现方法 - Google Patents

一种独立磁盘冗余阵列及实现方法 Download PDF

Info

Publication number
CN103970487A
CN103970487A CN201410223798.6A CN201410223798A CN103970487A CN 103970487 A CN103970487 A CN 103970487A CN 201410223798 A CN201410223798 A CN 201410223798A CN 103970487 A CN103970487 A CN 103970487A
Authority
CN
China
Prior art keywords
data
raid
disks
data block
write
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.)
Pending
Application number
CN201410223798.6A
Other languages
English (en)
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.)
Zhejiang Uniview Technologies Co Ltd
Original Assignee
Zhejiang Uniview Technologies 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 Zhejiang Uniview Technologies Co Ltd filed Critical Zhejiang Uniview Technologies Co Ltd
Priority to CN201410223798.6A priority Critical patent/CN103970487A/zh
Publication of CN103970487A publication Critical patent/CN103970487A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明提供了一种独立磁盘冗余阵列RAID及实现方法,解决现有RAID阵列类型不适于视频数据存储与回放的技术问题。本发明提供的RAID阵列包含独立的校验盘和多个数据盘,独立的校验盘专门用于存储校验数据,数据盘和校验盘设置相同的数据块尺寸,以磁盘为单位顺序为RAID进行阵列存储空间的编址,从低地址到高地址顺序写入外部数据,以条带方式计算校验数据。通过本发明可避免在阵列中有磁盘损坏的情况下,大量音视频文件的关键帧的丢失,减少回放时频繁出现花屏或跳帧的问题。

Description

一种独立磁盘冗余阵列及实现方法
技术领域
本发明涉及数据存储技术领域,尤其涉及一种独立磁盘冗余阵列RAID及其实现方法。
背景技术
独立磁盘冗余阵列(RAID,redundant array of independent disks)是在服务器等级用于高容量数据存储的存储系统。RAID系统使用许多小容量磁盘驱动器来存储大量数据,并且使可靠性、读写性能、冗余度得到增强。
目前,RAID的有RAID0、RAID1、RAID3、RAID5等多个级别,其中,RAID5是一种存储性能、数据安全和存储成本兼顾的存储解决方案,因此得到广泛使用。RAID5以条带为单位进行数据的分割与重构,使用奇偶校验来保存冗余信息。其存储方式是将数据和相对应的奇偶校验信息通过一定算法存储到组成RAID5的各个磁盘上,并且奇偶校验信息和外部数据分别存储于不同的磁盘上。
RAID5只能保证单个磁盘损坏情况下的数据安全性,即RAID5只能容忍阵列中同时只有一块磁盘损坏,当RAID5的一个磁盘发生损坏后,可通过读取其他正常磁盘的条带数据对损坏的磁盘数据进行重构,从而恢复出损坏磁盘上的数据。但当RAID5中同时出现两块甚至更多磁盘损坏时,整个阵列进入损坏状态,在损坏磁盘数据丢失的同时,阵列中的正常磁盘也不能执行数据读写。
在视频监控等应用领域中,如使用RAID5来存储视频监控数据,存在当超过2块磁盘损坏的情况下,仍然能读取阵列中其它正常磁盘上的视频数据的需求,并且要求能够较为平滑的进行解码和播放,播放过程中不允许频繁出现花屏或者跳帧。
由于RAID5在所有磁盘上交叉的存储数据及校验信息,因此,当RAID5中有两个磁盘损坏后,损坏的磁盘上会包含大批音视频文件的关键帧即I帧,关键帧是一个全帧压缩编码帧,其它类型的帧基于关键帧进行视频的压缩和解码,因此,当一个视频数据序列中,关键帧部分缺失或整体缺失,将造成整个I帧组无法解码回放,进而使得每个音视频文件回放过程频繁出现花屏或跳帧。
发明内容
有鉴于此,本发明的主要目的在于提供一种独立磁盘冗余阵列RAID及其实现方法,用于解决现有RAID阵列类型不适于视频数据存储与回放的技术问题。
为达到上述目的,本发明的技术方案是这样实现的:
一种独立磁盘冗余阵列RAID实现方法,所述RAID中包括多个数据盘和独立的校验盘,所述数据盘和校验盘被划分为若干相同大小的数据块,所述数据盘和校验盘相同位置和大小的数据块组成所述RAID的条带,该方法包括:
以磁盘为单位顺序为所述RAID进行阵列存储空间的编址;
以阵列存储空间中连续数据块的集合为外部设备分配阵列存储空间;
在向为所述外部设备分配的阵列存储空间写入数据时,从低地址到高地址顺序写入;
在执行数据写入数据盘的同时将计算得到的校验数据写入对应条带的校验盘中。
进一步地,当为所述外部设备分配的阵列存储空间跨多个数据盘时,若位于第一数据盘的存储空间被写满,则在阵列地址和第一数据盘连续的第二数据盘执行数据的进一步写入。
进一步地,所述方法还包括:
对所述RAID进行初始化,初始化完毕后,通过以下方式对任一数据盘中的任一数据块存储空间进行整块写入:
在写入之前,读取该数据块存储空间中的老数据块,并从校验盘中相同位置和大小数据块存储空间中读取老校验数据块;
对所述老数据块、老校验数据块及新数据块进行异或运算,得到新校验数据块;
将所述新数据块写入该数据块存储空间,覆盖之前老数据块,将所述新校验数据块写入所述独立的校验盘中相同位置和大小的数据块存储空间中,覆盖之前的老校验数据块。
进一步地,所述方法还包括:
在多数据块顺序写入时,从预写入数据盘的写入位置开始,预先按数据块存储空间地址顺序,从该数据盘读取预设个数的老数据块到所述RAID的缓存中,并同步预先从校验盘中读取对应的老校验数据块到所述RAID的缓存中;
在执行实际写入之前,先将计算出的新数据块及新校验数据块写入所述RAID缓存中,在完成预设数量或所有数据块的缓存写入后,再批量将所有缓存写入的数据块写入对应的数据盘和校验盘。
基于本发明实施例,本发明还提供一种独立磁盘冗余阵列RAID,该RAID包括:
空间管理单元,用于将该所述RAID的多个数据盘和独立的校验盘划分为若干相同大小的数据块,所述数据盘和校验盘相同位置和大小的数据块组成所述RAID的条带;以磁盘为单位顺序为所述RAID进行阵列存储空间的编址;以及用于以阵列存储空间中连续数据块的集合为外部设备分配阵列存储空间
读写控制单元,用于根据数据的存储规则向所述RAID写入数据和从所述RAID读取数据;在向为所述外部设备分配的阵列存储空间写入数据时,从低地址到高地址顺序写入;
校验计算单元,用于在执行数据写入数据盘的同时将计算得到的校验数据写入对应条带的校验盘中。
进一步地,所述读写控制单元还用于,在为所述外部设备分配的阵列存储空间跨多个数据盘,且位于第一数据盘的存储空间被写满时,在阵列地址和第一数据盘连续的第二数据盘执行数据的进一步写入。
进一步地,所述读写控制单元还用于对所述RAID进行初始化:
所述读写控制单元在执行数据写入之前,先读取该数据块存储空间中的老数据块,并从校验盘中相同位置和大小数据块存储空间中读取老校验数据块;
所述校验计算单元对所述老数据块、老校验数据块及新数据块进行异或运算,得到新校验数据块;
所述读写控制单元将所述新数据块写入该数据块存储空间,覆盖之前老数据块,将所述新校验数据块写入所述独立的校验盘中相同位置和大小的数据块存储空间中,覆盖之前的老校验数据块。
进一步地,所述读写控制单元还用于,在多数据块顺序写入时,从预写入数据盘的写入位置开始,预先按数据块存储空间地址顺序,从该数据盘读取预设个数的老数据块到所述RAID的缓存中,并同步预先从校验盘中读取对应的老校验数据块到所述RAID的缓存中;所述读写控制单元还用于,在执行实际写入之前,先将计算出的新数据块及新校验数据块写入所述RAID缓存中,在完成预设数量或所有数据块的缓存写入后,再批量将所有缓存写入的数据块写入对应的数据盘和校验盘。
本发明提供的RAID阵列包含独立的校验盘和多个数据盘,独立的校验盘专门用于存储校验数据,数据盘和校验盘设置相同的数据块尺寸,以磁盘为单位顺序为RAID进行阵列存储空间的编址,从低地址到高地址顺序写入外部数据,以条带方式计算校验数据。通过本发明可避免在阵列中有磁盘损坏的情况下,大量音视频文件的关键帧的丢失,减少回放时频繁出现花屏或跳帧的问题。
附图说明
图1为本发明实施例提供的RAID阵列结构及数据写入方式示意图;
图2为本发明实施例提供的RAID阵列编址方式的示意图;
图3为本发明实施例提供的RAID阵列的功能模块结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下举实施例并参照附图,对本发明进一步详细说明。
由于RAID5在所有阵列磁盘上交叉的存储数据及校验信息,因此,当RAID5中两块以上磁盘损坏后,极端情况下,可能会造成所有视频数据的关键帧部分或全部丢失,导致在对正常盘上的音视频数据进行回放时,出现频繁花屏或跳帧的现象。
本发明提出一种新的独立磁盘冗余阵列RAID(以下简称RAID或阵列)及其实现方法,请参考图1,图1为本发明一实施例提供的阵列结构及数据写入方式示意图,本发明提供的RAID中包含独立的校验盘和多个数据盘,独立的校验盘专门用于存储校验数据,不存储除校验数据之外的其它数据,数据盘和校验盘被划分为若干相同大小的数据块,数据盘和校验盘相同位置和大小的数据块组成所述RAID的条带,该方法包括:
步骤101:以磁盘为单位顺序为所述RAID进行阵列存储空间的编址;
图2示例了本发明一实施例提供的由3个1T字节大小的数据盘和1个1T字节大小的校验盘组成的阵列。数据盘及校验盘都以数据块为基本读写单位,单个数据盘的存储空间在整个的阵列存储空间中以磁盘为单位进行整体连续编址,即在阵列地址空间中,单个磁盘空间为连续编址的阵列存储空间的一部分,由多个连续编址的数据盘存储空间构成整个连续编址的阵列存储空间。如图2所示,该实施例中,整个阵列的存储空间为3T字节,数据盘1在整个阵列的存储空间中的地址空间为0~1T,数据盘2在整个阵列的存储空间中的地址空间为1T~2T,数据盘3在阵列的存储空间中的地址空间为2T到3T,每个数据盘都被划分64K字节大小的数据块。校验盘为独立的用于存储校验数据磁盘,同样也按与数据盘相同大小的数据块进行划分,并顺序编址。在编址完成后,在阵列地址空间中,单个数据盘和校验盘中的数据块的地址都是连续的。
步骤102:以阵列存储空间中连续数据块的集合为外部设备分配阵列存储空间;
本发明中,为外部设备分配的阵列存储空间是由一个或多个数据盘上连续数据块的集合构成,该数据块集合在物理上可能分布在一个数据盘中,也可能分布在多个数据盘中。
仍以图2为例,若将整个阵列的存储空间中的0~1T分配给外部设备1,则为外部设备1分配的数据块集合就只分布在数据盘1中。若给外部设备n分配的阵列存储空间为100M字节,假设起始数据块为以2T-64K为起始地址的数据块,则为外部设备n分配的数据块的集合占据阵列存储空间中以2T-64K为起始地址的连续1600个数据块(100*1024K/64K=1600),则为外部设备n分配的阵列存储空间会跨越两个数据盘,分别分布在数据盘1和数据盘2上。
步骤103:以由低地址到高地址的顺序向为外部设备分配的阵列存储空间写入数据;
本发明在写入一路外部设备的数据时,是由低地址到高地址的顺序写入。当为外部设备分配的阵列存储空间跨越多个数据盘时,只有第一数据盘的存储空间被写满后,才会在阵列地址和第一数据盘连续的第二数据盘执行数据的进一步写入。
采用本发明提供的阵列数据存储模式,可使一个视频文件不再像RAID5一样将数据分散存储在所有数据盘上,因此,当有两个以上数据盘损坏后,不会造成RAID上大量甚至是所有视频数据文件的关键帧的部分或全部丢失,未损坏数据盘上的视频数据的关键帧能够连续完整的保存下来,播放时不会造成频繁花屏或跳帧的现象。
步骤104:在执行数据写入数据盘的同时将计算得到的校验数据写入对应条带的校验盘中;
本发明中,由所有数据盘及校验盘的相同位置和大小的数据块构成一个条带(Strip),以条带为单位计算校验数据。同一条带内,所有数据盘上相同位置和大小的数据块的校验数据存储于独立的校验盘的相同位置和大小的数据块存储空间中,在执行数据写入数据盘的同时将计算得到的校验数据写入对应条带的校验盘中。
图1为本发明一实施例提供的由4个磁盘组成的RAID阵列结构示意图,该实施例中,阵列中的所有磁盘,包括数据盘和校验盘都以相同的数据块尺寸进行划分,所有数据盘和校验盘的数据块尺寸都设置为相同的尺寸,例如64K字节,磁盘1~磁盘3为数据盘,磁盘4为独立的校验盘,由阵列各磁盘相同位置的数据块构成一个条带,每个阵列磁盘具有相同的条带个数,该实施例的RAID中条带个数为n。
假设一连续数据文件File1由连续的多个数据块D1、D2、D3、…、Dn、Dn+1、…、D2n、…、D3n构成,则该数据文件在该实施例提供的RAID阵列中存储的方式为:
首先在第一个数据盘中进行顺序写入,当第一个数据盘写满后,再在阵列地址和第一数据盘连续的第二数据盘进行数据的进一步写入,以此类推,以数据盘为单位依次将数据写入到所有的数据磁盘中。本发明提供的阵列是以数据盘为单位按编址顺序,顺序写入外部数据,而不是像RAID5一样以条带横向写入。
仍以图1为例,假设要将3T字节大小的File1文件数据写入该阵列当中,则写入的顺序是,先按磁盘1的数据块存储空间的地址顺序,写满磁盘1后,再往磁盘2上写,相同地,磁盘2也是按数据块存储空间的地址顺序,写满磁盘2后,再往磁盘3写。。
本发明实施例中,以条带方式生成校验数据,校验数据存放到独立的校验盘中。以图1为例,校验数据统一放到阵列的最后一个磁盘即磁盘4上,磁盘4专门用于存储校验数据,不会存放File1的文件数据。条带1的校验数据块P1=D1⊕Dn+1⊕D2n+1,其中⊕表示异或逻辑运算符。其它条带校验数据的写入依次类推。
为了保证在写入数据之前,每个条带中数据盘的数据与校验盘的数据具有一致性,需要在构建RAID时,对条带进行初始化,在阵列初始化阶段,需要计算每一条带的校验和,并将计算得到的校验和写入校验盘对应条带的数据存储空间中,从而实现每一条带中数据盘的数据与校验盘的数据保持一致。
由于本发明提供的RAID阵列是以以磁盘为单位顺序为所述RAID进行阵列存储空间的编址,在某个磁盘的数据块存储空间写入外部数据时,同一条带的其它磁盘数据块存储空间很可能不会写入数据,无法按照整条带写的方式计算校验数据。因此,本发明实施例中,采用读改写方式进行外部数据的写入。
以图1为例,如果向磁盘1的条带1的数据块D1的位置整块写入新数据块D1′,则需要先读出磁盘1的老数据块D1以及校验盘中对应条带中的老校验数据块P1,然后对所述老数据块D1、老校验数据块P1及新数据块D1′进行异或运算,得到新校验数据块P1′,即:
P1′=D1′⊕D1⊕P1
将所述新数据块D1′写入老数据块D1所在的数据块存储空间,覆盖之前老数据块D1,将新校验数据块P1′写入校验盘中同级同位置的老校验数据块P1所在的数据块存储空间中,覆盖之前的老校验数据块P1。
以图1为例,如果只是向一个条带中一个数据块的部分空间写入数据,即只是更新一个老数据块的部分内容,则需要在写入新数据之前,读取该数据块存储空间中的老数据块D1,并从校验盘中同一条带的对应数据块存储空间中读取老校验数据块P1。在计算新校验数据之前,用待写入的新数据覆盖老数据块D1中对应部分的老数据,得到新数据块D1′,即老数据块D1中,未更新的部分仍保持不变,替换掉需要更新的部分从而生成新的数据块D1′。然后对所述老数据块D1、老校验数据块P1及新数据块D1′进行异或运算,得到新校验数据块P1′。后续写入步骤同前述整块写入的方式。
根据本发明实施例提供的数据写入方式,在将外部数据写入对应磁盘数据块的同时,需要预先读出对应数据盘中数据块存储空间中的老数据以及对应条带中的老校验数据块,才能计算并写入新数据块,从输入输出I/O模式来说,是一种“两读两写”的模式,容易造成写入性能瓶颈。
本发明另一实施例中,根据视频监控等领域的数据写入特点,在前述提供的阵列结构及数据写入方法的基础上,提供了一种数据预读机制。由于本发明提供的阵列是以磁盘为单位分配阵列的存储空间,在单磁盘中采用按数据块存储空间地址顺序写入的机制,且监控录像也是一种在存储空间中顺序写入的模式,因此在写入当前数据的同时,可以较准确的预估到下一次写入数据的空间位置,从而可以一次性读取尽可能多(例如预设个数的数据块)的磁盘数据到RAID阵列的磁盘缓存中,从而有效减少后续数据写入时,从阵列磁盘中读取数据的次数。
例如,在多数据块顺序写入时,从预写入数据盘的写入位置开始,预先按数据块存储空间地址顺序,从该数据盘读取预设个数(例如100个)的老数据块到所述RAID的缓存中,并同步预先从校验盘中读取对应的老校验数据块到所述RAID的缓存中;在执行写入操作时,若待写入的数据块存储空间中的老数据块已被预读到所述RAID的缓存中,则直接从所述RAID的缓存中获取待写入的数据块存储空间的老数据块及老校验数据块。
如果写入数据的逻辑存储空间跨越两个磁盘,则在外部业务写入第一磁盘结束位置附近的数据时,将第二磁盘起始位置的一批数据块存储空间的数据预读到内存缓存中。在新数据写入地址超过或即将超过内存缓存中数据块结束地址时,再从新数据写入起始地址开始,读取并缓存当前数据盘和校验盘的下一批数据块。
另外,在写入数据盘数据和校验盘数据时,还可以采用先缓存写后批量写入磁盘的机制。例如,在多数据块顺序写入且待写入的数据块存储空间中的老数据块已被预读到RAID阵列的缓存中时,在执行实际写入之前,先将计算出的新数据块及新校验数据块写入所述RAID缓存中,在完成预设数量或所有数据块的缓存写入后,再批量将所有缓存写入的数据块实际写入对应的数据盘和校验盘。
通过上述预读缓存机制及批量写入机制,可以很大程度上减少本发明提供的磁盘阵列的数据写入性能。
建立RAID的目的之一是通过数据冗余的方式防止磁盘损坏造成数据丢失,由于本发明提供的RAID阵列按照条带方式,保持了条带校验数据和存储的外部数据的一致性,因此,具备单磁盘损坏情况下数据保护能力。
当阵列中任意一个单个磁盘损坏时,若当前还未插入新磁盘,则阵列接收到上层应用对损坏磁盘的数据读请求时,阵列通过读取其它未损坏数据盘和校验盘上相同位置即同一条带的数据块,并执行异或操作来恢复损坏磁盘上的数据块内容。当阵列中插入新的磁盘替换已损坏的磁盘时,阵列可采用上述相同的方式,对损坏磁盘的数据进行数据重建,将损坏磁盘在损坏之前的原有数据恢复到新插入的磁盘中,从而保证损坏磁盘的数据不丢失。
当本发明提供的RAID用于存储音视频文件时,本发明提供的RAID阵列还具有另一特点,即当阵列中多个磁盘损坏时,支持对阵列中正常数据盘上的音视频文件的平滑回放。其原因在于本发明提供的阵列的存储空间是以磁盘为单顺序为阵列进行存储空间的编址,以数据块(chunk)为基本读写单位顺序写入,正常盘上的某个或某些音视频文件的关键帧不受损坏磁盘的任何影响。
然而,对阵列中正常盘上的音视频文件进行回放时,首先需要能够正常读取到阵列中存储资源的关键索引数据,为了防止阵列的关键索引数据的损坏或丢失,可以采用数据冗余备份策略,即在RAID阵列中多个磁盘的专用冗余备份区域或使用其它存储设备的冗余备份区域备份RAID阵列的关键索引数据,当RAID阵列的关键索引数据损坏时,通过从冗余备份区域中读取关键索引数据来读取和/或恢复已损坏磁盘上的数据块。
本发明提供的实施例中,为了提高阵列的并发写入性能,可以为每个外部设备分配独立的存储空间,各路外部设备的数据和对应的索引数据按照一定格式写入自己的存储空间。由于为每个外部设备分配的存储空间基本上都位于单个的磁盘上,因此每个磁盘对应的并发写入的外部设备数量相比于RAID5会大大减少。
在视频监控领域,监控摄像机会24小时不断将音视频数据写入阵列中,对数据写入性能要求较高。一个阵列往往需要支持多路摄像机的录像数据存储。在该场景下,可为每路摄像机划分独立的存储空间,每个摄像机的存储空间大部分位于一个物理数据磁盘,各路摄像机按照一定的存储格式,将录像与索引数据写入各自的存储空间中。本发明一具体实施例中,由8个磁盘组成本发明提供的RAID阵列,其中7个盘为数据盘,总共承载128路摄像数据,假设为每个摄像机的存储空间相同,则每个数据盘上最多分配19个摄像机的数据存储空间,每个数据盘的IO写入的随机性能大约为RAID5的1/7,从而有效提高了阵列的数据写入性能。
基于同一发明思想,本发明还提供了一种独立磁盘冗余阵列RAID,图3为本发明提供的RAID的功能模块结构示意图,非易失性存储器用于存储实现本发明的程序模块,中央处理单元从非易失性存储器中读取实现本发明的程序模块到随机读写存储器中并运行,运行后形成三个逻辑功能模块,分别为空间管理单元301、读写控制单元302,校验计算单元303,中央处理单元同时控制下挂的物理磁盘组进行与随机读写存储器及输入输出接口之间的交互。
空间管理单元301,用于将RAID的多个数据盘和独立的校验盘划分为若干相同大小的数据块,数据盘和校验盘相同位置和大小的数据块组成所述RAID的条带;以磁盘为单位顺序为所述RAID进行阵列存储空间的编址;以及用于以阵列存储空间中连续数据块的集合为外部设备分配阵列存储空间
读写控制单元302,用于根据数据的存储规则向所述RAID写入数据和从所述RAID读取数据;在向为所述外部设备分配的阵列存储空间写入数据时,从低地址到高地址顺序写入;
校验计算单元303,用于在执行数据写入数据盘的同时将计算得到的校验数据写入对应条带的校验盘中。
在为所述外部设备分配的阵列存储空间跨多个数据盘,且位于第一数据盘的存储空间被写满时,读写控制单元302还用于在阵列地址和第一数据盘连续的第二数据盘执行数据的进一步写入。
读写控制单元302还用于对所述RAID进行初始化,在执行数据写入之前,由读写控制单元302先读取该数据块存储空间中的老数据块,并从校验盘中相同位置和大小数据块存储空间中读取老校验数据块;校验计算单元303对所述老数据块、老校验数据块及新数据块进行异或运算,得到新校验数据块;然后,读写控制单元302再将新数据块写入该数据块存储空间,覆盖之前老数据块,将新校验数据块写入独立的校验盘中相同位置和大小的数据块存储空间中,覆盖之前的老校验数据块。
在多数据块顺序写入时,读写控制单元302还用于从预写入数据盘的写入位置开始,预先按数据块存储空间地址顺序,从该数据盘读取预设个数的老数据块到所述RAID的缓存中,并同步预先从校验盘中读取对应的老校验数据块到RAID的缓存中;在执行实际写入之前,读写控制单元302先将计算出的新数据块及新校验数据块写入RAID缓存中,在完成预设数量或所有数据块的缓存写入后,再批量将所有缓存写入的数据块写入对应的数据盘和校验盘。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (8)

1.一种独立磁盘冗余阵列RAID实现方法,其特征在于,所述RAID中包括多个数据盘和独立的校验盘,所述数据盘和校验盘被划分为若干相同大小的数据块,所述数据盘和校验盘相同位置和大小的数据块组成所述RAID的条带,该方法包括:
以磁盘为单位顺序为所述RAID进行阵列存储空间的编址;
以阵列存储空间中连续数据块的集合为外部设备分配阵列存储空间;
在向为所述外部设备分配的阵列存储空间写入数据时,从低地址到高地址顺序写入;
在执行数据写入数据盘的同时将计算得到的校验数据写入对应条带的校验盘中。
2.根据权利要求1所述的方法,其特征在于,
当为所述外部设备分配的阵列存储空间跨多个数据盘时,若位于第一数据盘的存储空间被写满,则在阵列地址和第一数据盘连续的第二数据盘执行数据的进一步写入。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括,
对所述RAID进行初始化,初始化完毕后,通过以下方式对任一数据盘中的任一数据块存储空间进行整块写入:
在写入之前,读取该数据块存储空间中的老数据块,并从校验盘中相同位置和大小数据块存储空间中读取老校验数据块;
对所述老数据块、老校验数据块及新数据块进行异或运算,得到新校验数据块;
将所述新数据块写入该数据块存储空间,覆盖之前老数据块,将所述新校验数据块写入所述独立的校验盘中相同位置和大小的数据块存储空间中,覆盖之前的老校验数据块。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在多数据块顺序写入时,从预写入数据盘的写入位置开始,预先按数据块存储空间地址顺序,从该数据盘读取预设个数的老数据块到所述RAID的缓存中,并同步预先从校验盘中读取对应的老校验数据块到所述RAID的缓存中;
在执行实际写入之前,先将计算出的新数据块及新校验数据块写入所述RAID缓存中,在完成预设数量或所有数据块的缓存写入后,再批量将所有缓存写入的数据块写入对应的数据盘和校验盘。
5.一种独立磁盘冗余阵列RAID,其特征在于,该RAID包括:
空间管理单元,用于将该所述RAID的多个数据盘和独立的校验盘划分为若干相同大小的数据块,所述数据盘和校验盘相同位置和大小的数据块组成所述RAID的条带;以磁盘为单位顺序为所述RAID进行阵列存储空间的编址;以及用于以阵列存储空间中连续数据块的集合为外部设备分配阵列存储空间
读写控制单元,用于向所述RAID写入数据和从所述RAID读取数据;在向为所述外部设备分配的阵列存储空间写入数据时,从低地址到高地址顺序写入;
校验计算单元,用于在执行数据写入数据盘的同时将计算得到的校验数据写入对应条带的校验盘中。
6.根据权利要求5所述的RAID,其特征在于,
所述读写控制单元还用于,在为所述外部设备分配的阵列存储空间跨多个数据盘,且位于第一数据盘的存储空间被写满时,在阵列地址和第一数据盘连续的第二数据盘执行数据的进一步写入。
7.根据权利要求5所述的RAID,其特征在于,
所述读写控制单元还用于对所述RAID进行初始化:
所述读写控制单元在执行数据写入之前,先读取该数据块存储空间中的老数据块,并从校验盘中相同位置和大小数据块存储空间中读取老校验数据块;
所述校验计算单元对所述老数据块、老校验数据块及新数据块进行异或运算,得到新校验数据块;
所述读写控制单元将所述新数据块写入该数据块存储空间,覆盖之前老数据块,将所述新校验数据块写入所述独立的校验盘中相同位置和大小的数据块存储空间中,覆盖之前的老校验数据块。
8.根据权利要求5所述的RAID,其特征在于,
所述读写控制单元还用于,在多数据块顺序写入时,从预写入数据盘的写入位置开始,预先按数据块存储空间地址顺序,从该数据盘读取预设个数的老数据块到所述RAID的缓存中,并同步预先从校验盘中读取对应的老校验数据块到所述RAID的缓存中;
所述读写控制单元还用于,在执行实际写入之前,先将计算出的新数据块及新校验数据块写入所述RAID缓存中,在完成预设数量或所有数据块的缓存写入后,再批量将所有缓存写入的数据块写入对应的数据盘和校验盘。
CN201410223798.6A 2014-05-23 2014-05-23 一种独立磁盘冗余阵列及实现方法 Pending CN103970487A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410223798.6A CN103970487A (zh) 2014-05-23 2014-05-23 一种独立磁盘冗余阵列及实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410223798.6A CN103970487A (zh) 2014-05-23 2014-05-23 一种独立磁盘冗余阵列及实现方法

Publications (1)

Publication Number Publication Date
CN103970487A true CN103970487A (zh) 2014-08-06

Family

ID=51240046

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410223798.6A Pending CN103970487A (zh) 2014-05-23 2014-05-23 一种独立磁盘冗余阵列及实现方法

Country Status (1)

Country Link
CN (1) CN103970487A (zh)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156276A (zh) * 2014-08-14 2014-11-19 浪潮电子信息产业股份有限公司 一种防两块磁盘损坏的raid方法
CN105138288A (zh) * 2015-08-19 2015-12-09 浪潮(北京)电子信息产业有限公司 实现raid5功能的存储方法、装置及主控芯片系统
CN105487825A (zh) * 2015-12-08 2016-04-13 浙江宇视科技有限公司 Raid阵列重建方法及装置
CN106339179A (zh) * 2015-07-06 2017-01-18 上海宝存信息科技有限公司 主机装置、存取系统、以及存取方法
CN107197324A (zh) * 2017-05-15 2017-09-22 郑州云海信息技术有限公司 一种分布式文件系统的视频容错方法及装置
CN107229418A (zh) * 2017-05-02 2017-10-03 浙江宇视科技有限公司 一种录像文件存储方法及装置
CN108519926A (zh) * 2018-03-31 2018-09-11 北京联想核芯科技有限公司 一种自适应的raid分组计算方法和装置
CN108614670A (zh) * 2016-12-13 2018-10-02 杭州海康威视数字技术股份有限公司 一种信息处理方法及装置
CN108984113A (zh) * 2018-06-07 2018-12-11 苏州互盟信息存储技术有限公司 一种独立介质的冗余阵列
CN109213430A (zh) * 2017-06-30 2019-01-15 伊姆西Ip控股有限责任公司 存储管理方法和系统
CN110309012A (zh) * 2018-03-27 2019-10-08 杭州海康威视数字技术股份有限公司 一种数据处理方法及其装置
CN110515761A (zh) * 2018-05-22 2019-11-29 杭州海康威视数字技术股份有限公司 一种数据获取方法及装置
CN110515542A (zh) * 2019-07-30 2019-11-29 华为技术有限公司 数据存储方法、装置、计算设备、存储系统及存储介质
CN110597453A (zh) * 2018-06-13 2019-12-20 杭州海康威视系统技术有限公司 一种云存储系统中的视频数据存储方法及装置
CN111857549A (zh) * 2019-04-29 2020-10-30 伊姆西Ip控股有限责任公司 用于管理数据的方法、设备和计算机程序产品
CN113535466A (zh) * 2020-04-22 2021-10-22 苏州互盟信息存储技术有限公司 一种多结点数据的冗余恢复方法
CN113535071A (zh) * 2020-04-22 2021-10-22 苏州互盟信息存储技术有限公司 一种介质记录方法及基于该介质记录方法的冗余纠错方法
CN113687978A (zh) * 2021-09-07 2021-11-23 天津津航计算技术研究所 用于存储阵列控制器的数据处理方法
CN114253478A (zh) * 2021-12-17 2022-03-29 山东云海国创云计算装备产业创新中心有限公司 一种计算raid校验盘位置的方法和装置
WO2024119762A1 (zh) * 2022-12-06 2024-06-13 苏州元脑智能科技有限公司 一种raid卡的构建方法、系统及相关装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101493754A (zh) * 2009-03-13 2009-07-29 成都市华为赛门铁克科技有限公司 存储系统及其控制方法
CN101976178A (zh) * 2010-08-19 2011-02-16 北京同有飞骥科技有限公司 一种垂直排布集中校验的节能型磁盘阵列的构建方法
US20120023305A1 (en) * 2010-04-30 2012-01-26 Hitachi, Ltd. Computer system and storage control method of the same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101493754A (zh) * 2009-03-13 2009-07-29 成都市华为赛门铁克科技有限公司 存储系统及其控制方法
US20120023305A1 (en) * 2010-04-30 2012-01-26 Hitachi, Ltd. Computer system and storage control method of the same
CN101976178A (zh) * 2010-08-19 2011-02-16 北京同有飞骥科技有限公司 一种垂直排布集中校验的节能型磁盘阵列的构建方法

Cited By (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156276B (zh) * 2014-08-14 2017-06-09 浪潮电子信息产业股份有限公司 一种防两块磁盘损坏的raid方法
CN104156276A (zh) * 2014-08-14 2014-11-19 浪潮电子信息产业股份有限公司 一种防两块磁盘损坏的raid方法
CN106339179A (zh) * 2015-07-06 2017-01-18 上海宝存信息科技有限公司 主机装置、存取系统、以及存取方法
CN105138288A (zh) * 2015-08-19 2015-12-09 浪潮(北京)电子信息产业有限公司 实现raid5功能的存储方法、装置及主控芯片系统
CN105487825B (zh) * 2015-12-08 2019-04-30 浙江宇视科技有限公司 Raid阵列重建方法及装置
CN105487825A (zh) * 2015-12-08 2016-04-13 浙江宇视科技有限公司 Raid阵列重建方法及装置
CN108614670B (zh) * 2016-12-13 2020-07-03 杭州海康威视数字技术股份有限公司 一种信息处理方法及装置
CN108614670A (zh) * 2016-12-13 2018-10-02 杭州海康威视数字技术股份有限公司 一种信息处理方法及装置
CN107229418A (zh) * 2017-05-02 2017-10-03 浙江宇视科技有限公司 一种录像文件存储方法及装置
CN107229418B (zh) * 2017-05-02 2020-07-28 浙江宇视科技有限公司 一种录像文件存储方法及装置
CN107197324B (zh) * 2017-05-15 2020-11-20 苏州浪潮智能科技有限公司 一种分布式文件系统的视频容错方法及装置
CN107197324A (zh) * 2017-05-15 2017-09-22 郑州云海信息技术有限公司 一种分布式文件系统的视频容错方法及装置
CN109213430A (zh) * 2017-06-30 2019-01-15 伊姆西Ip控股有限责任公司 存储管理方法和系统
CN109213430B (zh) * 2017-06-30 2021-09-10 伊姆西Ip控股有限责任公司 存储管理方法和系统
CN110309012A (zh) * 2018-03-27 2019-10-08 杭州海康威视数字技术股份有限公司 一种数据处理方法及其装置
US11841762B2 (en) 2018-03-27 2023-12-12 Hangzhou Hikvision Digital Technology Co., Ltd. Data processing
CN110309012B (zh) * 2018-03-27 2021-01-26 杭州海康威视数字技术股份有限公司 一种数据处理方法及其装置
CN108519926A (zh) * 2018-03-31 2018-09-11 北京联想核芯科技有限公司 一种自适应的raid分组计算方法和装置
CN108519926B (zh) * 2018-03-31 2020-12-29 深圳忆联信息系统有限公司 一种自适应的raid分组计算方法和装置
CN110515761A (zh) * 2018-05-22 2019-11-29 杭州海康威视数字技术股份有限公司 一种数据获取方法及装置
CN110515761B (zh) * 2018-05-22 2022-06-03 杭州海康威视数字技术股份有限公司 一种数据获取方法及装置
US11269713B2 (en) 2018-05-22 2022-03-08 Hangzhou Hikvision Digital Technology Co., Ltd. Data obtaining method and apparatus
CN108984113A (zh) * 2018-06-07 2018-12-11 苏州互盟信息存储技术有限公司 一种独立介质的冗余阵列
US11316925B2 (en) 2018-06-13 2022-04-26 Hangzhou Hikvision System Technology Co., Ltd. Video data storage method and device in cloud storage system
CN110597453A (zh) * 2018-06-13 2019-12-20 杭州海康威视系统技术有限公司 一种云存储系统中的视频数据存储方法及装置
CN111857549A (zh) * 2019-04-29 2020-10-30 伊姆西Ip控股有限责任公司 用于管理数据的方法、设备和计算机程序产品
US11809738B2 (en) 2019-07-30 2023-11-07 Huawei Technologies Co., Ltd. Data storage method and apparatus, computing device, storage system, and storage medium
CN110515542A (zh) * 2019-07-30 2019-11-29 华为技术有限公司 数据存储方法、装置、计算设备、存储系统及存储介质
CN113535071A (zh) * 2020-04-22 2021-10-22 苏州互盟信息存储技术有限公司 一种介质记录方法及基于该介质记录方法的冗余纠错方法
CN113535466A (zh) * 2020-04-22 2021-10-22 苏州互盟信息存储技术有限公司 一种多结点数据的冗余恢复方法
CN113687978A (zh) * 2021-09-07 2021-11-23 天津津航计算技术研究所 用于存储阵列控制器的数据处理方法
CN113687978B (zh) * 2021-09-07 2024-05-28 天津津航计算技术研究所 用于存储阵列控制器的数据处理方法
CN114253478A (zh) * 2021-12-17 2022-03-29 山东云海国创云计算装备产业创新中心有限公司 一种计算raid校验盘位置的方法和装置
CN114253478B (zh) * 2021-12-17 2024-02-09 山东云海国创云计算装备产业创新中心有限公司 一种计算raid校验盘位置的方法和装置
WO2024119762A1 (zh) * 2022-12-06 2024-06-13 苏州元脑智能科技有限公司 一种raid卡的构建方法、系统及相关装置

Similar Documents

Publication Publication Date Title
CN103970487A (zh) 一种独立磁盘冗余阵列及实现方法
US20180314627A1 (en) Systems and Methods for Referencing Data on a Storage Medium
EP3519969B1 (en) Physical media aware spacially coupled journaling and replay
US10445231B2 (en) Method and system for storage device metadata management and processing
US8977894B2 (en) Operating a data storage system
US10127166B2 (en) Data storage controller with multiple pipelines
US9378093B2 (en) Controlling data storage in an array of storage devices
US9798620B2 (en) Systems and methods for non-blocking solid-state memory
CN101727299B (zh) 连续数据存储中面向raid5的写操作优化设计方法
US9836369B2 (en) Storage system to recover and rewrite overwritten data
US20130290613A1 (en) Storage system and storage apparatus
US20100306466A1 (en) Method for improving disk availability and disk array controller
US20130246892A1 (en) Architecture for storage of data on nand flash memory
US8341349B2 (en) System and method for loose coupling between raid volumes and drive groups
CN102799533B (zh) 一种磁盘损坏扇区屏蔽方法及装置
CN104035830A (zh) 一种数据恢复方法和装置
US20130103902A1 (en) Method and apparatus for implementing protection of redundant array of independent disks in file system
CN110597654B (zh) 用于超快的具有奇偶校验的纠错码的系统和方法
US20140164695A1 (en) Method and system for storing and rebuilding data
CN104166601A (zh) 一种存储数据的备份方法和装置
US9772782B2 (en) Non-volatile complement data cache
US11093339B2 (en) Storage utilizing a distributed cache chain and a checkpoint drive in response to a data drive corruption
US20060259812A1 (en) Data protection method
CN101364163B (zh) 一种逻辑卷创建系统及其方法
US20130086300A1 (en) Storage caching acceleration through usage of r5 protected fast tier

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20140806

RJ01 Rejection of invention patent application after publication