用于存储系统中服务感知的奇偶校验放置的方法和系统的制作方法

文档序号:8487699阅读:364来源:国知局
用于存储系统中服务感知的奇偶校验放置的方法和系统的制作方法
【专利说明】
【背景技术】
[0001]为了防止存储系统中的数据潜在的损失可能,执行复制方案常常是有利的。在写入数据和奇偶校验值时,当前的复制方案不考虑存储系统的硬件服务调度。

【发明内容】

[0002]一般地,在一个方面中,本发明涉及一种非暂时性计算机可读介质,包括当由处理器执行时执行方法的指令,该方法包括:接收指定目标存储设备(SD)的服务通知,其中,目标SD是多个SD中的一个;在接收服务通知之后操作:接收将数据写入到永久存储器的请求,其中,永久存储器包括多个SD;响应于该请求,将独立磁盘冗余阵列(RAID)条带写入到永久存储器,其中,RAID条带包括第一数据块和第一奇偶校验块,其中,第一数据块中的至少一个包括数据的一部分,其中第一奇偶校验块包括通过使用第一数据块计算的奇偶校验值,并且,其中第一奇偶校验块存储于目标SD上,并且,其中第一数据块均不存储于目标SD上;执行改进的垃圾收集操作,其中,改进的垃圾收集操作包括:标识永久存储器中的活RAID条带,其中,活RAID条带包括第二数据块和第二奇偶校验块;将新的RAID条带写入到永久存储器中的新位置,其中,新的RAID条带包括第三奇偶校验块和第三数据块,其中,第三数据块中的至少一个存储来自活RAID条带的数据的一部分的副本,其中第三奇偶校验块存储于目标SD上,并且,其中第三数据块均不存储于目标SD上;以及,当完成改进的垃圾收集操作时,发出去除通知,其中,去除通知指示可从永久存储器去除目标SD。
[0003]一般地,在一个方面中,本发明涉及一种系统。该系统包括:包括多个存储设备(SD)的存储阵列;和与存储阵列可操作地连接并且被配置为完成以下操作的存储控制器:标识要去除的该目标SD,在标识作为多个SD中的一个的目标SD之后,完成以下操作:接收将数据写入到存储阵列的请求;响应于该请求,将独立磁盘冗余阵列(RAID)条带写入到永久存储器,其中,RAID条带包括数据块和第一奇偶校验块,其中,数据块中的至少一个包括数据的一部分,第一奇偶校验块包括通过使用数据块计算的奇偶校验值,并且其中,第一奇偶校验块存储于目标SD上,并且其中,数据块均不存储于目标SD上;执行改进的垃圾收集操作,其中,改进的垃圾收集操作包括:标识永久存储器中的活RAID条带,其中,活RAID条带包括第二数据块和第二奇偶校验块;将新的RAID条带写入到永久存储器中的新位置,其中,新的RAID条带包括第三奇偶校验块和第三数据块,其中,第三数据块中的至少一个存储来自活RAID条带的数据的一部分的副本,其中第三奇偶校验块存储于目标SD上,并且其中,第三数据块均不存储于目标SD上;和完成改进的垃圾收集操作时,发出去除通知,其中,去除通知指示可从存储阵列去除目标SD。
[0004]一般地,在一个方面中,本发明涉及一种非暂时性计算机可读介质,包括当由处理器执行时执行方法的指令,该方法包括:接收指定目标存储设备(SD)的服务通知,其中,目标SD是多个SD中的一个;在接收服务通知之后,完成以下操作:接收将数据写入到永久存储器的请求,其中,永久存储器包括多个SD ;响应于该请求,将独立磁盘冗余阵列(RAID)条带写入到永久存储器,其中,RAID条带包括数据块和第一奇偶校验块,其中,数据块中的至少一个包括数据的一部分,其中第一奇偶校验块包括通过使用数据块计算的奇偶校验值,并且其中,第一奇偶校验块存储于目标SD上,并且其中,数据块均不存储于目标SD上;执行改进的垃圾收集操作,其中,改进的垃圾收集操作包括:将新的RAID条带写入到永久存储器中的新位置,其中,新的RAID条带包括来自存储阵列中的第一活RAID条带的第一数据的副本和来自第二活RAID条带的第二数据的副本,并且其中,新的RAID条带包括位于目标SD上的第二奇偶校验块;和当完成改进的垃圾收集操作时,发出去除通知,其中,去除通知指示可从永久存储器去除目标SD。
[0005]本发明的其它方面将通过以下内容清楚描述。
【附图说明】
[0006]图1表不根据本发明的一个实施例的系统。
[0007]图2表示根据本发明的一个或多个实施例的RAID条带。
[0008]图3表示根据本发明的一个实施例的数据结构。
[0009]图4表示根据本发明的一个或多个实施例的实现RAID写入操作的流程图。
[0010]图5表示根据本发明的一个或多个实施例的用于实现服务感知奇偶校验放置的流程图。
[0011]图6表示根据本发明的一个或多个实施例的用于实现改进的RAID写入操作的流程图。
[0012]图7表示根据本发明的一个或多个实施例的用于实现改进的垃圾收集操作的流程图。
[0013]图8A-8C表不根据本发明的一个或多个实施例的例子。
[0014]图9A-9B表示根据本发明的一个或多个实施例的用于实现改进的垃圾收集操作的流程图。
[0015]图10A-10B表不根据本发明的一个或多个实施例的例子。
【具体实施方式】
[0016]现在参照附图详细描述本发明的具体实施例。在本发明的实施例的以下详细描述中,为了使得能够更彻底地理解本发明,阐述大量的特定细节。但是,本领域技术人员显然可能在没有这些具体细节的情况下实施本发明。在其它情况下,为了避免不必要地使描述复杂化,没有描述公知的特征。
[0017]在图1?1B的以下描述中,在本发明的各种实施例中针对附图描述的任何组件可以与针对任何其它附图描述的一个或多个名称类似的组件等同。为了简洁起见,对这些组件的描述并不针对每个附图进行重复。因此,各附图的组件的每一个实施例在此结合作为参考,并且被假定为可选地存在于具有一个或多个名称类似的组件的每一个其它附图中。另外,根据本发明的各种实施例,附图的组件的任何描述要被解释为可选实施例,该可选实施例的实施可以附加于、结合于或者替代针对其他任意附图中相应的名称类似组件所描述的实施例。
[0018]一般地,本发明的实施例涉及通过使用RAID方案在存储阵列中存储数据。具体而言,RAID方案使用关于要在确定新的和活RAID条带的RAID条带几何结构时被去除和/或替代的存储设备的信息。
[0019]对于本发明,这里使用的术语“RAID”指的是“独立磁盘冗余阵列”。虽然“RAID”指的是独立磁盘的任何阵列,但可通过使用任何类型的永久性存储设备实现本发明的实施例。
[0020]图1表不根据本发明的一个实施例的系统。如图1所不,系统包括一个或多个客户机(100A、100M)、RAID控制器(104)、存储器(106)、可选的现场可编程门阵列(FPGA) (102)和存储阵列(108)。
[0021]在本发明的一个实施例中,客户机(100A、100M)是指包括向RAID控制器(104)发出读取请求或写入请求功能的任何系统或任何在这样的系统上执行的处理。在本发明的一个实施例中,每个客户机(100A、100M)可包括处理器(未示出)、存储器(未示出)和永久存储器(未示出)。在本发明的一个实施例中,RAID控制器(104)被配置为实现RAID方案,该RAID方案包括以与在图4?6中描述的实施例一致的方式将数据写入到存储阵列(108),和根据在图7和图9A?9B中描述的实施例执行垃圾收集操作。进一步地,RAID控制器包括从存储阵列(108)读取数据(包括重构数据)的功能。在本发明的一个实施例中,RAID控制器(104)包括被配置为执行用于实现本发明的一个或多个实施例的指令的处理器,这里,指令存储于位于RAID控制器(104)内或者与其可操作地连接的非暂时性计算机可读介质(未示出)上。作为替代方案,可通过使用硬件实现RAID控制器(104)。本领域技术人员可以理解,可通过使用软件和/或硬件的任意组合实现RAID控制器(104)。
[0022]在本发明的一个实施例中,RAID控制器(104)与存储器(106)可操作地连接。存储器(106)可以是任何易失性存储器,包括但不限于动态随机存储器(DRAM)、同步DRAM、SDRSDRAM和DDR SDRAM。在本发明的一个实施例中,存储器(106)被配置为在各种数据(包括奇偶校验数据)被存储于存储阵列中之前暂时存储这些数据。
[0023]在本发明的一个实施例中,FPGA(102)(如果存在的话)包括出于在存储阵列(108)中存储数据的目的计算奇偶校验值(例如,P奇偶校验值、Q奇偶校验值)的功能,和/或执行恢复通过使用RAID方案存储的损坏数据所需要的各种计算的功能。根据本发明的一个或多个实施例,RAID控制器(104)可使用FPGA(102)以卸载各种数据的处理。
[0024]在本发
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1