用于数据存储的系统和方法技术方案

技术编号:3083472 阅读:156 留言:0更新日期:2012-04-11 18:40
一种使用卷积编码来提供写入某些装置中的分带区数据的冗余度的独立装置冗余阵列。在卷积编码处理中不使用奇偶校验。格解码用于从RAID读取数据,并且根据最小而且最好是0汉明距离(用于选择通过格图的连接路径)从一个或多个发生故障的存储装置中重建丢失的编码数据。

【技术实现步骤摘要】

本专利技术涉及数据存储。
技术介绍

技术实现思路
公开用于在独立存储装置冗余阵列(RAID)中存储卷积编码的数据的方法、系统和计算机程序产品。在系统形式中,实施例包括多个存储装置和耦合到存储装置的格解码器(trellis decoder)。该解码器用于处理从存储装置接收的经编码的数据来产生解码的数据。编码数据包括由信息的当前和过去位的卷积产生的纠错编码数据。该系统用于确定是否存在发生故障的存储装置,并且响应于确定存在发生故障的存储装置,该系统分配用于存储重建数据的存储空间。重建数据包括预先存储在发生故障的存储装置上的编码数据。该系统处理解码的数据来产生重建数据,并且将重建数据存储在所分配的存储空间中。在某些实施例中,该系统还用于测量解码数据中的错误量,将错误量与用于多个存储装置中的每一个的出错限制相比较,并且响应于超过存储装置的出错限制的错误量,将该存储装置识别为发生故障的存储装置。在某些实施例中,系统还用于从多个存储装置接收自监测分析和报告技术信息,并且响应于自监测分析和指示存储装置发生故障的报告技术信息,将存储装置识别为发生故障的存储装置。在某些实施例中,编码数据包括一个或多个字,每个字包括n位,其中n大于0,从卷积编码器产生的每个字处理一部分信息,并且多个存储装置都不具有两个或多个相邻字或每个字的n位中的一个位以上。在某些实施例中,系统还包括元数据控制器,用于处理与编码数据相关联的元数据,元数据包括用于指定编码数据的存储位置和/或指定编码数据的编码类型的存储位置信息。附图说明图1是图解示例性存储区域网络(“SAN”)的各方面的方框图。图2图解示例性读命令。图3图解元数据结构。图4图解用于2位字输出编码器的、具有1位宽的带区(wide stripe)的卷积RAID。图5图解用于2位字输出编码器的、具有2位宽的带区的卷积RAID。图6图解用于从卷积编码的RAID读取编码数据的流程图。图7图解用于(2,1,3)码的格解码器。图8图解用于使用格解码器来检测丢失的编码数据的流程图。图9图解用于使用格解码器来重建丢失的编码数据和它表示的信息的流程图。图10图解用于(2,1,3)码以及丢失信息的重建的格解码器。图11图解用于(3,2,1)码的格解码器。图12图解用于(2,1,3)纠错码的编码器状态示意图。图13以表的形式图解图12的用于(2,1,3)纠错码的编码器状态示意图。图14图解具有两个输出、一个输入和三级延迟元件的(2,1,3)二进制卷积编码器电路。图15图解用于将重建的编码数据写入备用存储空间的示例性SCSI写命令。具体实施例方式参照附图,其中相同的部分用相同的附图标记表示,图1是图解示例性存储区域网络(SAN)10的各方面的方框图。SAN 10典型地设计成作为交换访问网络工作,其中使用交换机67创建交换网(fabric)66。在某些实施例中,使用运行在光纤信道(“FC”)物理层上的小型计算机系统接口(SCSI)协议来实现SAN 10。在其他实施例中,可以使用其他协议,例如Infiniband、FICON(光纤信道连接的一种特殊形式)、TCP/IP、以太网、千兆位以太网或iSCSI来实现SAN 10。交换机67具有主机61、62、63、64、65和控制器80两方的地址,因而主机61-65中的任一个可以互换地连接到任何控制器80。主机61、62、63、64、65分别使用I/O接口71、72、73、74、75连接到网66。I/O接口71-75可以是任何类型的I/O接口;例如,FC环、直接附接到网66或者主机61-65使用的一条或多条信号线,用于分别向/从网66传输信息。网66包括例如用于连接两个或多个计算机网络的一个或多个FC交换机67。在某些实施例中,FC交换机67是常规的路由器交换机。交换机67通过I/O接口79将主机61-65与控制器80互连。I/O接口79可以是任何类型的I/O接口,例如,光纤信道、Infiniband、千兆位以太网、以太网、TCP/IP、iSCSI、SCSI I/O接口或者由FC交换机67用来分别向/从控制器80并进而向多个存储装置91-93传输信息的一条或多条信号线。在图1所示的例子中,存储装置91-93和控制器80在RAID 90内操作。RAID 90还可以包括备用存储装置97,它在存储装置91-93中的任一个发生故障时可以与存储装置91-93交换。在RAID 90中可以包括除了存储装置91-93之外的额外存储装置。作为选择,存储装置91-93以及控制器80物理上可以彼此远离,从而一次灾难只能损害存储装置91-93中的一个。RAID 90典型地包括用于指导RAID操作的一个或多个控制器80。控制器80可以采用很多不同的形式,并且可以包括嵌入式系统、分配式控制系统、个人计算机、工作站等。图1示出了典型的RAID控制器80,具有处理器82、元数据控制器98、随机存取存储器(RAM)84、非易失性存储器83、专用电路81、编码数据接口85和主机信息接口89。处理器82、RAM84、非易失性存储器83、专用电路81、元数据控制器98、编码数据接口85和主机信息接口89通过总线99相互通信。作为选择,RAM 84和/或非易失性存储器83可以与专用电路81、编码数据接口85、元数据控制器98和主机信息接口89一起位于处理器82中。处理器82可以包括通用微处理器、定制处理器、FPGA、ASIC或其他形式的分立逻辑。RAM 84典型地用作主机61-65写或主机61-65读数据的高速缓存,用来保存计算出的数据、堆栈数据、可执行指令等。此外,RAM 84通常用于在数据存储在存储装置91-93之前临时存储来自编码器(即,编码器86)的编码数据87。编码器的示例是卷积编码器220(图14)。在某些实施例中,卷积编码器220可以位于专用电路81中。RAM 84通常用于在从存储装置91-93读取数据之后,在由解码器77解码该数据之前临时存储编码数据87。解码器77的示例是图7中的格解码器300和图11中的格解码器500。在某些实施例中,由软件、固件、专用逻辑及其它们的组合在处理器82中实现分配器101。此外,分配器101可以全部或部分位于控制器80之外,诸如在主机61-65之一的软件实现中。在一个或多个存储装置发生故障的情况下,分配器101将编码数据(即编码数据87)分配到RAM 84,和/或以可以从未发生故障的存储装置解码和/或重建编码数据和/或源信息的格直接分配到存储装置。在写处理期间,当分配器101将数据分配到存储装置(诸如装置91-93)时,根据元数据88完成分配,以便以后可以从该存储装置读取所分配的数据。在读取处理中,分配器101根据元数据88从存储装置(诸如装置91-93)取出数据,并且将编码数据87重新汇集到RAM 84。非易失性存储器83可以包括任何类型的非易失性存储器,如电可擦可编程只读存储器(EEPROM)、闪速可编程只读存储器(PROM)、电池备用RAM、硬盘驱动器或其他类似装置。非易失性存储器83典型地用于保存可执行固件和任何非易失性数据,例如元数据88。元数据88的细节将在下面参照图3进一步讨论。在某些实施例中,编码数据接口85包括允许处理器82与存储装置91-93本文档来自技高网...

【技术保护点】
一种系统,包括:多个存储装置;耦合到所述多个存储装置的格解码器,所述解码器用于处理从所述多个存储装置接收到的编码数据来产生解码数据,所述编码数据包括通过信息的当前和过去位的卷积产生的纠错编码数据;其中所述系统用于:确定是否存在发生故障的存储装置;响应于确定为存在发生故障的存储装置:分配用于存储重建数据的存储空间,所述重建数据包括预先存储在所述发生故障的存储装置上的编码数据;处理所述解码数据来产生所述重建数据;和将所述重建数据存储在所述分配的存储空间中。

【技术特征摘要】
US 2005-5-9 11/125,2881.一种系统,包括多个存储装置;耦合到所述多个存储装置的格解码器,所述解码器用于处理从所述多个存储装置接收到的编码数据来产生解码数据,所述编码数据包括通过信息的当前和过去位的卷积产生的纠错编码数据;其中所述系统用于确定是否存在发生故障的存储装置;响应于确定为存在发生故障的存储装置分配用于存储重建数据的存储空间,所述重建数据包括预先存储在所述发生故障的存储装置上的编码数据;处理所述解码数据来产生所述重建数据;和将所述重建数据存储在所述分配的存储空间中。2.如权利要求1所述的系统,其中所述系统还用于测量所述解码数据中错误量;将所述错误量与所述多个存储装置的出错限制比较;和响应于所述错误量超过存储装置的所述出错限制,将所述存储装置识别为发生故障的存储装置。3.如权利要求1所述的系统,其中所述系统还用于从所述多个存储装置接收自监测分析和报告技术信息;和响应于所述自监测分析和指示存储装置发生故障的报告技术信息,将所述存储装置识别为所述发生故障的存储装置。4.如权利要求1所述的系统,其中所述编码数据包括一个或多个字,每个所述字包括n位,其中n大于0,从卷积编码器产生的每个所述字处理一部分所述信息,并且所述多个存储装置都不具有两个或多个相邻字。5.如权利要求1所述的系统,其中所述编码数据包括一个或多个字,每个所述字包括n位,其中n大于0,从卷积编码器产生的每个所述字处理一部分所述信息,并且所述多个存储装置都不具有多于每个所述字的n位中的一位。6.如权利要求1所述的系统,还包括元数据控制器,用于处理与所述编码数据相关联的元数据,所述元数据包括用于指定所述编码数据的存储位置的位置信息。7.如权利要求1所述的系统,还包括元数据控制器,用于处理与所述编码数据相关联的元数据,所述元数据包括用于指定编码数据的编码类型的编码器信息。8.一种存储区域网络,包括至少一个主机;多个存储装置;耦合到所述多个存储装置的格解码器,所述解码器用于处理从所述多个存储装置接收到的编码数据来产生解码的数据,所述编码数据包括通过信息的当前和过去位的卷积产生的纠错编码数据;其中所述系统用于确定是否存在发生故障的存储装置;并且响应于确定为存在发生故障的存储装置分配用于存储重建数据的存储空间,所述重建数据包括预先存储在所述发生故障的存储装置上的编码数据;处理所述解码的数据来产生所述重建数据;和将所述重建数据存储在所述分配的存储空间中。9.如权利要求8所述的存储区域网络,其中所述网络还用于测量所述解码数据中错误量;将所述错误量与所述多个存储装置的每一个的出错限制比较;和响应于所述错误量超过存储装置的所述出错限制,将所述存...

【专利技术属性】
技术研发人员:丹尼尔J威纳尔斯基克雷格A克莱因尼尔斯豪斯坦
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1