基于ssd的raid系统中的校验数据的去重的制作方法_3

文档序号:9816378阅读:来源:国知局
7d。此外,在散列表143中示出了散列值209a-209d。另外,散列 表示出了指针158a,158d和211a。更特别地,利用图2e作为示例,来自新校验数据205的块 207a和207c在更新后的校验数据203中分别由块156d和156a表示。因此,对应于块207a和 207c的指针可更新以分别对应于来自块156d和156a的指针(例如,158d和158a)。由于两个 块207b和207d均可由相同块(例如,207b或207d)表示在更新后的校验数据203中,所以它们 的指针(例如,211a)可以相同。在一些示例中,校验数据保持模块142可以通过覆写当前校 验数据155的块156a-156d中的一个或多个(例如,如果块156a-156d不是块207a-207d的重 复,等等)来将新校验数据205的块207a-207d中的一个或多个写入校验数据存储部152中, 而生成更新后的校验数据203。在一些示例中,校验数据保持模块142可以将块207a-207d中 的一个或多个写入校验数据存储部152中的未使用空间以生成更新后校验数据203。
[0044] 图3示出了依照本公开的至少一些实施例布置的为RAID保持校验数据的示例方法 的流程图。在说明书的一些部分中,可以参考图1&、113、1(:、2 &、213、2(3、2(1和/或2(1中描绘的系 统100的元件来描述图3以及本文其它地方所示的方法的示例性的实现方式。然而,所描述 的实施例不限于该描绘。更具体地,图1&、113、1〇、2 &、213、2(3、2(1和/或26中所描绘的一些元件 可从此处详述的方法的一些实现中省去。此外,图1&、113、1(:、23、213、2(3、2(1和/或26中未示出 的其它元件可用于实现本文详述的示例的方法。
[0045] 此外,图3采用了框图来说明其中详述的示例性方法。这些框图可以阐述被描述为 处理步骤、功能操作、事件和/或行为等的各种功能框或动作,并且可通过硬件、软件和/或 固件来执行。可以在各种实现方式中实践所详述的功能框的若干替代方案。例如,图中未示 出的中间动作和/或图中未示出的附加动作可被采样和/或图中实现的一些动作可去除、修 改或拆分成多个动作。在一些示例中,一个图中所示的动作可利用关于另一图所论述的技 术来操作。另外,在一些示例中,这些图中所示的动作可利用并行处理技术来操作。可以在 不偏离权利要求主题的范围的情况下做出上文描述的以及其它未描述的重新布置、替代、 变化、修改等。
[0046] 图3示出了依照本公开的各个实施例布置的为RAID设备保持校验数据的示例方法 300。方法300可开始于框310"接收将数据单元写入RAID的数据存储部中的请求",RAID控制 器可以包括被配置为接收待写入RAID设备的数据的逻辑和/或特征。例如,RAID控制器140 可以从计算设备110接收待写入RAID设备120的数据。一般地,在框310中,RAID控制器140可 以(例如,经由连接130)从计算设备110接收数据。
[0047] 处理可以从框310继续到框320"至少部分地基于数据单元与当前数据单元之间的 异或(X0R)运算来确定临时数据",RAID控制器可以包括被配置为基于数据单元与当前数据 单元之间的X0R运算来确定临时数据的逻辑和/或特征。例如,RAID控制器140的校验数据保 持模块142可以基于当前数据153与新数据201之间的X0R运算来确定临时数据。
[0048] 处理可以从框320继续到框330,"至少部分地基于临时数据与当前校验数据之间 的X0R运算来确定新校验数据",RAID控制器可以包括被配置为基于临时数据与当前校验数 据之间的X0R运算来确定新校验数据的逻辑和/或特征。例如,RAID控制器140的校验数据保 持模块142可以基于临时数据与当前校验数据155之间的X0R来确定新校验数据205。
[0049] 处理可以从框330继续到框340,"对新校验数据去重以判定新校验数据的任何部 分是否是当前校验数据的部分的重复",RAID控制器可以包括被配置为对新校验数据去重 以判定新校验数据的部分是否是当前校验数据的部分的重复的逻辑和/或特征。例如,RAID 控制器140的校验数据保持模块142可以对新校验数据205去重。一般地,在框340中,校验数 据保持模块142可以将新校验数据205拆分成块207a-207d且生成每个块207a-207d的散列 值209a-209d。然后,RAID控制器140的校验数据保持模块142可以将散列值209a-209d与存 储在散列表143中的散列值157a-157d进行比较以判定新校验数据205的任何块207a-207d 是否是块156a-156d的重复。在一些示例中,还可以处理散列值209a-209d以判定207a-207d 的任何块是否是另外的207a-207d块的重复。
[0050]处理可以从框340继续到框350,"将新校验数据的被判定为不是当前校验数据的 部分的重复的部分写入RAID的校验存储部",RAID控制器可以包括被配置为将新校验数据 的被判定为不是当前校验数据的一个或多个部分的重复的部分写入RAID的校验数据存储 部的逻辑和/或特征。例如,RAID控制器140的校验数据保持模块142可以将被判定为不是一 个或多个块156a-156d的重复的一个或多个块207a-207d写入校验数据存储部152。
[0051]另外,在框340和/或框350中,RAID控制器可以包括被配置为部分地基于框340的 去重来更新散列表的逻辑和/或特征。例如,校验数据保持模块142可以基于对新校验数据 205去重来更新散列表143。
[0052]在一个实施例中,关于图3以及本文其它地方所描述的方法可实现为能够在任何 适合的计算系统上执行的计算机程序产品,或类似物。可以彩照图4以及本文其它地方来描 述示例的计算机程序产品。
[0053]图4示出了依照本公开的至少一些实施例布置的示例的计算机程序产品400。计算 机程序产品400可以包括其中存储有指令的机器可读非暂态介质,响应于执行(例如,通过 处理器),指令使RAID控制器模块将校验数据保持在RAID中,如本文所论述的。计算机程序 产品400可以包括信号承载介质402。信号承载介质402可以包括一个以上的机器可读指令 404,响应于由一个或多个处理器执行,所述机器可读指令可以可操作地使计算设备能够提 供本文所描述的特征。在各个示例中,本文所论述的设备可使用一些或全部机器可读指令。 [0054]在一些示例中,机器可读指令404可以包括检测将数据单元写入RAID的数据存储 部的请求,RAID具有存储在数据存储部中的当前数据单元并且具有存储在RAID的校验数据 存储部中的当前校验数据。在一些示例中,机器可读指令404可以包括:响应于写入数据单 元的请求,至少部分地基于数据单元与当前数据单元之间的异或(X0R)运算来确定临时数 据。在一些示例中,机器可读指令404可以包括至少部分地基于临时数据与当前校验数据之 间的X0R运算来确定新校验数据。在一些示例中,机器可读指令404可以包括对新校验数据 去重以判定新校验数据的任何部分是否是当前校验数据的部分的重复。在一些示例中,机 器可读指令404可以包括将新校验数据的被判定为不是当前校验数据的部分的重复的部分 写入RAID的校验数据存储部。
[0055]在一些实现方式中,信号承载介质402可以包含计算机可读介质406,诸如但不限 于硬盘驱动器、压缩盘(CD)、数字多功能盘(DVD)、数字带、存储器等。在一些实施方式中,信 号承载介质402可以包含可记录介质608,诸如但不限于存储器、读/写(R/W)⑶、R/W DVD等。 在一些实施方式中,信号承载介质402可以包含通信介质410,诸如但不限于数字和/或模拟 通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路等)。在一些示例中,信号承 载介质402可以涵盖机器可读非暂态介质。
[0056] -般地,结合图3以及本文其它地方所描述的方法可实现在任何适合的服务器和/ 或计算系统和/或其它电子设备中。结合图5以及本文其它地方描述了示例的系统。在一些 示例中,如本文论述的RAID设备或其它系统可被配置成为RAID保持校验数据。
[0057]图5是示出依照本公开的至少一些实施例布置的示例的计算设备700的框图。在各 个示例中,计算设备500可以被配置成为RAID保持校验数据,如本文所论述的。在基本配置 501的一个示例中,计算设备500可以包括一个以上的处理器510以及系统存储器520。存储 器总线530能够用于一个或多个处理器510与系统存储器520之间通信。
[0058] 根据所需的配置,一个或多个处理器510可以是任意类型,包括但不限于微处理器 (μρ)、微控制器(yC)、数字信号处理器(DSP)或其任意组合。一个或多个处理器510可以包括 诸如级别1高速缓冲器511和级别2高速缓冲器512的一级或多级高速缓冲器、处理器核513 等和寄存器514。处理器核513可以包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理 核(DSP Core)或其任意组合。存储器控制器515还能够与一个或多个处理器510-起使用, 或者在一些实现中,存储器控制器515可以是处理器510的内部部件。
[0059] 根据所需的配置,系统存储器520可以是任意类型,包括但不限于易失性存储器 (诸如RAM)、非易失性存储器(诸如R0M、闪速存储器等)或其任意组合。系统存储器520可以 包括操作系统521、一个或多个应用522以及程序数据524。一个或多个应用522可以包括校 验数据保持应用523,其可布置成执行如本文所描述的功能、动作和/或操作,包括参考如本 文的图1-4所描述的功能框、动作和/或操作中的任一个。程序数据524可以包括与校验数据 保持应用523-起使用的校验和/或散列数据525。在一些示例性的实施例中,一个或多个应 用522可以布置成在操作系统521上操作程序数据524。该所描述的基本配置501通过内虚线 框内的那些组件图示于图5中。
[0060] 计算设备500可具有附加的特征或功能以及附加的接口以便于基本配置501与任 何所需的设备和接口之间的通信。例如,总线/接口控制器540可用于利于基本配置501与一 个或多个数据存储设备550之间经由存储接口总线541的通信。一个或多个数据存储设备 550可以是可移除存储设备551、非可移除存储设备552或者其组合。可移除存储设备和非可 移除存储设备的示例包括诸如软盘驱动器和硬盘驱动器(HDD)的磁盘设备、诸如压缩盘 (CD)驱动器或数字多功能盘(DVD)驱动器的光盘驱动器、固态驱动器(SSD)和磁带驱动器, 仅列举了几个。示例的计算机存储介质可以包括以用于诸如计算机可读指令、数据结构、程 序模块或其它数据的信息的存储的任何方法或技术实现的易失性和非易失性的介质以及 可移除和非可移除的介质。
[0061 ]系统存储器520、可移除存储设备551和非可移除存储设备552是计算机存储介质 的示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪速存储器或其它存储器技术、 CD-ROM、数字多功能盘(DVD)或其它光学存
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1