发明名称 一种面向纠删码的数据放置方法
摘要 本发明公开了一种面向纠删码的数据放置方法,目的是提高大规模分布存储系统的容错能力。技术方案是先构建由一个控制节点和M个机架(每个机架上安装N个存储节点)组成的分布存储系统,控制节点上安装有数据写入管理程序,存储节点上安装有数据写入程序;控制节点执行数据写入管理程序,接收用户提交的数据对象写入请求,对数据对象进行分块和编码计算,得到原始数据块和冗余数据块,且向各存储节点分发数据块写入请求;存储节点的数据写入程序接收来自控制节点的数据块写入请求,将原始数据块或冗余数据块写入本地磁盘。本发明有效兼顾了分布存储系统的数据访问效率、数据可靠性和数据修复效率,最大限度地提升了大规模分布存储系统的容错能力。
申请公布号 CN104035732A 申请公布日期 2014.09.10
申请号 CN201410269720.8 申请日期 2014.06.17
申请人 中国人民解放军国防科学技术大学 发明人 王意洁;许方亮;裴晓强;符永铨;孙伟东;程力;李小勇;马行空;王媛;赵越;林轩;熊泽宇
分类号 G06F3/06(2006.01)I;G06F11/07(2006.01)I 主分类号 G06F3/06(2006.01)I
代理机构 国防科技大学专利服务中心 43202 代理人 郭敏
主权项 一种面向纠删码的数据放置方法,其特征在于包括以下步骤:第一步,构建一个分布存储系统,它由多个节点构成,每个节点都是一台可独立运行的计算机,各节点通过网络设备互连;分布存储系统中的节点分为两类:控制节点和存储节点,控制节点和存储节点上均安装有操作系统、TCP/IP协议软件,配置了网络环境;分布存储系统包括一个控制节点,负责与用户交互,控制节点上安装有数据写入管理程序;数据写入管理程序接收用户提交的数据对象写入请求,负责存储编码系数,对数据对象进行分块和编码计算,向各存储节点分发数据块写入请求;所述编码系数是指纠删码编码计算公式G<sub>j1</sub>×D<sub>1</sub>+…+G<sub>ji</sub>×D<sub>i</sub>+…+G<sub>jk</sub>×D<sub>k</sub>=C<sub>j</sub>中的系数G<sub>ji</sub>,j=1,2,…,m,i=1,2,…,k;分布存储系统包括M个机架,每个机架上安装N个存储节点,存储节点负责存储数据对象的原始数据块和冗余数据块,执行数据块写入任务;在分布存储系统中,每个原始数据块和冗余数据块均拥有唯一的数据块编号,M为正整数,N为正整数;存储节点上安装有数据写入程序,数据写入程序负责接收来自控制节点的数据块写入请求,完成数据块写入任务;第二步,控制节点执行数据写入管理程序,接收用户提交的数据对象DO,对数据对象DO进行分块和编码计算,得到原始数据块和冗余数据块,具体步骤如下:2.1控制节点的数据写入管理程序接收用户提交的数据对象DO写入请求;2.2控制节点的数据写入管理程序将数据对象DO分割为k个原始数据块D<sub>1</sub>~D<sub>k</sub>,记D<sub>i</sub>,1≤i≤k;2.3控制节点的数据写入管理程序利用编码系数对k个原始数据块D<sub>1</sub>~D<sub>k</sub>进行编码计算,得到m个冗余数据块C<sub>1</sub>~C<sub>m</sub>,记C<sub>j</sub>,1≤j≤m;第三步,控制节点执行数据写入管理程序,将编码计算得到的k个原始数据块即D<sub>1</sub>~D<sub>k</sub>和m个冗余数据块即C<sub>1</sub>~C<sub>m</sub>分别写入不同的存储节点,具体步骤如下:3.1初始化信息,具体包括:3.1.1分布存储系统的机架记为R<sub>z</sub>,z为机架序号,1≤z≤M,分布存储系统的M个机架构成机架集合RSet;3.1.2分布存储系统中每个机架R<sub>z</sub>的N个存储节点构成存储节点集合SNSet<sub>z</sub>;3.1.3令原始数据块D<sub>x</sub>的序号x=1;3.1.4令写入同一机架的原始数据块数目sum=m;3.1.5令冗余数据块C<sub>y</sub>的序号y=1;3.2控制节点的数据写入管理程序从RSet中任意选择一个机架R<sub>z</sub>,将sum个原始数据块写入从R<sub>z</sub>的存储节点集合SNSet<sub>z</sub>中任意选择的sum个存储节点;3.3如果(k‑x+1)≥m,则转第3.2步,继续将原始数据块写入到不同机架的存储节点;否则,转第3.4步;3.4如果0&lt;(k‑x+1)&lt;m,则令sum=k‑x+1,转到第3.2步,继续将原始数据块写入到不同机架的存储节点;否则,说明k个原始数据块已经分别写入不同机架的存储节点,转第3.5步;3.5控制节点的数据写入管理程序从RSet中任意选择一个机架R<sub>z</sub>,将m个冗余数据块C<sub>1</sub>~C<sub>m</sub>写入从SNSet<sub>z</sub>中任意选择的m个存储节点。第四步,控制节点执行数据写入管理程序,向用户发送数据写入成功信息。
地址 410073 湖南省长沙市开福区德雅路109号