用于跨存储设备写入数据的方法和系统的制作方法

文档序号:8269678阅读:256来源:国知局
用于跨存储设备写入数据的方法和系统的制作方法
【技术领域】
[0001]本发明涉及计算机科学领域,并且更具体地涉及一种用于在纠删码系统中跨存储设备写入数据的计算机实现的方法和系统程序。
【背景技术】
[0002]现今,使用RAID (独立磁盘冗余阵列)的数据存储系统采用硬件RAID控制器,该硬件RAID控制器计算一组用户数据块的奇偶校验、并跨越给定的一组存储设备存储所述奇偶校验。
[0003]研究团体已经提出若干种存储系统,例如在以下专利或专利申请中提出:US2012/0266011A1、 US2012/0311255A1、 US2012/0030425A1、 US8166370B1、US2012/0278689AU US2013/0007572AU US7346831B1 ;并且还在以下文章中提出:
[0004]-Bin Fan Wittawat Tantisiriroj Lin Xiao Garth Gibson.DISKREDUCE:REPLICAT1N AS A PRELUDE TO ERASURE CODING IN DATAINTENSIVE SCALABLECOMPUTING ;
[0005]-Vladimir Sapunenk0.DATA PROTECT1N TECHNOLOGIES:WHAT COMES AFTERRAID ? 2012 年春季 HEPiX 研讨会,23-27,2012 年 4 月;
[0006]-Ping-Hsun Hsieh Ing-Yi Chen ;Yu_Ting Lin ;Sy-Yen Ku0.AN XOR BASEDREED-S0L0M0N ALGORITHM FOR ADVANCED RAID SYSTEMS.发表于 Defect and FaultTolerance in VLSI Systems, 10-13,2004 年 10 月,p.165-172。
[0007]随着系统向外扩展,许多RAID控制器被使用,其中每个RAID控制器被指派给给定的一组存储设备。通过设计,这样的系统具有数据和奇偶校验的成簇布置。
[0008]使用RAID的系统是使用纠删码的更大一类系统的一部分。对于纠删码系统,近来的研究已经表明:当纠删码中的奇偶校验的数量大于一(例如,RAID-6、三路复制)时,除了成簇以外的布置方案(例如,分簇)在可靠性方面具有显著优势。诸如分簇布置之类的布置方案已经在用于各种纠删码的软件中被实现。然而,当系统尺寸扩展或当工作负荷增加时,这样的软件实现可能遭受严重的性能退化。
[0009]在此背景下,仍然需要用于在纠删码系统中跨存储设备处理数据的改进的解决方案。

【发明内容】

[0010]根据一个方面,本发明被实现为一种用于在纠删码系统中跨存储设备写入数据的方法。该方法包括:从第一数据计算第一数据块和第一奇偶校验块,所述第一数据将被存储在系统中,其中所述计算由一个或多个控制器执行,所述控制器中的每一个是独立磁盘冗余阵列控制器;以及通过使用一个或多个布置节点来提供计算出的第一数据块和第一奇偶校验块在存储设备中的位置,所述布置节点被配置成管理数据块和奇偶校验块在所述存储设备上的布置方案。
[0011]在示例中,该方法可以包括下述中的一个或多个:
[0012]-根据由一个或多个控制器使用的纠删码,选择由一个或多个布置节点管理的布置方案;
[0013]-提供计算出的第一数据块和第一奇偶校验块的位置还包括将由一个或多个布置节点提供的位置存储在布置元数据中,该布置元数据对于每个数据块和每个奇偶校验块包括系统中的块的逻辑地址空间与存储设备中的块的物理地址空间之间的映射。
[0014]-将第一数据块和第一奇偶校验块发送到一个或多个布置节点,并将所发送的第一数据块和第一奇偶校验块存储在识别出的位置上;
[0015]-将被存储的第二数据是已经存储的第一数据的更新,还包括:由一个或多个控制器向一个或多个布置节点请求将被更新的第一数据块和第一奇偶校验块,向一个或多个控制器提供所请求的将被更新的第一数据块和第一奇偶校验块,并且通过根据将被更新的第二数据修改所提供的第一数据块和第一奇偶校验块,来计算第二数据块和第二奇偶校验块;
[0016]-将计算出的第二数据块和第二奇偶校验块发送到一个或多个布置节点,并将第二数据块和第二奇偶校验块存储在识别出的位置上;
[0017]-在发送计算出的第二数据块和第二奇偶校验块之前:
[0018]由一个或多个布置节点识别计算出的第二数据块和第二奇偶校验块在存储系统中的位置;
[0019]-检测一个或多个存储设备发生故障;由一个或多个布置节点启动存储在发生故障的一个或多个存储设备上的数据块和奇偶校验块的重建;
[0020]-启动数据块和奇偶校验块的重建包括:由一个或多个布置节点识别幸存的数据块和奇偶校验块的位置;由一个或多个布置节点取回存储在识别出的位置处的幸存的数据块和奇偶校验块;将取回的幸存的数据块和奇偶校验块发送到一个或多个控制器;从取回的幸存的数据块和奇偶校验块重建丢失的数据块和丢失的奇偶校验块;
[0021]根据另一方面,本发明被实现为用于跨存储设备写入数据的纠删码系统,该系统包括一个或多个独立磁盘冗余阵列控制器和一个或多个布置节点,所述布置节点被配置成管理数据块和奇偶校验块在所述存储设备上的布置方案,所述系统适于执行上述方法。
[0022]在示例中,该系统可以包括下述中的一个或多个:
[0023]-一个或多个布置节点管理分簇布置方案;
[0024]-该系统包括实现不同的纠删码的至少两个控制器;
[0025]-该系统运行包括用于实现一个或多个布置节点的代码模块的计算机程序。
【附图说明】
[0026]现在将要通过非限制性示例并且参考附图描述体现本发明的系统和过程,在附图中:
[0027]图1示出代表该方法的流程图;
[0028]图2和3示出代表该系统的示例的流程图;
[0029]图4图解成簇和分簇布置的示例;
[0030]图5图解执行该方法的系统的示例;并且
[0031]图6示出计算机系统的示例。
【具体实施方式】
[0032]参考图1的流程图,其示出一种用于在纠删码系统中跨存储设备写入数据的方法。该方法包括:从第一数据计算第一数据块和第一奇偶校验块,所述第一数据将被存储在系统中,其中所述计算由一个或多个控制器执行,所述控制器中的每一个是独立磁盘冗余阵列(RAID)控制器。该方法还包括:通过使用一个或多个布置节点来提供所计算的第一数据块和第一奇偶校验块在存储设备中的位置,所述布置节点被配置成管理数据块和奇偶校验块在所述存储设备上的布置方案。布置方案可以是分簇布置方案。
[0033]这样的方法改进纠删码系统中的数据处理的性能而无需高开发成本。值得注意的是,所提出的方法结合软件和硬件实现的优点、并避免两者面对的缺点。的确,本发明使用RAID控制器用于从数据计算数据块和奇偶校验块(即,实现纠删码),并且使用一个或多个布置节点来根据给定布置方案将RAID控制器的输出路由至系统中的不同存储设备。通过这种方式,纠删码系统中的数据的写入不限于在硬件中实现的给定纠删码或布置方案,因为一旦硬件被实现,那么改变纠删码或布置方案是不可行的。以其他方式表述,使用硬件RAID控制器确保在对存储系统写入和更新期间极其快速的奇偶校验计算,并且通过使用布置节点来路由RAID控制器的输出,可以在软件中进行数据和奇偶校验块的布置。这有利地允许优化数据和奇偶校验块跨越系统中所有存储设备的布置以平衡成本、性能和可靠性。
[0034]在步骤SlO处,由计算机客户端发送用于在纠删码系统中存储数据的写入请求。由至少一个RAID控制器接收该写入请求。术语RAID控制器意指管理物理存储设备(例如,磁盘驱动器)并将它们作为逻辑
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1