首页> 中国专利> 基于非对称混合型磁盘镜像的宽条带磁盘阵列及存储方法

基于非对称混合型磁盘镜像的宽条带磁盘阵列及存储方法

摘要

本发明克服了现有RAID技术对各个子盘存储介质和存储空间的限制,提供了一种高性能高可靠性的基于非对称混合型磁盘镜像的宽条带磁盘阵列及其数据存储方法,该磁盘阵列包括至少两个物理存储池,每个物理存储池由相同存储介质组成,所述磁盘阵列至少包含两种不同存储介质,使用至少两种存储介质的磁盘,以镜像的方式构成镜像盘,多个镜像盘组成宽条带镜像群;所述磁盘阵列还包括一个控制器,所述控制器与每个物理存储池数据连接,用于控制数据的写入和读取,写入数据时将数据保存在至少两个物理存储池,读取数据时从读取速度较快的物理存储池读取。

著录项

  • 公开/公告号CN104778018A

    专利类型发明专利

  • 公开/公告日2015-07-15

    原文格式PDF

  • 申请/专利权人 南京道熵信息技术有限公司;

    申请/专利号CN201510198254.3

  • 发明设计人 胡晓宇;

    申请日2015-04-23

  • 分类号

  • 代理机构南京苏高专利商标事务所(普通合伙);

  • 代理人王华

  • 地址 211100 江苏省南京市江宁区秣周东路9号中国无线谷

  • 入库时间 2023-12-18 09:52:52

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-06-05

    授权

    授权

  • 2015-08-12

    实质审查的生效 IPC(主分类):G06F3/06 申请日:20150423

    实质审查的生效

  • 2015-07-15

    公开

    公开

说明书

技术领域

本发明涉及一种基于非对称混合型磁盘镜像的宽条带磁盘阵列,以及该磁盘阵列的数据存储方法,属于数据存储处理技术领域。

背景技术

传统高性能高可靠性计算机存储系统依赖于RAID,即Redundant Array of Inexpensive Disks。中文简称为廉价磁盘冗余阵列。RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。组成磁盘阵列的不同方式成为RAID级别(RAID Levels)。数据备份的功能是在用户数据一旦发生损坏后,利用备份信息可以使损坏数据得以恢复,从而保障了用户数据的安全性。在用户看起来,组成的磁盘组就像是一个硬盘,用户可以对它进行分区,格式化等等。总之,对磁盘阵列的操作与单个硬盘一模一样。不同的是,磁盘阵列的存储速度要比单个硬盘高很多,而且可以提供自动数据保护。

RAID技术的主要缺点是组成RAID小组的各个磁盘(子盘)必须是容量和性能均相同的硬盘组成。在同一个RAID小组中如果各个磁盘的性能不同,那么性能最差的磁盘决定了该RAID的总体性能。该特征决定了传统的RAID技术无法有效地将两种或多种存储介质集成起来。另一个主要缺点在于RAID技术的逻辑地址通常是通过一个相对固定的映射对应到各个物理磁盘上。这样导致在写入数据时很可能数据只能随机写入,而对于机械硬盘(HDD)来说,随机写入意味着需要磁盘频繁地移动读写磁头,导致整体性能显著下降。

随着闪存芯片(NAND Flash)的价格越来越便宜,而闪存芯片的读写性能大大优于机械硬盘,而价格在可预见的未来仍显著高于机械硬盘。此外,随着闪存制造工艺的日益精细化和微小化,闪存颗粒的耐写性持续降低,导致以闪存为存储媒介的固态(闪存)硬盘具有远远小于HDD的最大数据可写入容量。因此需要设计一种新型方案来高效地使用固态闪存硬盘和机械硬盘这两种不同的存储介质,取长补短,构成一个混合型磁盘阵列或存储系统。

固态硬盘(SSD)除了可以使用闪存作为其存储介质,也可以使用磁阻内存(MRAM)和电阻式随机存储记忆体(ReRAM)。作为磁阻内存的一个代表,STT-MRAM具有比SRAM和DRAM 更快的速度,更高集成度,更低功耗,可几乎无限制写的次数。ReRAM目前被认为是NAND闪存的替代者,与NAND闪存相比,其集成度更好,速度更快,耐写性更好。基于磁阻内存的固态硬盘和基于电阻内存的固态硬盘比固态闪存硬盘性能更高,但单位价格更高。

RRAM也称ReRAM,全称Resistive RAM,中文译为电阻记忆体、记忆电阻(简称忆阻)。RRAM是一种具有记忆功能的非线性电阻,使用强相关电子类的材料(如NiO、PCMO等),这类型的材料可通过电流的变化控制阻值的变化,即是对材料施压电压脉冲后,材料的电阻阻值会发生剧烈改变,使材料成为高阻值;反之,若从另一个方向施加电压脉冲则会使材料转变成低阻值,运用阻值高、低的两种状态来储存位资料。如果将忆阻的高阻值和低阻值分别定义为1和0,就可以通过二进制的方式来存储数据。

发明内容

发明目的:本发明所要解决的技术问题是克服现有RAID技术对各个子盘存储介质和存储空间的限制,提供一种混合使用不同存储介质,如固态硬盘和机械硬盘,组成一个高性能高可靠的磁盘阵列或存储系统,以及用于该磁盘阵列的数据存储方法。

技术方案:为实现上述发明目的,本发明采用如下技术方案:

一种基于非对称混合型磁盘镜像的宽条带磁盘阵列,包括至少两个物理存储池,每个物理存储池由相同存储介质组成,所述磁盘阵列至少包含两种不同存储介质,使用至少两种存储介质的磁盘,以镜像的方式构成镜像盘,多个镜像盘组成宽条带镜像群;所述磁盘阵列还包括一个控制器,所述控制器与每个物理存储池数据连接,用于控制数据的写入和读取,写入数据时将数据保存在至少两个物理存储池,读取数据时从读取速度较快的物理存储池读取。

进一步地,所述磁盘阵列至少包括一个由N个机械硬盘组成的物理存储池,以及一个由N个固态硬盘组成的物理存储池,每个机械硬盘和一个固态硬盘构成一个镜像盘,N为正整数。

进一步地,所述固态硬盘为固态闪存硬盘、固态磁阻内存硬盘或固态电阻内存硬盘。

一种基于非对称混合型磁盘镜像的宽条带磁盘阵列的数据存储方法,包括如下步骤:数据块划分:将待写入用户数据划分为大小指定的数据块;

地址分配:为每个数据块分配镜像盘逻辑地址,并生成数据块的元数据;

数据写入:将数据块写入所分配的地址对应的镜像盘下的所有活动子盘中,并保存数据块的元数据。

进一步地,所述地址分配步骤中为每个数据块分配镜像盘逻辑地址时采用Round-Robin分配策略轮番依次从所有镜像盘为数据块分配地址。

进一步地,所述数据块划分步骤之后还包括对划分后的数据块进行数据压缩的步骤。

进一步地,所述数据块的元数据包括用户空间逻辑地址、镜像盘逻辑地址、压缩前数据大小、压缩后数据大小以及数据校验位。

进一步地,所述数据写入步骤中,数据块的元数据与数据块同时写入镜像盘中,元数据还单独保存在高速存储介质上,控制器内存中使用Cache算法保存最近使用的元数据或最常使用的元数据。

进一步地,所述地址分配步骤中,采用顺序布局非覆盖模式为数据块分配镜像盘逻辑地址。

进一步地,所述数据存储方法还包括数据读取的步骤,在读取数据时,优先选择从同一镜像盘的子盘中读取速度较快的子盘读取。

有益效果:与现有技术相比,本发明具有如下优点:(1)本发明通过使用至少两种存储介质的磁盘,以镜像的方式组成一个宽条带镜像群,来实现数据保护和提供IO性能的目的,能够利用不同存储介质的优势,以较低的实现成本达到较好的读写性能。(2)本发明采用不同存储介质进行镜像保护,由于不同存储介质发生故障的机制完全不同,二者同时发生故障的概率极低,导致系统的可靠性也同时大幅度提高。(3)本发明通过使用不同存储介质,如机械旋转硬盘和固态硬盘(闪存,磁阻内存或电阻内存)组成磁盘阵列,采取顺序布局非覆盖模式将随机写转变为顺序写,能够优化系统写入性能,最大限度发挥机械旋转硬盘的带宽优势。同时,在读取数据时优先选择从读取速度更快的固态硬盘(闪存,磁阻内存或电阻内存)读取,拥有和纯固态硬盘磁盘阵列相当的读写性能,而实现的成本大为降低。

附图说明

图1为本发明实施例中采用机械旋转硬盘和固态硬盘组成镜像的磁盘阵列的结构示意图。

图2为本发明实施例中每个镜像盘的地址空间与其下子盘的地址空间的(线性)映射关系示意图。

图3为本发明实施例中宽条带镜像群的示意图(镜像盘容量相同)。

图4为本发明实施例中宽条带镜像群的示意图(镜像盘容量不同)。

图5为本发明实施例的数据存储方法流程图。

图6为本发明实施例中数据块的元数据的数据结构示意图。

图7为本发明实施例中数据块的元数据快速索引示意图。

图8为本发明实施例中数据压缩和宽条带动态分配示意图。

图9为本发明实施例中采用顺序写布局非覆盖模式的数据写入示意图。

具体实施方式

下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。

本发明实施例公开的一种基于非对称混合型磁盘镜像的宽条带磁盘阵列,包括至少两个物理存储池,每个物理存储池由相同存储介质组成,磁盘阵列至少包含两种不同存储介质。目前最为典型的存储介质是机械硬盘和固态硬盘(闪存,磁阻内存或电阻内存)。其中机械硬盘是通过磁记录原理来保存数据,具有容量大,单位价格低,顺序读写较快,而随机读写慢等技术特点。固态闪存硬盘则是通过固态闪存存储芯片来保存数据,无论顺序读写还是随机读写都很快,其IO性能通常是机械硬盘的1000倍左右。缺点是其单位价格相对于机械硬盘比较昂贵。此外,机械硬盘比固态闪存硬盘通常更耐磨损,但耗电量相对较大。本发明的设计构思是通过使用至少两种存储介质的磁盘,以镜像的方式组成一个宽条带镜像群,来实现数据保护和提供IO性能的目的。

如图1所示,本发明实施例的磁盘阵列包括N个机械硬盘(HDD)和N个固态硬盘(SSD),其中,N个机械硬盘组成的一个物理存储池,N个固态硬盘(闪存,磁阻内存或电阻内存)组成的一个物理存储池,每个机械硬盘和某个固态硬盘构成一个镜像(可以看作一个虚拟的磁盘,称为镜像盘)。N大于1时,N个镜像盘组成宽条带镜像群,本发明也适用于N为1的情况,实现较为简单,此处不赘述。一般情况下构成镜像的两个盘的存储容量需要尽可能相近,以免造成空间浪费。镜像盘的有效存储空间由构成镜像的两个盘的最小容量决定。整个阵列的有效存储空间由N个镜像盘的地址空间之和构成。每个镜像盘的容量可以互不相同。

如图2所示,磁盘阵列的每个镜像盘的逻辑地址空间由一系列相同块大小的地址空间按顺序组合而成。每个块的地址空间对应于至少一个机械硬盘上的某个块和一个固态硬盘上某个块的地址空间。为简化映射关系,块的映射关系通常是线性关系,即镜像盘的逻辑地址空间1映射到每个子盘的逻辑地址空间1,逻辑地址空间2映射到每个子盘的逻辑地址空间2,以此类推。每个子盘由磁盘自带控制器实现逻辑地址与物理地址的映射。

多个镜像盘组成的宽条带镜像群如图3、图4所示(示例中有4组镜像盘),图3为镜像群中各镜像盘的容量相同,在一个宽条带中,条带宽度为镜像盘的组数,镜像盘的条带深度可以为一个或多个块。可按照图中块的序号写入数据。图4为镜像盘容量不同的情况,在小容量镜像盘空间分配完后,在剩余的较大容量的镜像盘中继续用宽条带逻辑写入数据。

镜像盘也可有两种不同媒介的固态硬盘组成,例如由固态闪存硬盘和固态电阻内存硬盘组成,或固态磁阻内存硬盘和固态电阻内存硬盘组成,或固态磁阻内存硬盘和固态电阻内存硬盘组成。另外,镜像盘的子盘既可以是物理硬盘,也可以是在某存储介质基础上构建的逻辑盘,逻辑卷或虚拟盘。比如在一组由机械旋转硬盘上构建的RAID 卷,或者是LVM虚拟卷,甚至可以是某个磁盘阵列的LUN。

镜像盘也可由三个子盘组成,其至少包含两种不同存储介质的磁盘。同一磁盘阵列中的镜像盘的结构也不一定是相同的,不同的镜像盘可由不同的存储介质组成,即磁盘阵列包括两种以上的存储介质。图1中举例的由N个机械硬盘和N个固态硬盘构成的磁盘阵列只是一种较为常见的典型结构,本发明的保护范围不限于此。

如图1所示,磁盘阵列还包括一个控制器,控制器与每个镜像盘数据连接。由控制器决定数据如何分布在各个镜像盘,监控各个镜像的健康状态,并决定数据从镜像盘中的哪个磁盘进行读写操作。控制器可以是一个嵌入式的控制器结构,也可以是一个通用型服务器架构,通常包含数据/程序处理单元(CPU),内存,以及非易失性数据存储单元,其中非易失性数据存储单元可使用高速存储介质,比如固态硬盘(闪存,磁阻内存或电阻内存),用于保存控制器实现其控制逻辑所需的元数据信息,元数据信息包括用户空间逻辑地址与镜像盘逻辑地址的映射关系。

如图5所示,本发明实施例公开的一种基于非对称混合型磁盘镜像的宽条带磁盘阵列的数据存储方法,主要包括如下几个步骤:

(S1)数据块划分:将待写入用户数据划分为大小指定的数据块。此处的数据块的大小可根据系统要求预先设定,如512Byte、4K Byte、8K Byte等。划分后的数据块将依次由控制器执行写入,至少保存到两种存储介质中。

(S2)数据块压缩:通过压缩硬件或软件对划分后的数据块进行数据压缩。为优化存储效率,每个数据块在写入到镜像盘以前先由处理器进行数据压缩,然后将压缩后的数据块写入镜像盘。相反,在读数据时,数据先从某个镜像盘读出,然后由处理器进行解压缩处理。数据压缩的算法可以是LZ4,LYW, LZ77,LZ78,GZIP,或其他常见方法。其中LZ4是我们推荐方法,具有速度快,消耗CPU技术资源少的特点,特别适合软件实现。当然,压缩过程也可由控制器专门的硬件实现,如果压缩后数据块(对某些数据块可能会出现)变得更大或压缩效果不明显,数据块将以压缩前的数据保存。

(S3)地址分配:为每个数据块分配镜像盘逻辑地址,并生成数据块的元数据。本步骤中,在分配镜像盘逻辑地址空间时采取Round-Robin分配策略来实现宽条带功能,即在给数据块分配地址时轮番依次从N 个镜像盘分配地址。该策略可使整个系统的写入带宽最大化。在为数据块分配了镜像盘逻辑地址后,将产生数据块的元数据,针对每个数据块最少需要保存一下几个特征:用户空间逻辑地址,镜像盘逻辑地址以及数据校验位(校验位可存储数据块CRC校验数据,一般可用于故障情况下数据校验,正常运行可不做校验),对于经过数据压缩过程的情况,还包括压缩前数据大小、压缩后数据大小(如图6)。通常这几个特征被称为该数据块的元数据,即描述数据块存储特征的数据。

(S4)数据写入:将数据块写入所分配的地址对应的镜像盘下的所有活动子盘中,并保存数据块的元数据。在对镜像盘的某个逻辑地址空间进行写操作时,控制器同时将数据写入其下所有的子盘相应的地址空间。当某个子盘离线或出现故障时,控制器将数据写入其余所有活动的子盘。当离线盘重新上线或故障盘被替换时,控制器将该盘不具有的数据重新写入,即数据同步。一个优化的策略是,控制器保持该盘上关于数据的状态,这样当其上部分数据如在故障期间或离线期间没有更新且仍保持完整,这部分数据不需要同步,可提高数据恢复速度,提高系统安全性和可靠性。

为了提高系统IO性能和数据安全性,元数据可以选择单独保存在一种高速存储介质上,比如固态硬盘(闪存,磁阻内存或电阻内存)。此外,在控制器内存中可以使用Cache算法保存最近使用的元数据或最常使用的元数据。通常,数据块的元数据也与数据块一同写入至镜像盘中,以备份元数据,若控制器出现故障,可以从阵列的镜像盘中读取元数据,从而恢复数据。

为了帮助快速找到数据块的元数据,控制器单独划出一个快速存储空间,用于保存元数据索引。图7所示的是使用Hash表来保存用户空间逻辑地址与元数据地址的快速索引。另一个选择是使用一个简单的顺序表格来保存元数据地址。

图8为本发明实施例的数据块压缩和宽条带实现方法示意图,待写入的用户数据的地址空间按系统设定的大小(如4K Byte)按块划分得到长度相同的数据块(最后一块长度可能不同),在写入镜像盘之前先经过数据压缩,成为长度不同的数据块。压缩后的数据块将由控制器运行宽条带逻辑来分配究竟由哪个镜像盘来保存数据。宽条带是指在分配镜像盘时,数据将尽可能均匀分配到各个镜像盘。通常Round-Robin算法可用来实现宽条带逻辑分配, 使得磁盘阵列的每个磁盘的带宽最大限度的利用。宽条带分配会动态地分配数据到后期加入的镜像像,故此磁盘阵列可支持后期增加镜像盘来扩展容量和性能。

在具体的镜像盘中确定镜像盘逻辑地址时,采用顺序布局非覆盖模式。即含有活动数据的块从来不被覆盖;而是分配一个新块,并把修改过的数据写在新块上。所有与该数据块相关的元数据块都被重新读、分配和重写。此前的活动数据自动改变为非活动数据,即垃圾数据(块)。该垃圾块的存储空间可被下次分配空间重复使用。顺序布局指的是在每次分配物理空间时总是(尽可能)分配与上次写时相邻的空间,将随机写转化为顺序写,有效地减少机械硬盘寻道的时间消耗,充分利用旋转磁盘的带宽,也可有效减少固态硬盘的磨损。为了进一步减少该过程的开销,多次读操作可被归纳为一个事件组,并且在必要的时候使用日志来同步写操作。

值得指出的是,本发明中的顺序布局非覆盖模式与日志模式有很大区别。本发明中的顺序布局是基于尽可能(best-effort),即允许一个较大的数据被拆分为几个较小的块,各个块保存在相近的地址空间。因而不对垃圾回收有强制性要求。系统甚至不要求使用垃圾回收机制。当然,过多的数据拆分会带来处理和磁盘寻址额外的开支,一个高效的垃圾回收策略有可能提高顺序布局的成功概率,减少拆分出现的次数。

图9为本发明的数据存储方法中顺序写布局非覆盖模式的示意图,如图所示,假设有4个镜像盘,数据块A、B、C、D、E按照宽条带逻辑分别存储至镜像盘1、2、3、4、1中的存储块中,对于同一用户逻辑地址对应的数据块A的更新A’, 确定写入镜像盘2中,控制器将从上次写的地址开始(数据块B写入地址),依顺序向后搜索空余的存储空间,作为此次写入数据块A’的地址。数据块A’及其元数据同时写入,同时更新元数据索引表,此前的数据块A将被标注成非活动数据,其数据所占空间将当成空闲空间,供以后使用。同样数据块B的更新数据块B’写入镜像盘3中数据块C的地址之后,镜像盘2中的数据块B成为非活动数据。

本发明实施例的数据存储方法中,当系统需要对镜像盘的某个逻辑地址空间进行读操作时,控制器将优先选择镜像盘中速度最快的子盘读取数据,如对于机械硬盘和固态硬盘组成的镜像,优先选择从读取速度更快的固态硬盘(闪存,磁阻内存或电阻内存)读取。通常固态硬盘(闪存,磁阻内存或电阻内存)的读取速度是机械硬盘的100倍以上。这种方法既提高的读取速度,又使得机械硬盘专注于写操作,从而带来系统写操作性能的提高,可大幅度提高系统的IO性能和响应速度。当镜像盘中的一个子盘出现故障,系统从其他子盘进行读写。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号