一种针对rs编码存储集群的存储扩容方法

文档序号:6631610阅读:161来源:国知局
一种针对rs编码存储集群的存储扩容方法
【专利摘要】本发明公开了一种针对RS码存储集群的高效存储扩容方法,涉及数据重新分布和校验更新两个过程。具体包括:增加Δk个数据节点,并按照转置式数据布局重新分布旧数据,其中原始数据分块只在旧数据节点和新数据节点之间迁移,新数据分块直接填充到迁移后所空出区域;完成数据重新分布时,需要进行相应校验分块的更新操作。上述数据重新分布支持多次扩容并保持数据分布的均匀性。由于数据重新分布采用转置式数据布局,校验分块更新时,旧数据节点可直接计算校验差异分块ΔP,校验节点利用此校验差异分块ΔP完成校验分块的更新,从而减少校验更新开销。本发明中存储扩容方法不仅能提高存储效率,而且能完成高效扩容。
【专利说明】一种针对RS编码存储集群的存储扩容方法

【技术领域】
[0001] 本发明属于计算机存储领域,更具体地,涉及一种针对RS码存储集群的存储扩容 方法。

【背景技术】
[0002] 纠删码广泛的应用于分布式存储,集群存储按照纠删编码方式将多个存储节点进 行连接,构成具有一定容错能力的存储系统。纠删编码主要包括里德-索罗蒙编码(Reed Solomon Codes,RS Codes)和奇偶校验矩阵编码。在相同容量条件下,RS编码具有比奇偶 校验矩阵编码更高的容错能力。
[0003] 随着存储集群的运行和使用,集群中存储容量将逐渐减少,需要通过增加存储节 点的方式完成扩容的目的。这里,集群扩容是主要是指对RS存储集群进行数据节点的添 加。
[0004] 现有的磁盘阵列扩展方案主要针对RAID-0、RAID-4、RAID-5和RAID-6,它们都不 适合于集群存储扩容。RAID-O只处理数据的迁移,不对数据进行校验,数据安全性不高。 RAID-4要求在所有数据磁盘上有均匀的数据分布,这会导致大量的数据迁移。虽然有一种 可选的RAID-4扩展方案,它通过移动部分数据分块到新的磁盘上来减少数据的迁移,但是 在填充新数据时,这种方案更新校验分块的代价很高。RAID-5采用基于轮询的数据分布,应 用于RS存储集群时,由于数据移动和校验更新,集群将面临1/0开销过高的问题。RAID-6 的扩展只用于特定的RAID-6编码设计,不适用于纠删码存储集群。


【发明内容】

[0005] 针对现有技术的以上缺陷或改进需求,本发明提供了一种针对里德-索罗蒙码存 储集群的存储扩容方法,不仅可以提高存储集群的存储容量,而且能最小化数据迁移量和 校验更新开销。
[0006] 为了实现上述发明目的,本发明提供了一种针对RS编码存储集群的存储扩容方 法,包括如下步骤:
[0007] (1)集群存储空间的扩容与数据重新分布的过程,包括如下子步骤:
[0008] (I. 1)增加存储节点,向存储集群中添加新的数据节点在物理上增加存储集群的 容量;
[0009] (L 2)旧数据分块的重新分布,包括如下子步骤:
[0010] (1.2. 1)读取旧数据分块的逻辑块号X,然后按行、列号计算数据分块坐标 (row。, colQ),其中row。= x/k表示X除以k的商,col。= x% k表示求X除以k的余数,k 是存储集群的数据节点个数;
[0011] (1. 2. 2)根据前面计算出的数据分块坐标(r〇W(l,c〇U来判断数据分块是否需要 迁移;令p = roW(i% k',判断的标准是:若0彡p < k,数据分块不需要迁移,则该数据分块 的地址仍旧为(r〇W(l,C〇U ;否则,该数据分块需要进行迁移;
[0012] (I. 2. 3)当旧数据节点中的待迁移数据分块完成迁移后,由当前数据节点计算校 验差异分块AP并传送到校验节点;由存放数据分块DCi的节点N(DCi)为第row行数据 分块计算r个校验差异分块(APrau, APmw,2,...,APmw,J并分别发送到r个校验节点 (N(PC1),N(PC2),--,N(PCr)};其中1AP rOT, a j;i 是冗余矩阵中第 i 行、第 j 列的元素,Dyw代表地址为(i,row)的数据分块,r代表校验节点的个数;
[0013] (1.2.4)重复执行步骤(1.2. 1)、(1.2.2)、(1.2. 3),直到全部旧数据分块处理完 成,使所有数据分块均匀分布在存储集群中,完成数据重新分布过程;
[0014] (1. 3)新数据分块的填充;包括如下子步骤:
[0015] (1. 3. 1)根据新数据分块的逻辑块号X计算其填充目的地址(row,col);令y =

【权利要求】
1. 一种针对RS编码存储集群的存储扩容方法,其特征在于,该方法包括以下步骤: (1) 集群存储空间的扩容与数据重新分布的过程,包括如下子步骤: (1. 1)增加存储节点,向存储集群中添加新的数据节点在物理上增加存储集群的容 量; (1.2)旧数据分块的重新分布,包括如下子步骤: (1.2. 1)读取旧数据分块的逻辑块号X,然后按行、列号计算数据分块坐标 (row。,colQ),其中row。=x/k表示x除以k的商,colQ =x%k表示求x除以k的余数,k 是存储集群的数据节点个数; (1. 2. 2)根据前面计算出的数据分块坐标(r〇W(l,colj来判断数据分块是否需要迁移; 令P=rowO%k',判断的标准是:若0彡p<k,数据分块不需要迁移,则该数据分块的地 址仍旧为(rowolj;否则,该数据分块需要进行迁移; (1.2.3)当旧数据节点中的待迁移数据分块完成迁移后,由当前数据节点计算校验 差异分块AP并传送到校验节点;由存放数据分块DQ的节点N(DCi)为第row行数据分 块计算r个校验差异分块{APM1U,APmw,2,...,APMwj并分别发送到r个校验节点 {N(PC1),N(PC2),.. ,N(PCr)}
是冗余矩阵中第i行、第j 列的元素,代表地址为(i,row)的数据分块,r代表校验节点的个数; (1. 2. 4)重复执行步骤(1. 2. 1)、(1. 2. 2)、(1. 2. 3),直到全部旧数据分块处理完成,使 所有数据分块均匀分布在存储集群中,完成数据重新分布过程; (1. 3)新数据分块的填充;包括如下子步骤: (1.3. 1)根据新数据分块的逻辑块号x计算其填充目的地址(row,col);令y=x-kXC,其中
col=y%k',C表示存储节点能容纳的数据 分块数量; (1. 3. 2)将新数据分块填充到对应的填充目的地址; (1. 3. 3)如果有一行数据分块由新数据分块填充完成,则利用RS编码生成校验分块并 传送到校验节点; (1. 3. 4)重复执行(1. 3. 1)、(1. 3. 2)、(1. 3. 3)直到新数据分块全部填充完成; (2) 数据重新分布之后相应校验分块更新的过程,包括如下子步骤: (2. 1)步骤(1. 2)会产生校验差异分块AP、步骤(1. 3)会生成全新的校验分块PnOT,用P表示原校验分块,当校验节点接收到由数据迁移产生的校验差异分块△P时,校验节点以 P+AP更新原校验分块;当校验节点接收到由新数据填充产生的Pmw时,校验节点用Pmw替 换对应的原校验分块; (2. 2)重复执行(2. 1),直到所有校验分块都完成更新。
2. 根据权利要求1所述的扩容方法,其特征在于,所述步骤(1.2. 2)中根据转置式数 据布局来计算扩容后数据分块的新地址(row,col),其中row= (rowO/k')*k' +colQ,col= row%k',k' =k+Ak,Ak是存储集群新增数据节点个数。
【文档编号】G06F3/06GK104407807SQ201410579759
【公开日】2015年3月11日 申请日期:2014年10月24日 优先权日:2014年10月24日
【发明者】黄建忠, 曹强, 谢长生, 梁先海, 黄文胜 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1