好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

高效实现ssd内部raid的构建方法、数据读写方法及装置的制作方法.docx

7页
  • 卖家[上传人]:ting****789
  • 文档编号:310349555
  • 上传时间:2022-06-14
  • 文档格式:DOCX
  • 文档大小:24.94KB
  • / 7 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 高效实现ssd内部raid的构建方法、数据读写方法及装置的制作方法专利名称:高效实现ssd内部raid的构建方法、数据读写方法及装置的制作方法技术领域:本发明涉及通信技术领域,尤其涉及一种高效实现SSD内部RAID的构建方法、数 据读写方法及装置背景技术:固态硬盘(Solid State Disk, SSD)是一种采用固态电子存储芯片阵列作为存 储器(比如NAND Flash),由控制器负责进行数据存取的硬盘设备SSD相对传统硬盘而言 具备了速度快、无噪音、低功耗等一系列优点,广泛用于军事、车载、航空等系列领域但在 实际使用中,作为存储介质的存储芯片常常会遇到芯片失效的问题,导致读出的数据与写 入的数据不一致即使在SSD中加入了错误检查和纠正技术(Error Correcting Code, ECC),也仍有较大概率出现上述问题如将存储系统中所广泛采用的独立冗余磁盘阵列技 术(Redundant Arrays of Independent Disks,RAID)应于 SSD 盘内,将会使 SSD 的可靠性 得到极大的提升RAID由多个磁盘聚合在一起,能够在提供大容量的同时,提供更高的访问速度、更 好的可用性、以及数据冗余保护。

      其中,RAID中的磁盘可称为该RAID的成员磁盘以下简 单介绍RAID的相关概念分区(Extent),是一个磁盘上的地址连续的存储块一个磁盘可以划分为多个分区,每 个分区可以大小相等分区有时也称为逻辑磁盘;分块(Str ip),将一个分区分成多个人小相等的、地址相邻的块,这些块称为分块; 分块通常被认为是条带的元素虚拟磁盘以分块为单位,将虚拟磁盘的地址映射到成 员磁盘的地址;条带(Stripe),是RAID的不同分区上的位置相关的分块(Strip)的集合,是组织不同 分区上条块的单位条带大小等于分块大小乘以成员磁盘数目RAID技术已广泛应用于数据存储的各种场合,其中使用最为广泛的是RAID5 RAID5每个条带含有I个分块的校验位,用于通过对条带中其他数据分块中的数据进行奇 偶校验以提供冗余保护当一块磁盘损坏时,可以通过校验位与其他磁盘中的数据进行 奇偶校验运算来重建丢失的数据奇偶校验数据是由每个条带中的数据位使用异或运算 (XOR)得出,这样在一个磁盘发生损坏时,可以通过条带中的数据位和奇偶校验位使用异或 运算来还原丢失的那部分数据我们知道,实现RAID5的时候,一般会区分大小写,以一个 条带由4个数据块和一个校验块购成举例。

      我们可以将一个条带中未更改的数据读出再与 新数据一起进行计算可以得出校验值;也可以将要更改的数据的旧数据和旧的校验值读出 进行计算得出新校验值这两种方式都可以,为提高计算效率在实现的时候一般判断更改 数据块的多少,改的数据块数目多的时候采用前者(大写)方式,改的数据块数目少时采用 后者(小写)方式现有技术中,条带大小的设置主要分为两种一种为固定的条带大小,在RAID阵 列创建时设定,以后就不能再更改;另一种为可手动更改整个RAID阵列的条带大小在这里,我们着重研究第一种条带大小固定的RAID阵列对于条带大小固定的RAID阵列,RAID创建过程中条带大小就已经设定好,整个阵列的条带就被固定,如由5个磁盘组成的一个RAID阵列,创建时设置了条带大小为32KB这里B表示字节)则条带中的每个分块大小为32/ (5-1) = 8KB图1为现有技术的固定条带大小阵列的写操作示意图,当业务I/O所对应的写数据大小为16KB时,该写数据被RAID 控制器分成两个8KB的分块数据块O和数据块I,分别覆盖条带I中的数据块L和数据块 A然而在写入条带I前,RAID控制器还需要将数据块B和数据块C的数据读取出来,通过以下公式计算出新的奇偶校验位P1’,来覆盖条带I中的Pl:P1’ =数据块O Φ数据块I Φ数据块B φ数据块C最后再将数据块O和数据块I和P1’写入条带I中对应的分块中。

      显然,该力一案存在以下缺点1、传统RAID设计中,将一个管理单元(SSD控制器通常将相邻的一个或多个逻辑地址作为一个单元进行管理,也即管理单元,同时根据存储芯片厂商的要求控制器将对应一个或多个逻辑地址大小的数据进行ECC数据保护,将其称为ECC单元,一个管理单元包含多个 ECC单元)视作一个条带宽度,一个条带大小则包含多个管理单元,在这种情况下,如主机进行的随机性的写操作,这样当新写入的数据大小不是整个条带大小时将会引起SSD多个附加的读操作和写操作,这就浪费了 SSD的宽带,从而引起SSD的随机写性能的下降 以及性磨损的增加;2、另外,在传统RAID设计中,由于将一个条带内的数据放在不相邻的位置,当因SSD上的数据出现不可纠正的错误而需要利用RAID进行数据恢复时,需将出错条带上的其他数据从多个存储芯片中读出,也即需对多个位置发起读操作,从而影响了这些位置上的正常的读操作,引起性能的下降;同时由于数据分散在多个位置中,也使得恢复数据的响应时间变长;可见,提供一种高效实现SSD内部RAID的构建方法,以减少数据读取/写操作,从而提闻了数据读与性能和效率具有一定的意义在现有技术中,通过动态调整条带大小以提高数据读写性能,例如,申请号为 200910082961. O的中国申请专利公开了一种独立磁盘冗余阵列的数据操作方法及装置。

      其中,所述方法包括基于RAID创建逻辑单元,将所述逻辑单元划分为多个粒度区间,并基于粒度区间进行条带化处理;在对所述逻辑单元进行写操作之前,判断将要写入的粒度区间的条带大小是否与条带参数的当前值相匹配如不匹配,则先根据所述条带参数的当前值调整将要写入的粒度区间的条带大小,再根据调整后的条带大小进行写操作;否则, 直接根据将要写入的粒度区间的条带大小进行写操作;其中,所述条带参数具有一初始值,且根据对所述逻辑单元写操作的写数据量进行更新虽然该方法在一定程度上可以提高RAID的数据读写性能,但是每次进行读写操作之前都需要对条带的大小进行调整,增加操作步骤且操作麻烦,降低了数据读写效率另外,申请号为US2007,0759,951的美国申请专利的说明书中公开了一种使用矩阵条带高速缓存器(MSC)来改进独立磁盘冗余阵列(RAID)系统的输入/输出(I/O)性能的方法,所述方法包括第一步骤,用于通过将执行对磁盘的写入的单元MSC,生成在行组合之前呈现的基本RXW矩阵,即读取和写入矩阵;第二步骤,用于通过行组合,根据在第一步骤中生成的行组合之前的RXW矩阵来生成RXW矩阵,即最终的读取和写入矩阵;以及第三步骤,基于第二步骤中生成的行组合后的RXW矩阵来执行读取、针对基于行的行组 合后的RXW矩阵来执行XOR操作、以及基于列的行组合后的RXW矩阵来执行写入。

      该方法 实现过程比较复杂,要改变现有闪存存储系统的编程/擦除程序而实现,不利于普及使用发明内容本发明的实施例提供一种高效实现SSD内部RAID的构建方法、数据读写方法及装 置,能够高效实现SSD内部RAID的构建,从而减少数据读取/写操作,提高了数据读写性 倉泛为达到上述目的,本发明的实施例采用如下技术方案一种高效实现SSD内部 RAID的构建方法,该方法包括步骤将RAID的条带大小设置为一个管理单元的大小,所述 管理单元包括相邻的一个或多个逻辑地址;将RAID的条带内的全部数据写入存储芯片的 物理地址连续相邻的区域内一种RAID控制器,包括RAID大小设置模块,用于将RAID的条带空间大小设置为一个管理单元的大小,所述管 理单元包括相邻的一个或多个逻辑地址;RAID数据配置模块,用于将RAID的条带内的全部数据写入存储芯片的物理地址连续 相邻的区域内一种RAID存储系统,包括多个存储芯片,每个存储芯片包括多个物理页;以及RAID控制器,该RAID控制器包括RAID大小设置模块,用于将RAID的条带空间大小设置为一个管理单元的大小,所述管 理单元包括相邻的一个或多个逻辑地址;RAID数据配置模块,用于将RAID的条带内的全部数据写入存储芯片的物理地址连续 相邻的区域内;以及RAID空间切分模块,用于将RAID的条带空间切分为多个与ECC单元长度一致的 条带单元,其中,每个ECC单元包括相邻的一个或多个逻辑地址。

      一种高效实现SSD内部RAID的数据写入的方法,包括步骤将接收的写I/o请求根据RAID的条带大小切分成至少一个条带命令,其中,所述RAID 的条带大小为一个管理单元的大小,而所述管理单元包括相邻的一个或多个逻辑地址;将每个条带命令所处的条带上的全部用户数据进行RAID校验计算,从而获得所述条 带命令的新的校验数据;将每个条带命令所处的条带上的全部用户数据以及校验数据分别一次写入存储芯片 的同一个物理页内一种高效实现SSD内部RAID的数据读取的方法,包括步骤将接收的读I/o请求根据RAID的条带大小切分成至少一个条带命令,其中,所述RAID 的条带大小为一个管理单元的大小,而所述管理单元包括相邻的一个或多个逻辑地址; 将存储芯片的同一个物理页内的且属于每个条带命令中的全部用户数据分别一次读出本发明实施例提供的一种高效实现SSD内部RAID的构建方法、数据读写方法及装置通过将一个RAID条带大小控制为一个管理单元的大小(主机访问磁盘的空间大小多是 管理单元大小的整倍数),且将一个RAID条带内的数据放在物理地址相邻的位置(例如,写 入NAND Flash的同一个物理页内)上,这样,可以减少SSD的写操作;另外,当某个ECC单 元数据出现不可恢复的错误时,只需发起一次读操作,只需经历一次存储芯片读命令的延 迟时间,将同一位置上的其它数据读出,即可恢复出错的数据。

      此时最大程度地减小了对 SSD中其它存储芯片的影响,从而保证了在出错时的读性能,同时也降低了对应出错读命令 的响应时间为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图;图1是现有技术中RAID5的数据存储示意图;图2是本发明实施例1中一种RAID存储系统的组成框图;图3是本发明实施例1中存储芯片的组成框图;图4是本发明实施例1中实现RAID构建后的数据分布结构示意图;图5是本发明实施例1中高效实现SSD内部RAID的数据写入的方法流程图;图6是本发明实施例1中高效实现SSD内部RAID的据读取的方法流程图;图7是本发明实施例2中一种RAID控制器的组成框图;图8是本发明实施例3中一种RAID控制器的组成框图;图9是本发明实施例4中一种高效实现SSD内部RAID的构建方法的流程图;图10是本发明实施例5中一种高效实现SSD内部RAID的构建方法的流程图具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方 案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部 的实施例。

      基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所 获得的所有其他实施例,都属于本发明保护的范围实施例1本发明实施例提供一种RAID存储系统,如图2所示,RAID存储系统100包括RAID控 制器110和存储设备阵列120,通常闪存存储系统100会与主机一起使用,并通过SAN (存储 区域网)连接,以使主机可将数据写入至RAID存储系统100或从RAID存储系统100中读 取数据在本实施例中,主机140可以是计算机、数字相机、摄影机、通信装置、音频播放器 或视频播放器等可存储数据的任意系统在本实施例中,所述RAID存储系统100为固态硬 盘(Solid State Drive, SDD);存储设备阵列120耦接RAID控制器110并且用以存储数据在本实施例中,存储设备 阵列120包括多个存储芯片122。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.