[发明专利]一种基于模拟退火的分布式纠删码存储系统数据修复方法有效
申请号: | 201910379654.2 | 申请日: | 2019-05-08 |
公开(公告)号: | CN110212923B | 公开(公告)日: | 2020-11-17 |
发明(设计)人: | 张兴军;刘云飞;董小社;梁宁静;刘威;武旭瑞;赵英交 | 申请(专利权)人: | 西安交通大学 |
主分类号: | H03M13/15 | 分类号: | H03M13/15;G06F11/10 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 徐文权 |
地址: | 710049 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 模拟 退火 分布式 纠删码 存储系统 数据 修复 方法 | ||
1.一种基于模拟退火的分布式纠删码存储系统数据修复方法,其特征在于,包括以下步骤:
步骤1:构建一个分布式存储系统,它由多个节点组成,每个节点都是一台独立运行的计算机,它们通过网络互联;该分布式存储系统由两类节点组成,一类是存储节点,它负责存储数据,一类是监控节点,它负责监听分布式存储系统中的存储节点的状态,当存储节点发生故障时,监控节点会触发修复操作;待存入存储系统的数据文件F使用CRS纠删码进行编码;
当监控节点在规定的时间内未能接收到某个存储节点发送的心跳信息,则认为该存储节点出现了故障;在对失效的存储节点进行修复时,监控节点将选择一个存储节点Ln用来存储失效的数据,Ln节点将负责整个的数据修复工作;
步骤2:Ln节点获取集群中各个节点之间的网络传输速度bandwidthi,j,其中0≤i≤k+m-1,0≤j≤k+m-1;
步骤3:Ln节点获取当前节点编号ln,失效节点编号fn,以及当前纠删码配置下的纠删码生成矩阵G;如果失效节点为校验节点,则直接读取全部的数据块并执行编码操作以得到相应的校验块;如果失效节点为数据节点,则执行矩阵调度算法,查找修复开销最小的数据修复方案;
步骤4:根据数据修复方案确定数据修复所需要的数据读请求;
步骤5:将修复操作对应的数据读请求发送到具体的存储节点;
步骤6:各个存储节点接受到数据读请求后,根据相应的数据读操作的偏移量,读取本地磁盘数据,并发送回修复节点;
步骤7:修复节点接受到全部的返回数据后,执行解码操作,将丢失的数据重构出来;
步骤8:修复节点完成编码块修复之后,将编码块修复情况发送给监控节点,如果修复成功,将修复节点上编码块相关的元数据信息发送给监控节点;如果修复失败,修复节点对失效编码块进行重新修复;
在步骤3中,纠删码调度算法的具体执行步骤如下:
(1):初始化参数,令K=0.97,T=M=L=k*m2*w2;
(2):根据纠删码生成矩阵G的后m*w行得到m*w个译码方程,每个译码方程包含了一个校验元素与若干个数据元素,表明该校验元素由上述若干数据元素进行异或运算得到,即该校验元素与上述若干数据元素进行异或运算的结果为0;
(3):将所述m*w个译码方程分成w组,第i组中的每个译码方程均覆盖了待修复数据块中的第i个元素,0≤i≤w-1,每组负责修复1个失效的数据元素;
(4):从每个分组中随机地选取1个译码方程,组成包含w个译码方程的修复方案;
(5):修复方案有效则需要同时满足以下2个条件:1)修复方案中的译码方程覆盖了所有的w个丢失的数据元素,2)译码方程关于丢失元素是线性独立的;如果所述修复方案是有效的,则将该修复方案赋值给Solution,Solutionbest=Solution,设置count=0,否则转上一步;
(6):计算Solutionbest的修复代价;
(7):数据修复方案Solution的修复代价与Solutionbest的修复代价相等,cost=costbest;
(8):从Solution包含的w个译码方程中随机地选取1个译码方程ei,获取其所在分组,从该分组中随机地选取一个译码方程ej(ej≠ei),用ej替换掉Solution中的ei;
(9):如果新的修复方案是有效的,则将该修复方案赋值给Solutionnew,否则跳转执行上一步;
(10):计算Solutionnew的修复代价,记做costnew;
(11):根据模拟退火的思想判断是否接受新的修复方案;
(12):设置count=count+1,如果countM*L并且T0.001,跳转执行第八步;
(13):根据Solutionbest,计算从每个编码块D0,D1,D2,…,Dk-1,C0,C1,C2,…,Cm-1读取的元素编号,这些编号即表示了从哪些节点读取哪些元素;
计算Solutionbest的修复代价的具体步骤如下:
6.1通过遍历的方式统计Solutionbest从每个节点读取的元素数量,记做Ni,0≤i≤k+m-1;
6.2根据Ni*1/bandwidthi,ln计算从每个节点上下载数据所需要的代价;
6.3根据∑Ni*1/bandwidthi,ln计算出Solutionbest所需要的数据修复总代价,记做costbest;
根据模拟退火的思想判断是否接受新的修复方案的具体步骤如下:
11.1计算Solution和新解Solutionnew的修复代价差值,记做Δ=cost-costnew;
11.2如果Δ0,则接受新解,即Solution=Solutionnew,cost=costnew,并判断是否costbestcostnew,如果成立,则Solutionbest=Solutionnew,costbest=costnew;
11.3如果Δ≤0,则产生(0,1)之间的一个随机数,将该随机数赋值给random_probability;如果,则接受新解Solution,即Solution=Solutionnew,cost=costnew。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910379654.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种极化码自适应译码方法及系统
- 下一篇:一种LT码编解码方法及系统
- 同类专利
- 专利分类