一种提高存储系统RAID性能的方法和装置与流程

文档序号:18898975发布日期:2019-10-18 21:40阅读:197来源:国知局
一种提高存储系统RAID性能的方法和装置与流程

本发明涉及数据存储技术领域,特别是涉及一种提高存储系统raid性能的方法和装置。



背景技术:

raid(redundantarrayofindependentdisks,独立磁盘冗余阵列)是将多个独立磁盘通过不同的组合方式组合在一起形成的磁盘阵列。其中,该多个独立磁盘称为raid的成员磁盘。由于raid通过多个成员磁盘对数据同时进行读或写操作,从而提高了数据传输速率;并且,raid可以通过数据校验/镜像功能提供容错,从而增强了数据读写的安全性。因此,raid已广泛应用于数据读写的各个领域中。

raid中各成员磁盘的不同组合方式用raid级别表示。目前,raid级别包括:raid0、raid1、raid10、raid5、raid6等。其中,raid5、raid6应用最为广泛。

在raid5中,将数据存储空间按固定大小划分成若干个条带,比如,条带1、条带2和条带3;各成员磁盘的相同区域则是组成条带的分块,比如,条带1由分别位于成员磁盘1、成员磁盘2和成员磁盘3的相同区域的分块a、分块b和分块p1组成。当有数据需要写入到raid5时,首先将该数据划分成若干个数据块,比如数据块a、数据块b...数据块f,然后将各个数据块写入到各条带的对应分块上,比如,将数据块a写入到条带1中的分块a中,将数据块b写入到条带1中的分块b中。

raid满条带写的方式,会将逻辑块尽量分布在各个磁盘上,这导致随机读性能问题;当读取这个块的时候,需要读取分布在每个磁盘上数据分块,等待最慢的磁盘返回,这个读取才能完成。



技术实现要素:

本发明的目的是提供一种提高存储系统raid性能的方法和装置,在遵循raid满条带写的方式下,将多个块进行聚合成大逻辑块,当聚合的大逻辑块在分布到磁盘上的时候,每个磁盘上的数据分块变成各个独立的逻辑块,能够大幅提升raid的读写性能,解决满条带写方式下随机读性能低下的问题。

一种提高存储系统raid性能的方法,包括:

步骤1,对同一个存储逻辑单元(lun/file)的n个相同大小的数据块a,编组合并为一个大的数据块b,其中n为raid中数据盘的个数;

步骤2,用临时链表将步骤1所述数据块b链接起来,为数据块b分配一个完整连续的逻辑地址空间;

步骤3,调整数据分布方式,将步骤2所述逻辑地址空间中的n个数据块a各自布局在一个磁盘的连续物理空间上;

步骤4,按行的方式计算校验数据,将校验数据布局在校验磁盘中;

步骤5,将数据和校验块写入布局好的磁盘中,完成raid条带。

进一步地,所述数据块a数量小于聚合数量n时,则不聚合,依照raid的每个数据块一个条带的方式处理。

一种提高存储系统raid性能的装置,包括:

编组模块,用于将同一个存储逻辑单元(lun/file)的相同大小的数据块编组合并为一个大的数据块;

分配模块,用于将临时链表中所述大的数据块链接起来,为数据块分配一个完整连续的逻辑地址空间;

数据分布调整模块,用于调整数据分布方式,将所述分配模块分配的逻辑地址空间中数据块写在一个数据磁盘的连续物理空间上;

校验模块,用于按行的方式计算校验数据;

下盘模块,将数据块和校验块按照新的条带布局下盘。

附图说明

图1为本发明的一种提高存储系统raid性能的方法的流程图;

图2为本发明的一种提高存储系统raid性能的方法的数据分布方式示意图;

图3为本发明的一种提高存储系统raid性能的装置的结构图。

具体实施方式

下面结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所提供的实施例仅仅用于解释本发明,并不用于限定本发明。另外,以下所提供的实施例是用于实施本发明的部分实施例,而非提供实施本发明的全部实施例,在不冲突的情况下,本发明实施例记载的技术方案可以任意组合的方式实施。

需要说明的是,本发明实施例中,术语“包括”、“包含”或者其任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的方法或者装置不仅包括所明确记载的要素,而且还包括没有明确列出的其他要素,或者是还包括为实施方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括该要素的方法或者装置中还存在另外的相关要素(例如方法中的步骤或者装置中的模块,例如的模块可以是部分处理器、部分程序或软件等等)。

作为实现本发明实施例一种提高存储系统raid性能的方法的一个可选实施例,图1为本发明实施例提供的一个可选的流程示意图,以下进一步说明。

步骤101,对同一个存储逻辑单元(lun/file)的n个相同大小的数据块a,编组合并为一个大的数据块b,raid组中进行数据块聚合的粒度为n,其中n为raid中数据盘的个数。

为提高效率不限制在1m的空间,允许磁盘校验列在一个磁盘上。需要修改重构等和校验计算相关的部分。

聚合数量的计算为,行总高度等于列宽度;行总高度等于数据块的高度乘以数据块的数量;聚合的数量等于列宽度除以数据块的高度。

步骤102,用临时链表将步骤101所述数据块b链接起来,为数据块b分配一个完整连续的逻辑地址空间。

步骤103,参照图2,调整数据分布方式,将步骤102所述逻辑地址空间中的数据块(d1-1至d1-8)各自布局在一个磁盘的连续物理空间上,这样,读取d1数据块的时候,我们只需要从disk2一个磁盘上获取数据。

步骤104,按行的方式计算校验数据,将校验数据布局在校验磁盘中。

步骤105,将数据和校验块写入布局好的磁盘中,完成raid条带。

作为实现本发明实施例一种提高存储系统raid性能的装置的一个可选实施例,图3为本发明实施例提供的一个可选的结构图,本发明实施例提供的一种提高存储系统raid性能的装置包括:

编组模块11,用于将同一个存储逻辑单元(lun/file)的相同大小的数据块编组合并为一个大的数据块。

分配模块12,用于将临时链表中所述大的数据块链接起来,为数据块分配一个完整连续的逻辑地址空间。

数据分布调整模块13,用于调整数据分布方式,将所述分配模块12分配的逻辑地址空间中数据块写在一个数据磁盘的连续物理空间上。

校验模块14,用于按行的方式计算校验数据。

下盘模块15,将数据块和校验块按照新的条带布局下盘。



技术特征:

技术总结
本发明公开了一种提高存储系统RAID性能的方法和装置,包括:将同一个存储逻辑单元的相同大小的多个数据块编组合并为一个大的数据块;用临时链表将该数据块链接起来,并分配一个完整连续的逻辑地址空间;调整RAID条带的数据分布方式,将逻辑地址空间中的每个数据块写在一个磁盘的连续物理空间上;按行的方式计算校验数据,将校验数据写入校验磁盘中;按照存储系统RAID方式下盘。采用本方案,能够大幅提升RAID的读写性能,解决满条带写方式下随机读性能低下的问题。

技术研发人员:杨刚;王植玉
受保护的技术使用者:北京谷数科技有限公司
技术研发日:2019.07.05
技术公布日:2019.10.18
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1