一种面向云存储的数据副本初始放置方法

文档序号:10555680阅读:221来源:国知局
一种面向云存储的数据副本初始放置方法
【专利摘要】本发明涉及一种面向云存储的数据副本初始放置方法,基于传统数据副本放置方法做出改进,利用统计学上的方法计算出数据节点的性能值,基于数据节点的性能值来选择放置数据副本的数据节点,并且分别考虑数据副本的放置,既提高了数据存储与读取可靠性,又保证了系统的性能。
【专利说明】
一种面向云存储的数据副本初始放置方法
技术领域
[0001] 本发明涉及一种面向云存储的数据副本初始放置方法,属于云存储和数据副本放 置技术领域。
【背景技术】
[0002] 随着信息技术的发展,云存储是在云计算概念上延伸和发展出来的一个新概念, 云存储是一种新兴的网络存储技术,它是指通过集群应用、网络技术或分布式文件系统等 功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外 提供数据存储和业务访问功能的一个系统,云存储是一个以数据存储和管理为核心的云计 算系统。
[0003] HDFS: (Hadoop Distributed File System)分布式文件系统,是一种云存储的方 法。它提供高吞吐量的应用程序数据访问,非常适合大规模数据集上的应用,对外部客户机 而言,HDFS就像一个传统的分级文件系统。HDFS有着高容错性的特点,并且设计用来部署在 低廉的物理机上,而且它提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集 的应用程序。HDFS架构基于一组特定的节点构建的,包括一个NameNode,在HDFS内部提供元 数据服务,多个DataNode,它为HDFS提供存储块。
[0004] 存储在HDFS中的文件被分成块,然后将这些块复制到多个数据节点中,块的大小 和复制的块数量在创建文件时由客户机决定。文件系统不可避免的会产生故障和错误,文 件系统采用副本技术不会导致无法访问的情况,并且机架故障的几率远小于节点故障,从 而提高了系统的可靠性。传统的副本放置方法是:一般的副本系数是3,将第一个副本放在 本地节点,将第二个副本放到本地机架上的另外一个节点,而将第三个副本放到不同机架 上随机选择的数据节点。HDFS系统中有个叫均衡器的守护进程,它会将数据块从负载较高 的节点移动到负载较低的节点上,从而达到数据块重新分配的目的,最终使得整个集群分 布均衡,但是传统的方法对于集群数据块均衡的调节具有滞后性,并且均衡器的调节和数 据块的移动都需要一定的资源消耗,会造成整个系统性能的下降。

【发明内容】

[0005] 本发明所要解决的技术问题是提供一种综合考虑系统性能影响因素,能够有效提 高数据读取可靠性,以及保证系统性能的面向云存储的数据副本初始放置方法。
[0006] 本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种面向云存储 的数据副本初始放置方法,用于针对本地数据节点上对应任意一个数据块的至少两个数据 副本实现云存储,包括如下方法:
[0007] 步骤001.针对本地数据节点上对应一个数据块的各个数据副本,随机选择一个数 据副本存储于本地数据节点上,然后进入步骤〇〇2;
[0008] 步骤002.针对本地数据节点所在机架中、除本地数据节点之外的其余各个数据节 点,分别获得该各个数据节点的当前磁盘负载、当前网络带宽、当前平均服务时间和当前访 问故障概率,并且根据分别针对磁盘负载、网络带宽、平均服务时间和访问故障概率四种属 性预设、相加之和为一的各个权重值,获得该各个数据节点的当前性能值,并进入步骤003;
[0009] 步骤003.针对本地数据节点所在机架中、除本地数据节点之外的其余各个数据节 点,获得其中最大当前性能值所对应的一个数据节点,并预测获得若该数据节点增加存储 一个数据副本后的预测性能值,再判断该预测性能值是否大于预设数据节点性能值下限, 是则针对本地数据节点中未分配存储的各个数据副本,随机选择一个数据副本存储于该预 测性能值所对应的数据节点上,并进入步骤004;否则进入步骤005;
[0010] 步骤004.判断本地数据节点中是否存在未分配存储的数据副本,是则进入步骤 005;否则针对本地数据节点上该数据块的各个数据副本的云存储方法结束;
[0011] 步骤005.获得以本地数据节点所在机架为圆心、预设半径R范围内,除本地数据节 点所在机架之外的其余各个机架,分别针对该各个机架,根据步骤002中的方法获得机架中 各个数据节点的当前性能值,获得该机架中所有数据节点的平均当前性能值,作为该机架 的平均当前性能值,进而分别获得该各个机架的平均当前性能值,然后进入步骤006;
[0012] 步骤006.针对以本地数据节点所在机架为圆心、预设半径R范围内,除本地数据节 点所在机架之外的其余各个机架,获得最大平均当前性能值所对应的机架,作为待选择机 架,然后进入步骤007;
[0013] 步骤007.获得待选择机架中最大当前性能值所对应的一个数据节点,并预测获得 若该数据节点增加存储一个数据副本后的预测性能值,再判断该预测性能值是否大于预设 数据节点性能值下限,是则针对本地数据节点中未分配存储的各个数据副本,随机选择一 个数据副本存储于该预测性能值所对应的数据节点上,并进入步骤010;否则进入步骤008;
[0014] 步骤008.获得以本地数据节点所在机架为圆心,内径为R、外径为A · R的圆圈范围 内的各个机架,根据步骤004中的方法,分别获得该各个机架的平均当前性能值,然后进入 步骤009;其中,A大于1;
[0015] 步骤009.针对以本地数据节点所在机架为圆心,内径为R、外径为A · R的圆圈范围 内的各个机架,获得最大平均当前性能值所对应的机架,更新作为待选择机架,再用A · R的 值针对R进行更新,并返回步骤007;
[0016] 步骤010.判断本地数据节点中是否存在未分配存储的数据副本,是则返回步骤 008;否则针对本地数据节点上该数据块的各个数据副本的云存储方法结束。
[0017] 作为本发明的一种优选技术方案:所述步骤002具体包括如下:
[0018] 针对本地数据节点所在机架中、除本地数据节点之外的其余各个数据节点,分别 获得该各个数据节点的当前磁盘负载Load、当前网络带宽BW、当前平均服务时间ST和当前 访问故障概率FP,并且根据分别针对磁盘负载、网络带宽、平均服务时间和访问故障概率四 种属性预设的权重值α、权重值β、权重值γ、权重值δ,按如下公式,获得该各个数据节点的 当前性能值P,
[0019] ^_ L J CfVoarf 4· + +
[0020] 其中,α+β+γ+δ = 1。
[0021] 作为本发明的一种优选技术方案:所述步骤002中,数据节点的当前磁盘负载Load 通过如下公式获得,
[0022] Load=ffi*10+ff2*SIZE
[0023] 其中,IO表示数据节点的当前磁盘I/O负载,SIZE表示数据节点的当前磁盘空间负 载,Wi和W2分别表示针对磁盘I/O负载和磁盘空间负载预设的权重值,且W1+W2= 1。
[0024] 作为本发明的一种优选技术方案:所述步骤002中,数据节点的当前平均服务时间 ST通过如下公式获得,
[0025]
[0026] 其中,N表示数据节点对应统计周期内的任务个数,STn表示数据节点对应统计周 期内第η个的服务时间。
[0027] 作为本发明的一种优选技术方案:所述步骤002中,数据节点的当前访问故障概率 FP通过如下公忒益徨.
[0028]
[0029] 其中,unsuccess表示数据节点访问未成功的次数,success表示数据节点访问成 功的次数。
[0030] 作为本发明的一种优选技术方案:所述步骤003和步骤007中,通过如下方法,预测 获得若该数据节点增加存储一个数据副本后的预测性能值P n?:
[0031] 根据云计算系统中的全局日志文件,获得该数据节点上当前已存储数据块的个数 L,再结合该教抿书?的卑前性能值P,通过如下公式:
[0032]
[0033]获得若该数据节点增加存储一个数据副本后的预测性能值Ρ_。
[0034] 作为本发明的一种优选技术方案:所述步骤006中,以本地数据节点所在机架为圆 心、预设半径R范围内,除本地数据节点所在机架之外的其余各个机架中,若最大平均当前 性能值所对应机架的个数大于等于2,则根据该各个机架的平均当前性能值,分别获得该各 个机架的平均当前性能值标准平方差,针对最大平均当前性能值所对应的各个机架,选择 最大平均当前性能值标准平方差所对应的机架,作为待选择机架;
[0035] 以及所述步骤009中,以本地数据节点所在机架为圆心,内径为R、外径为A · R的圆 圈范围内的各个机架,若最大平均当前性能值所对应机架的个数大于等于2,则根据该各个 机架的平均当前性能值,分别获得该各个机架的平均当前性能值标准平方差,针对最大平 均当前性能值所对应的各个机架,选择最大平均当前性能值标准平方差所对应的机架,作 为待选择机架。
[0036] 本发明所述一种面向云存储的数据副本初始放置方法采用以上技术方案与现有 技术相比,具有以下技术效果:本发明所设计面向云存储的数据副本初始放置方法,基于传 统数据副本放置方法做出改进,利用统计学上的方法计算出数据节点的性能值,基于数据 节点的性能值来选择放置数据副本的数据节点,并且分别考虑数据副本的放置,既提高了 数据存储与读取可靠性,又保证了系统的性能。
【附图说明】
[0037] 图1是本发明设计的面向云存储的数据副本初始放置方法的流程示意图。
【具体实施方式】
[0038] 下面结合说明书附图对本发明的【具体实施方式】作进一步详细的说明。
[0039] 如图1所示,本发明所设计一种面向云存储的数据副本初始放置方法在实际应用 过程当中,用于针对本地数据节点上对应任意一个数据块的至少两个数据副本实现云存 储,具体包括如下方法:
[0040] 步骤001.针对本地数据节点上对应一个数据块的各个数据副本,随机选择一个数 据副本存储于本地数据节点上,然后进入步骤〇〇2。
[0041 ]步骤002.针对本地数据节点所在机架中、除本地数据节点之外的其余各个数据节 点,分别获得该各个数据节点的当前磁盘负载、当前网络带宽、当前平均服务时间和当前访 问故障概率,并且根据分别针对磁盘负载、网络带宽、平均服务时间和访问故障概率四种属 性预设、相加之和为一的各个权重值,获得该各个数据节点的当前性能值,并进入步骤003。 [0042] 其中,步骤002具体包括如下:
[0043] 针对本地数据节点所在机架中、除本地数据节点之外的其余各个数据节点,分别 获得该各个数据节点的当前磁盘负载Load、当前网络带宽BW、当前平均服务时间ST和当前 访问故障概率FP,其中,数据节点的当前磁盘负载Load通过如下公式获得,
[0044] Load=ffi*IO+ff2*SIZE
[0045] 其中,IO表示数据节点的当前磁盘I/O负载,SIZE表示数据节点的当前磁盘空间负 载,Wi和W2分别表示针对磁盘I/O负载和磁盘空间负载预设的权重值,且W1+W2= 1。
[0046] 数据节点的当前平均服务时间ST通过如下公式获得,
[0047]
[0048] 其中,N表示数据节点对应统计周期内的任务个数,STn表示数据节点对应统计周 期内第η个的服务时间。
[0049] 数据节点的当前访问故障概率FP通过如下公式获得,
[0050]
[0051] 其中,unsuccess表示数据节点访问未成功的次数,success表示数据节点访问成 功的次数。
[0052] 然后根据分别针对磁盘负载、网络带宽、平均服务时间和访问故障概率四种属性 预设的权重值α、权重值β、权重值γ、权重值δ,按如下公式,获得该各个数据节点的当前性 能值Ρ,
[0053]
[0054] 其中,α+β+γ+δ = 1。
[0055] 步骤003 .针对本地数据节点所在机架中、除本地数据节点之外的其余各个数据节 点,获得其中最大当前性能值所对应的一个数据节点,并预测获得若该数据节点增加存储 一个数据副本后的预测性能值Ρ_,再判断该预测性能值Pr-是否大于预设数据节点性能值 下限,是则针对本地数据节点中未分配存储的各个数据副本,随机选择一个数据副本存储 于该预测性能值所对应的数据节点上,并进入步骤004;否则进入步骤005。
[0056] 上述步骤003中,根据云计算系统中的全局日志文件,获得该数据节点上当前已存 储数据块的个数L,再结合该数据节点的当前性能值P,通过如下公式:
[0057]
[0058] 获得若该数据节点增加存储一个数据副本后的预测性能值Pne3W。
[0059] 步骤004.判断本地数据节点中是否存在未分配存储的数据副本,是则进入步骤 005;否则针对本地数据节点上该数据块的各个数据副本的云存储方法结束。
[0060] 步骤005.获得以本地数据节点所在机架为圆心、预设半径R范围内,除本地数据节 点所在机架之外的其余各个机架,分别针对该各个机架,根据步骤002中的方法获得机架中 各个数据节点的当前性能值,获得该机架中所有数据节点的平均当前性能值,作为该机架 的平均当前性能值,进而分别获得该各个机架的平均当前性能值,然后进入步骤006。
[0061] 步骤006.针对以本地数据节点所在机架为圆心、预设半径R范围内,除本地数据节 点所在机架之外的其余各个机架,获得最大平均当前性能值所对应的机架,作为待选择机 架,其中,若最大平均当前性能值所对应机架的个数大于等于2,则根据该各个机架的平均 当前性能值,分别获得该各个机架的平均当前性能值标准平方差,针对最大平均当前性能 值所对应的各个机架,选择最大平均当前性能值标准平方差所对应的机架,作为待选择机 架,然后进入步骤007。
[0062]步骤007.获得待选择机架中最大当前性能值所对应的一个数据节点,并预测获得 若该数据节点增加存储一个数据副本后的预测性能值Pnm再判断该预测性能值Pn?是否大 于预设数据节点性能值下限,是则针对本地数据节点中未分配存储的各个数据副本,随机 选择一个数据副本存储于该预测性能值所对应的数据节点上,并进入步骤010;否则进入步 骤008 〇
[0063]上述步骤007中,根据云计算系统中的全局日志文件,获得该数据节点上当前已存 储数据块的个数L,再结合该数据节点的当前性能值P,通过如下公式:
[0064]
[0065] 获得若该数据节点增加存储一个数据副本后的预测性能值Ρ_。
[0066] 步骤008.获得以本地数据节点所在机架为圆心,内径为R、外径为|·Λ的圆圈范围 内的各个机架,根据步骤004中的方法,分别获得该各个机架的平均当前性能值,然后进入 步骤009。
[0067] 步骤009.针对以本地数据节点所在机架为圆心,内径为R、外径为A · R的圆圈范围 内的各个机架,获得最大平均当前性能值所对应的机架,更新作为待选择机架,再用A · R的 值针对R进行更新,其中,若最大平均当前性能值所对应机架的个数大于等于2,则根据该各 个机架的平均当前性能值,分别获得该各个机架的平均当前性能值标准平方差,针对最大 平均当前性能值所对应的各个机架,选择最大平均当前性能值标准平方差所对应的机架, 作为待选择机架,再用A · R的值针对R进行更新,并返回步骤007。
[0068] 步骤010.判断本地数据节点中是否存在未分配存储的数据副本,是则返回步骤 008;否则针对本地数据节点上该数据块的各个数据副本的云存储方法结束。
[0069] 本发明所设计面向云存储的数据副本初始放置方法,基于传统数据副本放置方法 做出改进,利用统计学上的方法计算出数据节点的性能值,基于数据节点的性能值来选择 放置数据副本的数据节点,并且分别考虑数据副本的放置,既提高了数据存储与读取可靠 性,又保证了系统的性能。
[0070] 上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施 方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下 做出各种变化。
【主权项】
1. 一种面向云存储的数据副本初始放置方法,用于针对本地数据节点上对应任意一个 数据块的至少两个数据副本实现云存储,其特征在于,包括如下方法: 步骤001.针对本地数据节点上对应一个数据块的各个数据副本,随机选择一个数据副 本存储于本地数据节点上,然后进入步骤002; 步骤002.针对本地数据节点所在机架中、除本地数据节点之外的其余各个数据节点, 分别获得该各个数据节点的当前磁盘负载、当前网络带宽、当前平均服务时间和当前访问 故障概率,并且根据分别针对磁盘负载、网络带宽、平均服务时间和访问故障概率四种属性 预设、相加之和为一的各个权重值,获得该各个数据节点的当前性能值,并进入步骤003; 步骤003.针对本地数据节点所在机架中、除本地数据节点之外的其余各个数据节点, 获得其中最大当前性能值所对应的一个数据节点,并预测获得若该数据节点增加存储一个 数据副本后的预测性能值,再判断该预测性能值是否大于预设数据节点性能值下限,是则 针对本地数据节点中未分配存储的各个数据副本,随机选择一个数据副本存储于该预测性 能值所对应的数据节点上,并进入步骤004;否则进入步骤005; 步骤004.判断本地数据节点中是否存在未分配存储的数据副本,是则进入步骤005;否 则针对本地数据节点上该数据块的各个数据副本的云存储方法结束; 步骤005.获得W本地数据节点所在机架为圆屯、、预设半径R范围内,除本地数据节点所 在机架之外的其余各个机架,分别针对该各个机架,根据步骤002中的方法获得机架中各个 数据节点的当前性能值,获得该机架中所有数据节点的平均当前性能值,作为该机架的平 均当前性能值,进而分别获得该各个机架的平均当前性能值,然后进入步骤006; 步骤006.针对W本地数据节点所在机架为圆屯、、预设半径R范围内,除本地数据节点所 在机架之外的其余各个机架,获得最大平均当前性能值所对应的机架,作为待选择机架,然 后进入步骤007; 步骤007.获得待选择机架中最大当前性能值所对应的一个数据节点,并预测获得若该 数据节点增加存储一个数据副本后的预测性能值,再判断该预测性能值是否大于预设数据 节点性能值下限,是则针对本地数据节点中未分配存储的各个数据副本,随机选择一个数 据副本存储于该预测性能值所对应的数据节点上,并进入步骤OlO;否则进入步骤008; 步骤008.获得W本地数据节点所在机架为圆屯、,内径为R、外径为A ? R的圆圈范围内的 各个机架,根据步骤004中的方法,分别获得该各个机架的平均当前性能值,然后进入步骤 009;其中,A大于1; 步骤009.针对W本地数据节点所在机架为圆屯、,内径为R、外径为A ? R的圆圈范围内的 各个机架,获得最大平均当前性能值所对应的机架,更新作为待选择机架,再用A ? R的值针 对R进行更新,并返回步骤007; 步骤010.判断本地数据节点中是否存在未分配存储的数据副本,是则返回步骤008;否 则针对本地数据节点上该数据块的各个数据副本的云存储方法结束。2. 根据权利要求1所述一种面向云存储的数据副本初始放置方法,其特征在于:所述步 骤002具体包括如下: 针对本地数据节点所在机架中、除本地数据节点之外的其余各个数据节点,分别获得 该各个数据节点的当前磁盘负载Load、当前网络带宽BW、当前平均服务时间ST和当前访问 故障概率FP,并且根据分别针对磁盘负载、网络带宽、平均服务时间和访问故障概率四种属 性预设的权重值a、权重值e、权重值丫、权重值8,按如下公式,获得该各个数据节点的当前 性能值P, 其中,日+0+丫+5 = 1。3. 根据权利要求1或2所述一种面向云存储的数据副本初始放置方法,其特征在于:所 述步骤002中,数据节点的当前磁盘负载Load通过如下公式获得, Load=Wi*I0+W2*SIZE 其中,IO表示数据节点的当前磁盘I/O负载,SI ZE表示数据节点的当前磁盘空间负载,Wi 和W2分别表示针对磁盘I/O负载和磁盘空间负载预设的权重值,且W1+W2 = 1。4. 根据权利要求1或2所述一种面向云存储的数据副本初始放置方法,其特征在于:所 述步骤002中,数据节点的当前平挽服各时间ST诵讨血下公式获得,其中,N表示数据节点对应统计罔期内W仕努/广甄,STn表示数据节点对应统计周期内第 n个的服务时间。5. 根据权利要求1或2所述一种面向云存储的数据副本初始放置方法,其特征在于:所 述步骤002中,数据节点的当前访问故障概率FP通过如下公式获得,其中,unsuccess表示数据节点访问未成功的次数,success表示数据节点访问成功的 次数。6. 根据权利要求1所述一种面向云存储的数据副本初始放置方法,其特征在于,所述步 骤003和步骤007中,通过如下方法,预测获得若该数据节点增加存储一个数据副本后的预 测性能值Pnew: 根据云计算系统中的全局日志文件,获得该数据节点上当前已存储数据块的个数L,再 结合该数据节点的当前性能值P,通巧化下公式:获得若该数据节点增加存储一个数据副本后的预测性能值Pnew。 7 .根据权利要求1所述一种面向云存储的数据副本初始放置方法,其特征在于,所述步 骤006中,W本地数据节点所在机架为圆屯、、预设半径R范围内,除本地数据节点所在机架之 外的其余各个机架中,若最大平均当前性能值所对应机架的个数大于等于2,则根据该各个 机架的平均当前性能值,分别获得该各个机架的平均当前性能值标准平方差,针对最大平 均当前性能值所对应的各个机架,选择最大平均当前性能值标准平方差所对应的机架,作 为待选择机架; W及所述步骤009中,W本地数据节点所在机架为圆屯、,内径为R、外径为A ? R的圆圈范 围内的各个机架,若最大平均当前性能值所对应机架的个数大于等于2,则根据该各个机架 的平均当前性能值,分别获得该各个机架的平均当前性能值标准平方差,针对最大平均当 前性能值所对应的各个机架,选择最大平均当前性能值标准平方差所对应的机架,作为待 选择机架。
【文档编号】H04L29/08GK105915626SQ201610365538
【公开日】2016年8月31日
【申请日】2016年5月27日
【发明人】付雄, 赵玉杰, 邓松, 程春玲, 王俊昌, 王秀翠
【申请人】南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1