一种磁盘阵列单盘恢复的缓存方法及系统技术方案

技术编号:14355276 阅读:121 留言:0更新日期:2017-01-08 22:33
本发明专利技术公开了一种磁盘阵列单盘恢复的缓存方法及系统,该方法包括:根据数据块是否已经被应用读取到缓存中,为数据块定义不同的优先级;为每一个出错的数据块枚举出所有可行的恢复方法,针对所有可行的恢复方法,结合恢复方法之间的关系,通过迪杰斯特拉遍历算法进行遍历,选取出I/O最小的、符合要求的恢复方法;针对所选择的恢复方法,选取其中负载相对均衡的方法作为最终采用的磁盘阵列单盘恢复的纠删码恢复方法;根据纠删码恢复方法的读取次数为数据块定义优先级,采用在缓存中优先替换优先级低的数据块的缓存替换方法,通过本发明专利技术,解决了现有技术中I/O较大,速度较慢,缓存命中率低,影响使用效率的问题。

【技术实现步骤摘要】

本专利技术涉及计算机存储领域,特别是涉及一种磁盘阵列单盘恢复的缓存方法。
技术介绍
分布式存储系统,就是把数据分散的存储在多地区的多个设备上。传统的存储系统采用集中式的存储方案,将所有的数据存储在同一个存储服务器上,从而成为整个系统功能提升的瓶颈,也容易产生可靠性和安全性的问题。伴随着存储需求的提升,这种问题愈发突显。分布式存储系统利用可扩展的存储结构,将数据存储在不同的存储服务器上,提高了数据的可靠性、安全性,并且容易扩展。为实现分布式存储系统中数据的可靠性,系统需要从存储阵列中恢复出出错的数据。一般通过在编码时加入冗余校验码的方法来达到容错和纠错的目标,这种方法称为纠删码(ErasureCodes)。常用的纠删码有两种,一种是Reed-Solomon纠删码,一种是XOR编码。纠删码需要从k个块中生成包含n个块的纠删码,从而允许从n个块的子集中恢复k个块。磁盘阵列单盘恢复的情形,就是针对一个磁盘出错的情形进行快速的恢复。伴随着存储需求的增加,如何快速恢复出错的数据块、提高恢复过程中缓存的命中率已经成为人们关注的焦点。
技术实现思路
为克服上述现有技术存在的不足,本专利技术之目的在于提供一种磁盘阵列单盘恢复的缓存方法,其采用纠删码的磁盘阵列快速进行单盘恢复,以解决现有的恢复方法中I/O较大,速度较慢,缓存命中率低,影响使用效率的问题。为达上述及其它目的,本专利技术提出一种磁盘阵列单盘恢复的缓存方法,包括如下步骤:步骤一,根据数据块是否已经被应用读取到缓存中,为数据块定义不同的优先级;步骤二,为每一个出错的数据块枚举出所有可行的恢复方法,针对所有可行的恢复方法,结合恢复方法之间的关系,通过迪杰斯特拉遍历算法进行遍历,选取出I/O最小的、符合要求的恢复方法;步骤三,针对所选择的恢复方法,选取其中负载相对均衡的方法作为最终采用的磁盘阵列单盘恢复的纠删码恢复方法。步骤四,根据纠删码恢复方法的读取次数为数据块定义优先级,采用在缓存中优先替换优先级低的数据块的缓存替换方法。进一步地,于步骤一中,为在缓存中的数据块赋予较高的优先级,为不在缓存中的数据块赋予较低的优先级。进一步地,步骤二包括:通过迪杰斯特拉方法对所有可行的恢复方法进行遍历,建立一个初节点表示遍历的最初状态;循环查询恢复一个出错的数据块可能需要的读取的数据块个数作为节点之间连线的权重;如果需要读取的数据块在缓存中,此数据块的读取将不参与权重的计算,如果需要读取的数据块不在缓存中,此数据块的读取将参与权重的计算;选取出能够有效恢复所有出错的数据块又能将遍历的权重降到最低的方法。进一步地,于步骤二中,在迪杰斯特拉算法遍历过程中,结合已经选取的有效方法特征,及时删除无效方法。进一步地,步骤三包括:分别计算每一块磁盘上有效I/O的数量;对阵列中每一块磁盘上的I/O进行对比,选取其中I/O最大的磁盘;所有方法中I/O最大的磁盘上的I/O数目最小的方法被选作是恢复的最优方法。进一步地,于步骤三中,针对选取的负载相对均衡的磁盘阵列单盘恢复情形下的最优方法,根据数据块被访问的次数设置在缓存中的优先级。进一步地,步骤四进一步包括:根据优先级将数据块放入缓存中不同的队列中去,同一个队列中优先级相同的数据块根据LRU算法进行排列,最近最久未被访问的数据块将优先被替换;优先级高的队列中的数据块如被访问,则添加到优先级低一级的数据块当中,以此类推;当缓存中空间不够时,最低优先级队列中的最近最久未被访问的数据块将被替换,新加入的数据块根据其优先级添加到相应的队列当中。为达到上述目的,本专利技术还提供一种磁盘阵列单盘恢复的缓存系统,包括:优先级定义模块,根据数据块是否已经被应用读取到缓存中,为数据块定义不同的优先级;遍历模块,为每个出错的数据块枚举出所有可行的恢复方法,针对所有可行的恢复方法,结合恢复方法之间的关系,通过迪杰斯特拉遍历算法进行遍历,选取出I/O最小的、符合要求的恢复方法;恢复方法选取模块,针对所选择的恢复方法,选取其中负载相对均衡的方法作为最终采用的磁盘阵列单盘恢复的纠删码恢复方法;缓存替换模块,根据纠删码恢复方法的读取次数为数据块定义优先级,采用在缓存中优先替换优先级低的数据块的缓存替换方法。进一步地,该缓存替换模块针对选取的负载相对均衡的磁盘阵列单盘恢复情形下的最优方法,根据数据块被访问的次数设置在缓存中的优先级。进一步地,该缓存替换模块根据优先级将数据块放入缓存中不同的队列中去,同一个队列中优先级相同的数据块根据LRU算法进行排列,最近最久未被访问的数据块将优先被替换,优先级高的队列中的数据块如被访问,则添加到优先级低一级的数据块当中,以此类推;当缓存中空间不够时,最低优先级队列中的最近最久未被访问的数据块将被替换,新加入的数据块根据其优先级添加到相应的队列当中。与现有技术相比,本专利技术一种磁盘阵列单盘恢复的缓存方法及系统提出了一种新的纠错码单盘出错恢复的情形,能够有效结合应用读取到缓存中的数据块制定相应的恢复策略,由于读取缓存中的数据块的速度比读取磁盘中的数据块在速度上有明显的改进,本专利技术能够有效减少纠错码单盘恢复情形下的恢复速度,同时保证应用访问的正常进行。在访问请求多、任务密集的存储服务器环境下能够有效提升服务速度和效率,提升分布式存储系统的可靠性和安全性。附图说明图1为本专利技术一种磁盘阵列单盘恢复的缓存方法的步骤流程图;图2说明了本专利技术具体实施例中根据生成矩阵生成所有恢复指定数据块的方法;图3显示了本专利技术具体实施例中迪杰斯特拉遍历所有可能的恢复方法的过程;图4显示了本专利技术具体实施例中迪杰斯特拉遍历过程中,删除无效方法,提高计算速度的过程;图5说明了本专利技术具体实施例中根据遍历算法得到的恢复方法选择最优方法的过程;图6说明了本专利技术具体实施例中缓存中添加新数据块的方法;图7说明了本专利技术具体实施例中数据块被访问后进行降级的过程;图8说明了本专利技术具体实施例中缓存中数据块替换选择的方法;图9为本专利技术一种磁盘阵列单盘恢复的缓存系统的系统架构图。具体实施方式以下通过特定的具体实例并结合附图说明本专利技术的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本专利技术的其它优点与功效。本专利技术亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本专利技术的精神下进行各种修饰与变更。图1为本专利技术一种磁盘阵列单盘恢复的缓存方法的步骤流程图。如图1所示,本专利技术一种磁盘阵列单盘恢复的缓存方法,包括如下步骤:步骤101,根据数据块是否已经被应用读取到缓存中,为数据块定义不同的优先级。具体地,为在缓存中的数据块赋予较高的优先级,为不在缓存中的数据块赋予较低的优先级。也就是说,当系统检测到存储服务器出现错误时,首先读取在缓存中的数据块编号,在遍历时针对数据块是否在缓存中,优先地选择已经读取到缓存中的数据,次要地选择尚未被读取到缓存中的数据,进行恢复方法的综合考量步骤102,针对所有可能的恢复方法,结合恢复方法之间的关系,通过迪杰斯特拉遍历算法进行遍历,选取出I/O最小的、符合要求的恢复方法。较佳地,在迪杰斯特拉算法遍历过程中,结合已经选取的有效方法特征,及时删除无效方法,提高计算速度,避免无效遍历。具体地,步骤102进一步包括:通过迪杰斯特本文档来自技高网...
一种磁盘阵列单盘恢复的缓存方法及系统

【技术保护点】
一种磁盘阵列单盘恢复的缓存方法,包括如下步骤:步骤一,根据数据块是否已经被应用读取到缓存中,为数据块定义不同的优先级;步骤二,为每一个出错的数据块枚举出所有可行的恢复方法,针对所有可行的恢复方法,结合恢复方法之间的关系,通过迪杰斯特拉遍历算法进行遍历,选取出I/O最小的、符合要求的恢复方法;步骤三,针对所选择的恢复方法,选取其中负载相对均衡的方法作为最终采用的磁盘阵列单盘恢复的纠删码恢复方法。步骤四,根据纠删码恢复方法的读取次数为数据块定义优先级,采用在缓存中优先替换优先级低的数据块的缓存替换方法。

【技术特征摘要】
1.一种磁盘阵列单盘恢复的缓存方法,包括如下步骤:步骤一,根据数据块是否已经被应用读取到缓存中,为数据块定义不同的优先级;步骤二,为每一个出错的数据块枚举出所有可行的恢复方法,针对所有可行的恢复方法,结合恢复方法之间的关系,通过迪杰斯特拉遍历算法进行遍历,选取出I/O最小的、符合要求的恢复方法;步骤三,针对所选择的恢复方法,选取其中负载相对均衡的方法作为最终采用的磁盘阵列单盘恢复的纠删码恢复方法。步骤四,根据纠删码恢复方法的读取次数为数据块定义优先级,采用在缓存中优先替换优先级低的数据块的缓存替换方法。2.如权利要求1所述的一种磁盘阵列单盘恢复的缓存方法,其特征在于:于步骤一中,为在缓存中的数据块赋予较高的优先级,为不在缓存中的数据块赋予较低的优先级。3.如权利要求2所述的一种磁盘阵列单盘恢复的缓存方法,其特征在于,步骤二包括:通过迪杰斯特拉方法对所有可行的恢复方法进行遍历,建立一个初节点表示遍历的最初状态;循环查询恢复一个出错的数据块可能需要的读取的数据块个数作为节点之间连线的权重;如果需要读取的数据块在缓存中,此数据块的读取将不参与权重的计算,如果需要读取的数据块不在缓存中,此数据块的读取将参与权重的计算;选取出能够有效恢复所有出错的数据块又能将遍历的权重降到最低的方法。4.如权利要求3所述的一种磁盘阵列单盘恢复的缓存方法,其特征在于:于步骤二中,在迪杰斯特拉算法遍历过程中,结合已经选取的有效方法特征,及时删除无效方法。5.如权利要求4所述的一种磁盘阵列单盘恢复的缓存方法,其特征在于:步骤三包括:分别计算每一块磁盘上有效I/O的数量;对阵列中每一块磁盘上的I/O进行对比,选取其中I/O最大的磁盘;所有方法中I/O最大的磁盘上的I/O数目最小的方法被选作是恢复的最优方法。6.如权利要求5所述的一种磁盘阵列单盘恢复的缓存方法,其特征在于:于步骤三中,针对选取的负载相对均衡的磁盘...

【专利技术属性】
技术研发人员:吴晨涛过敏意李璐雨谭超贾帅杰
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海;31

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

1