一种可动态异步调整RAID级别的存储方法及存储系统技术方案

技术编号:10893105 阅读:116 留言:0更新日期:2015-01-09 16:28
本发明专利技术提供一种可动态异步调整RAID级别的存储方法及存储系统,首先通过在线模式生成初始虚拟磁盘,再在IO空闲时,采用后台模式增加或降低冗余度,由于增加或降低冗余度操作在后台进行,不需要占用在线模式时的IO资源,因此,为一种异步模式;另外,本发明专利技术中,每个块条带的RAID级别可均不相同,并可进行动态调整,从而提高了存储系统冗余级别调整的灵活性,更能满足用户存储需求。因此,本发明专利技术提供的可动态异步调整RAID级别的存储方法及存储系统,在不影响数据存取速度的前提下,充分利用空闲IO和空闲空间,从而提升安全级别,更适用于应用于云存储和集中化存储的大规模应用场合。

【技术实现步骤摘要】
一种可动态异步调整RAID级别的存储方法及存储系统
本专利技术属于数据存储
,具体涉及一种可动态异步调整RAID级别的存储方法及存储系统。
技术介绍
RAID(RedundantArraysofIndependentDisks,独立磁盘冗余阵列)技术已广泛应用于数据存储的各种场合,RAID技术分为几种不同的级别,可以分别提供不同的速度、安全性和性价比。根据实际情况选择适当的RAID级别可以满足用户对存储系统可用性、性能和容量的要求。常用的RAID级别包括以下几种:RAID0、RAID4和RAID5等。其中,RAID0采用条带技术,对于由多个物理磁盘组成的磁盘阵列,将每一个物理磁盘进行分割处理,由此得到多个磁盘块;然后,将不同物理磁盘的磁盘块组成一个条带;在数据存储过程中,首先将连续的数据按磁盘阵列中的物理磁盘的数量进行分段,得到相同大小的数据块,再以条带为单位,将各个数据块并行同时写入到阵列中的不同条带的不同磁盘块上,由于可以对数据进行并行读/写,具有数据访问速度快的优点;但是,由于RAID0不具有冗余能力,至少需要两个物理磁盘,只要其中一个物理磁盘出现损坏,则会导致整个磁盘阵列所保存的所有数据均不可用。RAID4也同样采用条带技术,其选取一块物理磁盘专门用于存储校验数据,称为校验盘;数据则分段存储在其他物理磁盘中。同一条带上,其他数据的改变均要修改校验数据。因此,当某一块物理磁盘出现损坏时,只需要将损坏物理磁盘更换为新的物理磁盘,然后再根据校验盘的校验数据,在新物理磁盘中重建损坏盘上的数据即可。利用单独的校验盘保护数据,提高了数据冗余存储能力,从而提高了数据存储的安全性。RAID5与RAID4区别在于,RAID5不是以单独的物理磁盘作为校验盘,而是将校验数据交互存储于各个物理磁盘上。因此,IO性能更加均衡,吞吐量及磁盘寿命均可最佳配置。相同之处在于,任何一个物理磁盘损坏,均不影响有效数据,缺失的数据可通过同一条带上的其他数据块生成出来。对于RAID4、RAID5等具有校验位的存储系统,主要采用存储数据和校验数据同步存储结构,即:对于一个条带,只有将校验数据写完,才能认为这个条带被写完,该种存储结构的优点为:在突发性断电等灾难发生时,可以保证数据的稳定性,同时控制器设计较为简单。但随着云存储和集中化存储的大规模应用,由若干组单一RAID组成的存储结构常常会因为一组RAID故障导致大面积应用瘫痪,放大了数据风险,这时,简单地增加冗余磁盘的数量,或者性能急剧下降,或者空间浪费惊人。所以,需要在空间利用率和存取性能上找到最佳点,如何在不影响数据存取速度的前提下,利用好存储的空闲IO和空闲空间,从而提升安全级别,是当下存储产品需要解决的关键问题。
技术实现思路
针对现有技术存在的缺陷,本专利技术提供一种可动态异步调整RAID级别的存储方法及存储系统,可有效解决上述问题。本专利技术采用的技术方案如下:本专利技术还提供一种可动态异步调整RAID级别的存储方法,包括以下步骤:S1,对于由多个物理磁盘组成的磁盘阵列,将每一个物理磁盘进行分割处理,由此得到多个磁盘块;对每一个所述磁盘块进行编号,该编号由物理磁盘号PN和磁盘块号BN联合组成,记为PN:BN;然后,定义存储池,所述存储池具有磁盘块分配表和块条带冗余度标识表;其中,所述块条带冗余度标识表用于记录每个块条带的冗余度;将所有的已编号后的磁盘块存入已定义的所述存储池中;S2,在所述存储池中定义由n行m列个磁盘块组成的虚拟磁盘,每一行的所有磁盘块形成一个磁盘块条带,简称为块条带;并约定所述块条带符合如下2个条件:条件1、每个块条带中,具有相同物理磁盘号PN的磁盘块仅允许出现一次;条件2、每个块条带具有的磁盘块数量需满足在创建所述虚拟磁盘时所设定的最少磁盘块数量;另外,在创建所述虚拟磁盘时,定义或默认定义所述虚拟磁盘的数据冗余级别,该数据冗余级别由如下4个参数决定:a、每个块条带中的存储真正数据的磁盘块数量:m-h;其中,将存储真正数据的磁盘块简称为数据块;b、每个块条带中的存储校验值的磁盘块数量:h;其中,将存储校验值的磁盘块简称为校验块;c、每个块条带中允许增强的校验块数量:M;d、虚拟磁盘安全级别:Vs;S3,设按自上而下顺序共有n个原始块条带,分别记为:原始块条带1、原始块条带2…原始块条带n;设任意一个原始块条带i均由m个磁盘块组成,按自左向右的顺序,分别记为:磁盘块i-1、磁盘块i-2..,磁盘块i-m;并且,所述原始块条带的m个磁盘块均为在线磁盘块;每一个所述原始块条带具有的m个磁盘块中,配置h个用于存储校验值的校验块,其他m-h个磁盘块为用于存储真正数据的数据块;其中,0≤h<m,h为自然数;S4,当进行写操作时,RAID控制器接收待写入虚拟磁盘的数据,根据数据在虚拟磁盘中的偏移地址和数据的容量大小,通过虚拟磁盘的结构定义,将所述数据分段,再计算分段后的数据需要写入的数据块的块地址以及校验块的块地址;然后,向计算后得到的数据块地址写入分段后的数据,向计算后得到的校验块地址写入校验数据,返回写成功;当进行读操作时,将所述虚拟磁盘的空间地址和大小转换后,由并行线程进行读取、汇总,即可读出数据;S4,具体包括:S4.1,RAID控制器监控IO模块的空闲状态,当监控到IO模块空闲时,执行S4.2;S4.2,所述虚拟磁盘增加块条带冗余度的操作:如果同时满足以下条件:当前所述存储池的空闲磁盘块数量超过设定值;并且,存在校验块数量小于最大数量M的第一块条带集;则:所述虚拟磁盘基于优先级冗余策略,按优先级从高到低顺序分别对所述第一块条带集中的各个块条带增加一个级别的冗余处理,即:为所获取的块条带增加一个校验块,并基于预设校验算法,向所增加的校验块中写入校验数据;更新所述块条带冗余度标识表中的块条带冗余度;重复本步骤,不断对各个块条带增加冗余度,改变各个块条带的RAID级别;所述虚拟磁盘降低块条带冗余度的操作:如果当前所述存储池的空闲磁盘块数量低于设定值,则按优先级从低到高顺序分别对各个块条带回收一个校验块,降低块条带的冗余级别;更新所述块条带冗余度标识表中的块条带冗余度标识;然后,在存储池的所述磁盘块分配表标识所回收的所述校验块为自由状态,使其可作为数据块使用。优选的,S2中,h为整数,且h>=0且h<=5。优选的,S2中,M为整数且0<=M<=5。优选的,所述优先级冗余策略包括:基于预定义的虚拟磁盘安全级别Vs,虚拟磁盘安全级别越高,则表明虚拟磁盘的重要度越高,则其优先级别越高;各个块条带所存储的具体数据的重要度,即:所存储的具体数据越重要,其优先级别越高;各个块条带最后执行存储操作的时间,即:最后执行存储操作的时间离当前时间的时间间隔越小,其优先级别越高。优选的,S4.2中,所述预设校验算法为基于Reed-solomon算法设计的多元一次方程组原理,即:在该方程组的解为唯一的情况下,即可增加多级校验。本专利技术还提供一种可动态异步调整RAID级别的存储系统,包括:分割模块,用于对由多个物理磁盘组成的磁盘阵列,将每一个物理磁盘进行分割处理,由此得到多个磁盘块;编号模块,用于对每一个所述磁盘块进行编号,该编号由物理磁盘号PN和磁盘块号BN联合组成,本文档来自技高网
...
一种可动态异步调整RAID级别的存储方法及存储系统

【技术保护点】
一种可动态异步调整RAID级别的存储方法,其特征在于,包括以下步骤:S1,对于由多个物理磁盘组成的磁盘阵列,将每一个物理磁盘进行分割处理,由此得到多个磁盘块;对每一个所述磁盘块进行编号,该编号由物理磁盘号PN和磁盘块号BN联合组成,记为PN:BN;然后,定义存储池,所述存储池具有磁盘块分配表和块条带冗余度标识表;其中,所述块条带冗余度标识表用于记录每个块条带的冗余度;将所有的已编号后的磁盘块存入已定义的所述存储池中;S2,在所述存储池中定义由n行m列个磁盘块组成的虚拟磁盘,每一行的所有磁盘块形成一个磁盘块条带,简称为块条带;并约定所述块条带符合如下2个条件:条件1、每个块条带中,具有相同物理磁盘号PN的磁盘块仅允许出现一次;条件2、每个块条带具有的磁盘块数量需满足在创建所述虚拟磁盘时所设定的最少磁盘块数量;另外,在创建所述虚拟磁盘时,定义或默认定义所述虚拟磁盘的数据冗余级别,该数据冗余级别由如下4个参数决定:a、每个块条带中的存储真正数据的磁盘块数量:m‑h;其中,将存储真正数据的磁盘块简称为数据块;b、每个块条带中的存储校验值的磁盘块数量:h;其中,将存储校验值的磁盘块简称为校验块;c、每个块条带中允许增强的校验块数量:M;d、虚拟磁盘安全级别:Vs;S3,设按自上而下顺序共有n个原始块条带,分别记为:原始块条带1、原始块条带2…原始块条带n;设任意一个原始块条带i均由m个磁盘块组成,按自左向右的顺序,分别记为:磁盘块i‑1、磁盘块i‑2..,磁盘块i‑m;并且,所述原始块条带的m个磁盘块均为在线磁盘块;每一个所述原始块条带具有的m个磁盘块中,配置h个用于存储校验值的校验块,其他m‑h个磁盘块为用于存储真正数据的数据块;其中,0≤h<m,h为自然数;S4,当进行写操作时,RAID控制器接收待写入虚拟磁盘的数据,根据数据在虚拟磁盘中的偏移地址和数据的容量大小,通过虚拟磁盘的结构定义,将所述数据分段,再计算分段后的数据需要写入的数据块的块地址以及校验块的块地址;然后,向计算后得到的数据块地址写入分段后的数据,向计算后得到的校验块地址写入校验数据,返回写成功;当进行读操作时,将所述虚拟磁盘的空间地址和大小转换后,由并行线程进行读取、汇总,即可读出数据;S4,具体包括:S4.1,RAID控制器监控IO模块的空闲状态,当监控到IO模块空闲时,执行S4.2;S4.2,所述虚拟磁盘增加块条带冗余度的操作:如果同时满足以下条件:当前所述存储池的空闲磁盘块数量超过设定值;并且,存在校验块数量小于最大数量M的第一块条带集;则:所述虚拟磁盘基于优先级冗余策略,按优先级从高到低顺序分别对所述第一块条带集中的各个块条带增加一个级别的冗余处理,即:为所获取的块条带增加一个校验块,并基于预设校验算法,向所增加的校验块中写入校验数据;更新所述块条带冗余度标识表中的块条带冗余度;重复本步骤,不断对各个块条带增加冗余度,改变各个块条带的RAID级别;所述虚拟磁盘降低块条带冗余度的操作:如果当前所述存储池的空闲磁盘块数量低于设定值,则按优先级从低到高顺序分别对各个块条带回收一个校验块,降低块条带的冗余级别;更新所述块条带冗余度标识表中的块条带冗余度标识;然后,在存储池的所述磁盘块分配表标识所回收的所述校验块为自由状态,使其可作为数据块使用。...

【技术特征摘要】
1.一种可动态异步调整RAID级别的存储方法,其特征在于,包括以下步骤:S1,对于由多个物理磁盘组成的磁盘阵列,将每一个物理磁盘进行分割处理,由此得到多个磁盘块;对每一个所述磁盘块进行编号,该编号由物理磁盘号PN和磁盘块号BN联合组成,记为PN:BN;然后,定义存储池,所述存储池具有磁盘块分配表和块条带冗余度标识表;其中,所述块条带冗余度标识表用于记录每个块条带的冗余度;将所有的已编号后的磁盘块存入已定义的所述存储池中;S2,在所述存储池中定义由n行m列个磁盘块组成的虚拟磁盘,其中,n和m均为自然数;每一行的所有磁盘块形成一个磁盘块条带,简称为块条带;并约定所述块条带符合如下2个条件:条件1、每个块条带中,具有相同物理磁盘号PN的磁盘块仅允许出现一次;条件2、每个块条带具有的磁盘块数量需满足在创建所述虚拟磁盘时所设定的最少磁盘块数量;另外,在创建所述虚拟磁盘时,定义或默认定义所述虚拟磁盘的数据冗余级别,该数据冗余级别由如下4个参数决定:a、每个块条带中的存储真正数据的磁盘块数量:m-h;其中,将存储真正数据的磁盘块简称为数据块;其中,0≤h<m,h为自然数b、每个块条带中的存储校验值的磁盘块数量:h;其中,0≤h<m,h为自然数;将存储校验值的磁盘块简称为校验块;c、每个块条带中允许增强的校验块数量:M;M为整数且0<=M<=5;d、虚拟磁盘安全级别:Vs;S3,设按自上而下顺序共有n个原始块条带,分别记为:原始块条带1、原始块条带2…原始块条带n;设任意一个原始块条带i均由m个磁盘块组成,按自左向右的顺序,分别记为:磁盘块i-1、磁盘块i-2..,磁盘块i-m;并且,所述原始块条带的m个磁盘块均为在线磁盘块;每一个所述原始块条带具有的m个磁盘块中,配置h个用于存储校验值的校验块,其他m-h个磁盘块为用于存储真正数据的数据块;其中,0≤h<m,h为自然数;S4,当进行写操作时,RAID控制器接收待写入虚拟磁盘的数据,根据数据在虚拟磁盘中的偏移地址和数据的容量大小,通过虚拟磁盘的结构定义,将所述数据分段,再计算分段后的数据需要写入的数据块的块地址以及校验块的块地址;然后,向计算后得到的数据块地址写入分段后的数据,向计算后得到的校验块地址写入校验数据,返回写成功;当进行读操作时,将所述虚拟磁盘的空间地址和大小转换后,由并行线程进行读取、汇总,即可读出数据;S4,具体包括:S4.1,RAID控制器监控IO模块的空闲状态,当监控到IO模块空闲时,执行S4.2;S4.2,所述虚拟磁盘增加块条带冗余度的操作:如果同时满足以下条件:当前所述存储池的空闲磁盘块数量超过设定值;并且,存在校验块数量小于最大数量M的第一块条带集;则:所述虚拟磁盘基于优先级冗余策略,按优先级从高到低顺序分别对所述第一块条带集中的各个块条带增加一个级别的冗余处理,即:为所获取的块条带增加一个校验块,并基于预设校验算法,向所增加的校验块中写入校验数据;更新所述块条带冗余度标识表中的块条带冗余度;重复本步骤,不断对各个块条带增加冗余度,改变各个块条带的RAID级别;所述虚拟磁盘降低块条带冗余度的操作:如果当前所述存储池的空闲磁盘块数量低于设定值,则按优先级从低到高顺序分别对各个块条带回收一个校验块,降低块条带的冗余级别;更新所述块条带冗余度标识表中的块条带冗余度标识;然后,在存储池的所述磁盘块分配表标识所回收的所述校验块为自由状态,使其可作为数据块使用。2.根据权利要求1所述的可动态异步调...

【专利技术属性】
技术研发人员:张宇
申请(专利权)人:北京北亚时代科技有限公司
类型:发明
国别省市:北京;11

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1