CN105487825B - Raid阵列重建方法及装置 - Google Patents
Raid阵列重建方法及装置 Download PDFInfo
- Publication number
- CN105487825B CN105487825B CN201510901577.4A CN201510901577A CN105487825B CN 105487825 B CN105487825 B CN 105487825B CN 201510901577 A CN201510901577 A CN 201510901577A CN 105487825 B CN105487825 B CN 105487825B
- Authority
- CN
- China
- Prior art keywords
- storage resource
- resource section
- reconstruction
- rebuild
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供RAID阵列重建方法及装置,该方法包括:当RAID阵列启动重建盘的重建时,获取每个分区的阵列起始地址和分区大小,分区为存储资源区间或者非存储资源区间,其中,每个存储资源区间由一个外部视频源写入数据;如果在重建该重建盘时,存储资源区间有视频数据写入,则根据存储资源区间对应的外部视频源第一次写入视频数据的写入位置,确定存储资源区间的重建起始位置;按照重建盘的从低地址到高地址的方向选择存储资源区间,使用视频数据和重建流从两个方向对重建盘的每个存储资源区间逐个进行重建。应用本发明在重建RAID阵列时,可实现外部视频数据和重建流的双向重建,大大提高了RAID重建速度。
Description
技术领域
本发明涉及视频监控存储技术领域,尤其涉及一种RAID(Redundant Arrays ofIndependent Disks,独立磁盘冗余阵列)阵列重建方法及装置。
背景技术
RAID5技术是一种块交叉分布式奇偶校验磁盘阵列,以条带为单位进行数据的分割与重构,使用奇偶校验信息来保存冗余信息。RAID5将数据和相对应的奇偶校验信息分别存储于不同的磁盘中,其中任意N-1块磁盘上都存储完整的数据,其中N为RAID5阵列的磁盘数,因此RAID5能够容忍阵列中任意一块磁盘损坏而不丢失数据。在RAID5阵列中某块磁盘损坏后,如果磁盘阵列中配置热备盘,可将热备盘作为重建盘加入RAID5阵列,然后对重建盘逐个条带进行重建。在视频监控存储技术领域,RAID5在重建的过程中,还有大量的视频数据被写入磁盘阵列,或者磁盘阵列中的视频数据被执行回放等读取操作。如何在不影响视频数据写入、读取等正常存储业务的前提下,提高RAID5阵列重建速度,是视频监控存储技术领域的一个问题。
现有技术中,可采用多个内核线程分别进行正常磁盘数据读取、异或计算、计算后的磁盘数据写入等操作,即存储设备使用更多的CPU(Central Processing Unit,中央处理器)资源、磁盘IO(Input/Output,输入/输出)处理资源等对重建盘进行重建,从而提高重建速度。现有技术需要占用存储设备较多的CPU资源、磁盘IO处理资源进行RAID5阵列重建,可影响到视频监控存储系统中外部视频数据写入等正常存储业务的资源分配,导致外部视频数据写入丢失等问题。
发明内容
本发明提供一种RAID阵列重建方法及装置,以解决现有技术中在RAID5阵列重建过程中,影响正常存储业务的资源分配,导致外部视频数据写入丢失等问题。
根据本发明实施例的第一方面,提供一种RAID阵列重建方法,所述方法应用于存储设备上,所述存储设备上包括至少一个RAID阵列,所述RAID阵列包括多个分区,所述方法包括:
当所述RAID阵列启动重建盘的重建时,获取每个分区的阵列起始地址和分区大小,所述分区为存储资源区间或者非存储资源区间,其中,每个存储资源区间由一个外部视频源写入数据;
如果在重建所述重建盘时,所述存储资源区间有视频数据写入,则根据所述存储资源区间对应的外部视频源第一次写入视频数据的写入位置,确定所述存储资源区间的重建起始位置;
按照所述重建盘的从低地址到高地址的方向选择存储资源区间,使用所述视频数据和重建流从两个方向对所述重建盘的每个存储资源区间逐个进行重建。
根据本发明实施例的第二方面,提供一种RAID阵列重建装置,所述装置应用于存储设备上,所述存储设备上包括至少一个RAID阵列,所述RAID阵列包括多个分区,所述装置包括:
获取单元,用于所述RAID阵列启动重建盘的重建时,获取每个分区的阵列起始地址和分区大小,所述分区为存储资源区间或者非存储资源区间,其中,每个存储资源区间由一个外部视频源写入数据;
确定单元,用于如果在所述重建盘重建时,所述存储资源区间有视频数据写入,则根据所述存储资源区间对应的外部视频源第一次写入视频数据的写入位置,确定所述存储资源区间的重建起始位置;
重建单元,用于按照所述重建盘的从低地址到高地址的方向选择存储资源区间,使用所述视频数据和重建流从两个方向对所述重建盘的每个存储资源区间逐个进行重建。
应用本发明实施例,可将存储设备中的RAID5阵列划分为多个存储资源区间和非存储资源区间,这样在重建RAID5阵列的重建盘时,如果存储资源区间有视频数据写入,则可根据存储资源区间对应的外部视频源的当前写入位置,确定存储资源区间的重建起始位置;按照重建盘的从低地址到高地址的方向选择存储资源区间,使用视频数据和重建流从两个方向对重建盘的每个存储资源区间逐个进行重建。本发明解决了现有技术中在RAID5阵列重建过程中,影响正常存储业务的资源分配,导致外部视频数据写入丢失等问题,而且本发明的外部视频数据和重建流的双向重建方案,大大提高了RAID阵列的重建速度。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1为本发明一种实施方式基于多个存储资源区间的阵列区间模型图;
图2为本发明一种实施方式中RAID阵列重建方法流程图;
图3为本发明一种实施方式中单个存储资源区间的重建模式示意图;
图4为本发明一种实施方式中RAID阵列重建装置所在存储设备的一种硬件结构图;
图5为本发明一种实施方式中RAID阵列重建装置框图。
具体实施方式
为便于对本发明的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明保护范围的限定。
本发明提供的RAID阵列重建技术方案应用于RAID5阵列的重建,而且主要应用于视频监控领域的存储系统中。参见图1,为本发明一种实施方式基于多个存储资源区间的阵列区间模型图:本发明技术方案中,一个RAID5磁盘阵列的存储空间被划分为非存储资源区间和多个存储资源区间,每个存储资源区间都被分配给某个外部视频源,外部视频源按照一定码流大小向存储资源区间写入视频数据,视频数据写入方向从阵列空间来看,是从阵列低地址到高地址的方向;而非存储资源区间一般是存储设备为了某些异常情况预留的存储空间,例如可用来存储某些备份的视频数据等。
参见图2,为本发明一种实施方式中RAID阵列重建方法流程图:
步骤201:存储设备的内核态RAID层通过Netlink机制向用户态的业务层发送配置获取命令,配置获取命令中携带有阵列标识信息。
当内核态RAID层确定需要进行重建时,可将RAID5阵列由正常模式进入降级模式,然后向用户态的业务层发送配置获取命令,该配置获取命令用于向用户态的业务层请求获取RAID5阵列的分区信息。
由于存储设备中可能设置了多个RAID阵列,因此配置获取命令中可携带阵列标识信息,用以标识要重建的阵列。。
步骤202:用户态的业务层根据配置获取命令,获取阵列的每个分区的分区信息。
其中,每个分区的分区信息包括分区个数、每个分区的阵列起始地址和分区大小,以及每个存储资源区间的索引区所对应的阵列起始地址和索引区大小。
在一种可能的实现方式中,用户态的业务层在接收到配置获取命令后,即可根据阵列标识信息,查询数据库,获得阵列的分区个数,其中,该数据库可为用户态的业务层为每个阵列建立的,用来存储每个阵列的相关信息;然后使用dmsetup命令获取每个分区的阵列起始地址和分区大小;根据存储设备的数据存储格式,计算得到每个存储资源区间的索引区所对应的阵列起始地址、索引区大小。
步骤203:用户态的业务层向内核态RAID层发送IO控制命令,其中,IO控制命令中包括阵列的每个分区的分区信息。
步骤204:内核态RAID层构建重建总体数据结构,并且对每个存储资源区间构建资源区间重建数据结构。
其中,重建总体数据结构包括待重建的存储资源区间个数,已完成重建的存储资源区间个数,以及非存储资源区间在重建盘上的空间区段。具体的,待重建的存储资源区间个数可由内核态RAID层根据用户态的业务层发送的IO控制命令中的分区信息得到;已完成重建的存储资源区间个数的初始值为0,每重建完一个存储资源区间,已完成重建的存储资源区间个数的值加1,直到已完成重建的存储资源区间个数与待重建的存储资源区间个数的初始值相等,则表示重建盘完成重建;非存储资源区间在重建盘上的空间区段的值由内核态RAID层根据用户态的业务层发送的IO控制命令中的分区信息得到。
内核态RAID层还可对每个存储资源区间构建资源区间重建数据结构,其中,资源区间重建数据结构包括存储资源区间在重建盘上的起始扇区号和空间大小,存储资源区间的索引区在重建盘上的起始扇区号和空间大小,存储资源区间每次重建的当前起始位置,存储资源区间每次重建数据量,存储资源区间已重建数据大小,以及存储资源区间是否已完成重建。具体的,存储资源区间在重建盘上的起始扇区号和空间大小,可由内核态RAID层根据每个存储资源区间的阵列起始地址和分区大小,以及阵列配置,如条带大小等信息计算得到;存储资源区间的索引区在重建盘上的起始扇区号和空间大小,也可由内核态RAID层根据每个存储资源区间的索引区的阵列起始地址和分区大小,以及阵列的配置,如条带大小等信息计算得到;存储资源区间每次重建的当前起始位置,该信息的初始值为存储资源区间在重建盘上的起始扇区号,每次重建的起始位置为外部视频源的第一次写入视频数据的写入扇区号-存储资源区间单次重建数据量对应扇区数目*已重建次数;存储资源区间每次重建数据量由阵列配置得到;存储资源区间已重建数据大小,该信息的初始值为0,后续值为重建次数*每次重建数据量;存储资源区间是否已完成重建,初始值为0,当完成重建是值为1。
步骤205:内核态RAID层重建非存储资源区间。
由于非存储资源区间没有外部视频数据写入,因此可先重建非存储资源区间的数据。
步骤206:内核态RAID层根据存储资源区间对应的外部视频源第一次写入视频数据的写入位置,确定存储资源区间的重建起始位置。
在一种可能的实现方式中,如果在重建所述重建盘时,在存储资源区间没有开始重建之前,外部视频源已经开始写入视频数据,则存储资源区间开始重建时的重建起始位置根据外部视频源第一次写入视频数据的位置确定,即存储资源区间的重建起始位置=第一次写入视频数据的扇区号-每次重建数据量对应的扇区数目。如果视频数据写入扇区号为该存储资源区间数据区的起始扇区号,则重建起始位置可为存储资源区间的最高地址对应的扇区号。
在另一种可能的实现方式中,如果在重建所述重建盘时,已经开始重建的存储资源区间一直没有视频数据写入,则所述存储资源区间的重建起始位置为所述存储资源区间在所述重建盘上的起始扇区号。
步骤207:内核态RAID层按照重建盘的从低地址到高地址的方向选择存储资源区间。
由于存储资源区间有多个,可从重建盘的低地址向高地址的方向选择存储资源区间进行重建。如果在存储资源区间没有开始重建时,外部视频源已经开始向该存储资源区间写入视频数据,则存储资源区间可根据外部视频源写入的数据对写入部分进行重建,当存储资源区间开始使用重建流重建时,重建起始位置为外部视频源第一次写入视频数据的扇区号减去每次重建数据量对应的扇区数目。
步骤208:内核态RAID层按照每次重建数据量,进行数据重建。
参见图3,为本发明一种实施方式中单个存储资源区间的重建模式示意图:存储资源区间可使用所述视频数据和重建流从两个方向对所述重建盘的每个存储资源区间逐个进行重建,即外部视频源按照从低地址到高地址的方向写入新的视频数据,进行重建盘的重建;而存储资源区间每次的重建区段是按照高地址到低地址的方向选择的,选择重建区段后每次重建是按照从低地址到高地址的方向重建磁盘。由此可实现视频数据和重建流从两个方向对所述重建盘的每个存储资源区间逐个进行重建。
步骤209:在完成存储资源区间的一次重建数据量的重建后,内核态RAID层累加存储资源区间的已重建数据大小并记录在资源区间重建数据结构中。
由于重建盘中需要重建的数据量非常大,因此需要分多次进行重建盘的重建,每次重建完成后,累加存储资源区间的已重建数据大小并记录在资源区间重建数据结构中。
步骤210:内核态RAID层将当前起始位置向低地址方向偏移本次重建完成的数据量。
步骤211:内核态RAID层判断存储资源区间是否已完成重建。
如果重建起始位置到达存储资源区间在重建盘上的最低地址,则跳到存储资源区间在重建盘上的最高地址,继续重建;如果存储资源区间的待重建区域已写入新数据,或者存储资源区间已重建数据大小与存储资源区间在重建盘上的空间大小相同,则说明存储资源区间已完成重建,否则说明没有完成该存储资源区间的重建。
如果是,则执行步骤212,如果否,则执行步骤208。
步骤212:内核态RAID层将存储资源区间标记为完成重建,并且累加已完成重建的存储资源区间数。
当一个存储资源区间完成重建后,可累加重建总体数据结构中已完成重建的存储资源区间个数。
步骤213:内核态RAID层判断是否所有存储资源区间都已完成重建。
根据重建总体数据结构中已完成重建的存储资源区间个数,判断已完成重建的存储资源区间个数是否为重建总体数据结构中的待重建的存储资源区间个数,如果是,则说明重建盘被重建完,否则执行步骤207。
结合图2所示的实施例可知,在重建RAID5阵列的重建盘时,如果存储资源区间有视频数据写入,则可根据存储资源区间对应的外部视频源的当前写入位置,确定存储资源区间的重建起始位置;按照重建盘的从低地址到高地址的方向选择存储资源区间,使用视频数据和重建流从两个方向对重建盘的每个存储资源区间逐个进行重建。本发明解决了现有技术中在RAID5阵列重建过程中,影响正常存储业务的资源分配,导致外部视频数据写入丢失等问题,而且本发明的外部视频数据和重建流的双向重建方案,大大提高了RAID重建速度。
参见图4,为本发明一种实施方式中RAID阵列重建装置所在存储设备的一种硬件结构图:
本发明RAID阵列重建装置的实施例可以应用在存储设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本发明一种实施方式中RAID阵列重建装置所在存储设备的一种硬件结构图,除了图4所示的CPU、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件。
参见图5,为本发明一种实施方式中RAID阵列重建装置框图,所述装置应用于存储设备上,所述存储设备上包括至少一个RAID阵列,所述RAID阵列包括多个分区。
所述装置包括:获取单元510、确定单元520、重建单元530。
获取单元510,用于所述RAID阵列启动重建盘的重建时,获取每个分区的阵列起始地址和分区大小,所述分区为存储资源区间或者非存储资源区间,其中,每个存储资源区间由一个外部视频源写入数据;
确定单元520,用于如果在所述重建盘重建时,所述存储资源区间有视频数据写入,则根据所述存储资源区间对应的外部视频源的当前写入位置,确定所述存储资源区间的重建起始位置;
重建单元530,用于按照所述重建盘的从低地址到高地址的方向选择存储资源区间,使用所述视频数据和重建流从两个方向对所述重建盘的每个存储资源区间逐个进行重建。
其中,重建单元530包括:写入子单元531(图5中未示出)、重建子单元532(图5中未示出)、判断子单元533(图5中未示出)、完成子单元534(图5中未示出);
写入子单元531,用于在所述存储资源区间的当前写入位置,向所述存储资源区间的高地址方向写入视频数据;重建子单元532,用于在所述存储资源区间的当前起始位置,按照每次重建数据量,进行数据重建,所述当前起始位置由所述重建起始位置、每次重建数据量、重建次数计算得到;在完成所述存储资源区间的一次重建数据量的重建后,累加所述存储资源区间的已重建数据大小并记录在所述资源区间重建数据结构中,将当前起始位置向低地址方向偏移本次重建完成的数据量;如果重建位置到达所述存储资源区间在所述重建盘上的最低地址,则跳到所述存储资源区间在所述重建盘上的最高地址,继续重建;判断子单元533,用于如果所述存储资源区间的待重建区域已写入新数据,或者所述存储资源区间已重建数据大小与所述存储资源区间在所述重建盘上的空间大小相同,则说明所述存储资源区间已完成重建;完成子单元534,用于判断待重建的存储资源区间是否都已重建完成,如果否,继续向高地址方向选择待重建的存储资源区间进行重建,如果是,则所述重建盘重建完成。
可选的,获取单元510包括:第一交互子单元511(图5中未示出),用于所述存储设备的内核态RAID层通过套接字Netlink机制向用户态的业务层发送配置获取命令,所述配置获取命令中携带有阵列标识信息;查询子单元512(图5中未示出),用于所述用户态的业务层根据所述配置获取命令,获取所述阵列的每个分区的分区信息,所述分区信息包括分区个数、每个分区的阵列起始地址和分区大小,以及每个存储资源区间的索引区所对应的阵列起始地址和索引区大小;第二交互子单元513(图5中未示出),用于所述用户态的业务层向所述内核态RAID层发送IO控制命令,所述IO控制命令中包括所述阵列的每个分区的分区信息。
其中,查询子单元512包括:第一模块,用于根据所述阵列标识信息,查询数据库,获得所述阵列的分区个数;第二模块,用于使用dmsetup命令获取每个分区的阵列起始地址和分区大小;第三模块,用于根据所述存储设备的数据存储格式,计算得到每个存储资源区间的索引区所对应的阵列起始地址、索引区大小。
所述装置还包括:构建单元540(图5中未示出),用于构建重建总体数据结构,其中,所述重建总体数据结构包括待重建的存储资源区间个数,已完成重建的存储资源区间个数,以及所述非存储资源区间在所述重建盘上的空间区段;所述构建单元540,还用于对每个存储资源区间构建资源区间重建数据结构,其中,所述资源区间重建数据结构包括所述存储资源区间在所述重建盘上的起始扇区号和空间大小,所述存储资源区间的索引区在所述重建盘上的起始扇区号和空间大小,所述存储资源区间每次重建的当前起始位置,所述存储资源区间每次重建数据量,所述存储资源区间已重建数据大小,以及所述存储资源区间是否已完成重建。
在执行存储资源区间的重建之前,所述重建单元530,还用于根据所述重建总体数据结构,对所述非存储资源区间在所述重建盘上的空间区段进行重建。
如果在所述重建盘重建时,所述存储资源区间没有视频数据写入,所述确定单元520,还用于确定所述存储资源区间的重建起始位置为所述存储资源区间在所述重建盘上的起始扇区号。
所述装置还包括:计算单元550(图5中未示出),用于根据每个存储资源区间的阵列起始地址和分区大小,计算每个存储资源区间在所述重建盘上的起始扇区号和空间大小;还用于根据所述存储资源区间的的索引区所对应的阵列起始地址、索引区大小,计算所述存储资源区间的索引区在所述重建盘上的起始扇区号和空间大小。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (12)
1.一种RAID阵列重建方法,其特征在于,所述方法应用于存储设备上,所述存储设备上包括至少一个RAID阵列,所述RAID阵列包括多个分区,所述方法包括:
当所述RAID阵列启动重建盘的重建时,获取每个分区的阵列起始地址和分区大小,所述分区为存储资源区间或者非存储资源区间,其中,每个存储资源区间由一个外部视频源写入数据;
如果在重建所述重建盘时,所述存储资源区间有视频数据写入,则根据所述存储资源区间对应的外部视频源第一次写入视频数据的写入位置,确定所述存储资源区间的重建起始位置;
按照所述重建盘的从低地址到高地址的方向选择存储资源区间,使用所述视频数据和重建流分别从两个方向对所述重建盘的每个存储资源区间逐个进行重建。
2.根据权利要求1所述的方法,其特征在于,所述获取每个分区的阵列起始地址和分区大小,包括:
所述存储设备的内核态RAID层通过套接字Netlink机制向用户态的业务层发送配置获取命令,所述配置获取命令中携带有阵列标识信息;
所述用户态的业务层根据所述配置获取命令,获取所述阵列的每个分区的分区信息,所述分区信息包括分区个数、每个分区的阵列起始地址和分区大小,以及每个存储资源区间的索引区所对应的阵列起始地址和索引区大小;
所述用户态的业务层向所述内核态RAID层发送IO控制命令,所述IO控制命令中包括所述阵列的每个分区的分区信息。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
构建重建总体数据结构,其中,所述重建总体数据结构包括待重建的存储资源区间个数,已完成重建的存储资源区间个数,以及所述非存储资源区间在所述重建盘上的空间区段;
对每个存储资源区间构建资源区间重建数据结构,其中,所述资源区间重建数据结构包括所述存储资源区间在所述重建盘上的起始扇区号和空间大小,所述存储资源区间的索引区在所述重建盘上的起始扇区号和空间大小,所述存储资源区间每次重建的当前起始位置,所述存储资源区间每次重建数据量,所述存储资源区间已重建数据大小,以及所述存储资源区间是否已完成重建。
4.根据权利要求3所述的方法,其特征在于,所述使用所述视频数据和重建流从两个方向对所述重建盘的每个存储资源区间逐个进行重建之前,还包括:根据所述重建总体数据结构,对所述非存储资源区间在所述重建盘上的空间区段进行重建。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果在重建所述重建盘时,所述存储资源区间没有视频数据写入,则所述存储资源区间的重建起始位置为所述存储资源区间在所述重建盘上的起始扇区号。
6.根据权利要求3所述的方法,其特征在于,所述使用所述视频数据和重建流从两个方向对所述重建盘的每个存储资源区间逐个进行重建,包括:
在所述存储资源区间的当前写入位置,向所述存储资源区间的高地址方向写入视频数据;
在所述存储资源区间的当前起始位置,按照每次重建数据量,进行数据重建,所述当前起始位置由所述重建起始位置、每次重建数据量、重建次数计算得到;在完成所述存储资源区间的一次重建数据量的重建后,累加所述存储资源区间的已重建数据大小并记录在所述资源区间重建数据结构中,将当前起始位置向低地址方向偏移本次重建完成的数据量;如果重建起始位置到达所述存储资源区间在所述重建盘上的最低地址,则跳到所述存储资源区间在所述重建盘上的最高地址,继续重建;
如果所述存储资源区间的待重建区域已写入新数据,或者所述存储资源区间已重建数据大小与所述存储资源区间在所述重建盘上的空间大小相同,则说明所述存储资源区间已完成重建;
判断待重建的存储资源区间是否都已重建完成,如果否,继续向高地址方向选择待重建的存储资源区间进行重建,如果是,则所述重建盘重建完成。
7.一种RAID阵列重建装置,其特征在于,所述装置应用于存储设备上,所述存储设备上包括至少一个RAID阵列,所述RAID阵列包括多个分区,所述装置包括:
获取单元,用于所述RAID阵列启动重建盘的重建时,获取每个分区的阵列起始地址和分区大小,所述分区为存储资源区间或者非存储资源区间,其中,每个存储资源区间由一个外部视频源写入数据;
确定单元,用于如果在所述重建盘重建时,所述存储资源区间有视频数据写入,则根据所述存储资源区间对应的外部视频源第一次写入视频数据的写入位置,确定所述存储资源区间的重建起始位置;
重建单元,用于按照所述重建盘的从低地址到高地址的方向选择存储资源区间,使用所述视频数据和重建流分别从两个方向对所述重建盘的每个存储资源区间逐个进行重建。
8.根据权利要求7所述的装置,其特征在于,所述获取单元包括:
第一交互子单元,用于所述存储设备的内核态RAID层通过套接字Netlink机制向用户态的业务层发送配置获取命令,所述配置获取命令中携带有阵列标识信息;
查询子单元,用于所述用户态的业务层根据所述配置获取命令,获取所述阵列的每个分区的分区信息,所述分区信息包括分区个数、每个分区的阵列起始地址和分区大小,以及每个存储资源区间的索引区所对应的阵列起始地址和索引区大小;
第二交互子单元,用于所述用户态的业务层向所述内核态RAID层发送IO控制命令,所述IO控制命令中包括所述阵列的每个分区的分区信息。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括:
构建单元,用于构建重建总体数据结构,其中,所述重建总体数据结构包括待重建的存储资源区间个数,已完成重建的存储资源区间个数,以及所述非存储资源区间在所述重建盘上的空间区段;
所述构建单元,还用于对每个存储资源区间构建资源区间重建数据结构,其中,所述资源区间重建数据结构包括所述存储资源区间在所述重建盘上的起始扇区号和空间大小,所述存储资源区间的索引区在所述重建盘上的起始扇区号和空间大小,所述存储资源区间每次重建的当前起始位置,所述存储资源区间每次重建数据量,所述存储资源区间已重建数据大小,以及所述存储资源区间是否已完成重建。
10.根据权利要求9所述的装置,其特征在于,所述重建单元,还用于根据所述重建总体数据结构,对所述非存储资源区间在所述重建盘上的空间区段进行重建。
11.根据权利要求7所述的装置,其特征在于,所述确定单元,还用于如果在所述重建盘重建时,所述存储资源区间没有视频数据写入,则所述存储资源区间的重建起始位置为所述存储资源区间在所述重建盘上的起始扇区号。
12.根据权利要求9所述的装置,其特征在于,所述重建单元包括:
写入子单元,用于在所述存储资源区间的当前写入位置,向所述存储资源区间的高地址方向写入视频数据;
重建子单元,用于在所述存储资源区间的当前起始位置,按照每次重建数据量,进行数据重建,所述当前起始位置由所述重建起始位置、每次重建数据量、重建次数计算得到;在完成所述存储资源区间的一次重建数据量的重建后,累加所述存储资源区间的已重建数据大小并记录在所述资源区间重建数据结构中,将当前起始位置向低地址方向偏移本次重建完成的数据量;如果重建起始位置到达所述存储资源区间在所述重建盘上的最低地址,则跳到所述存储资源区间在所述重建盘上的最高地址,继续重建;
判断子单元,用于如果所述存储资源区间的待重建区域已写入新数据,或者所述存储资源区间已重建数据大小与所述存储资源区间在所述重建盘上的空间大小相同,则说明所述存储资源区间已完成重建;
完成子单元,用于判断待重建的存储资源区间是否都已重建完成,如果否,继续向高地址方向选择待重建的存储资源区间进行重建,如果是,则所述重建盘重建完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510901577.4A CN105487825B (zh) | 2015-12-08 | 2015-12-08 | Raid阵列重建方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510901577.4A CN105487825B (zh) | 2015-12-08 | 2015-12-08 | Raid阵列重建方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105487825A CN105487825A (zh) | 2016-04-13 |
CN105487825B true CN105487825B (zh) | 2019-04-30 |
Family
ID=55674830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510901577.4A Active CN105487825B (zh) | 2015-12-08 | 2015-12-08 | Raid阵列重建方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105487825B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484324A (zh) * | 2016-09-13 | 2017-03-08 | 郑州云海信息技术有限公司 | 一种raid重建的方法、系统及raid |
CN111404982B (zh) * | 2019-11-14 | 2023-04-07 | 杭州海康威视系统技术有限公司 | 数据重构方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1670682A (zh) * | 2004-03-15 | 2005-09-21 | 华为技术有限公司 | 一种数据重组方法 |
CN101840360A (zh) * | 2009-10-28 | 2010-09-22 | 创新科存储技术有限公司 | Raid系统的快速重建方法及装置 |
CN103970487A (zh) * | 2014-05-23 | 2014-08-06 | 浙江宇视科技有限公司 | 一种独立磁盘冗余阵列及实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1858227A1 (en) * | 2006-05-16 | 2007-11-21 | THOMSON Licensing | Network storage device with separated control and storage data interfaces |
-
2015
- 2015-12-08 CN CN201510901577.4A patent/CN105487825B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1670682A (zh) * | 2004-03-15 | 2005-09-21 | 华为技术有限公司 | 一种数据重组方法 |
CN101840360A (zh) * | 2009-10-28 | 2010-09-22 | 创新科存储技术有限公司 | Raid系统的快速重建方法及装置 |
CN103970487A (zh) * | 2014-05-23 | 2014-08-06 | 浙江宇视科技有限公司 | 一种独立磁盘冗余阵列及实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105487825A (zh) | 2016-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111506251B (zh) | 数据处理方法、装置、smr存储系统及存储介质 | |
CN102945201B (zh) | 已验证数据集合的非易失性介质日志记录 | |
CN101916173B (zh) | 一种基于raid的数据读写方法及其系统 | |
CN104050097A (zh) | 在具有不同的最小可寻址数据单元大小的非易失性存储器单元之间进行选择 | |
WO2013157032A1 (en) | Storage subsystem and data management method of storage subsystem | |
CN103246478B (zh) | 一种基于软raid支持无分组式全局热备盘的磁盘阵列系统 | |
CN110058960B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN104471524B (zh) | 存储系统和存储控制方法 | |
CN109213619A (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
JP6500505B2 (ja) | 制御装置、制御方法、および制御プログラム | |
CN103562881A (zh) | 数据存储池的碎片整理 | |
CN108037894B (zh) | 一种磁盘空间管理方法及装置 | |
CN106033320B (zh) | 高性能廉价磁盘冗余阵列raid机制的处理方法及装置 | |
JP6115308B2 (ja) | 情報処理システム、情報処理システムの制御方法、及び制御プログラム | |
JP2008146141A (ja) | ストレージシステムと記憶領域の選択方法並びにプログラム | |
CN109445681A (zh) | 数据的存储方法、装置和存储系统 | |
CN101615410A (zh) | 盘存储装置和程序 | |
US9183217B2 (en) | Method for decompressing data in storage system for write requests that cross compressed data boundaries | |
CN106775472A (zh) | 一种控制器缓存方法、存储控制器及多控制器存储系统 | |
CN104461384B (zh) | 一种数据写入方法及存储设备 | |
CN105487825B (zh) | Raid阵列重建方法及装置 | |
CN109213428A (zh) | 用于管理存储系统的方法和设备 | |
US20180341423A1 (en) | Storage control device and information processing system | |
CN104216660A (zh) | 提高磁盘阵列性能的方法及装置 | |
CN108958973A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |