一种基于云存储的负载均衡计算方法.pdf

上传人:GAME****980 文档编号:1682022 上传时间:2018-07-04 格式:PDF 页数:15 大小:921.53KB
返回 下载 相关 举报
摘要
申请专利号:

CN201510239661.4

申请日:

2015.05.12

公开号:

CN104796496A

公开日:

2015.07.22

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):H04L 29/08申请日:20150512|||公开

IPC分类号:

H04L29/08; G06F9/50

主分类号:

H04L29/08

申请人:

国网智能电网研究院; 国家电网公司

发明人:

李尼格; 蒋诚智; 余勇; 石聪聪; 徐敏; 郭骞; 范杰; 高鹏; 俞庚申; 曹宛恬; 叶云; 冯谷

地址:

102211北京市昌平区小汤山镇大东流村路270号(未来科技城)

优先权:

专利代理机构:

北京安博达知识产权代理有限公司11271

代理人:

徐国文

PDF下载: PDF下载
内容摘要

本发明提出一种基于云存储的负载均衡计算方法,当收到文件写入请求,中央协调器中的负载均衡模块都以一种均衡所有公有云存储节点负载的方式分发输入的文件块;其中,负载均衡模块由协调代理、节点定位和负载重均衡三个子模块组成;所述的负载均衡计算方法包括:(1)获取存储节点的状态信息;(2)计算出负载较轻的存储节点,将其IP地址记录下来;(3)计算出需要移动的负载大小并进行数据的移动;(4)重复步骤(1~3)直到存储节点的负载均衡为止。本发明给出了公有云存储节点负载状态的量化途径,明确了公有云存储集群负载均衡的核心算法,具有实用、高效的属性特点。

权利要求书

权利要求书1.  一种基于云存储的负载均衡计算方法,其特征在于,当收到文件写入请求,中央协调器中的负载均衡模块都以一种均衡所有公有云存储节点负载的方式分发输入的文件块;其中,负载均衡模块由协调代理、节点定位和负载重均衡三个子模块组成;所述的负载均衡计算方法包括:(1)获取存储节点的状态信息;(2)计算出负载较轻的存储节点,将其IP地址记录下来;(3)计算出需要移动的负载大小并进行数据的移动;(4)重复步骤(1~3)直到存储节点的负载均衡为止。2.  如权利要求1所述的一种基于云存储的负载均衡计算方法,其特征在于,所述步骤(1)中,是由协调代理子模块通过存储节点获得IP地址、存储容量、已用空间、剩余空间和网络带宽信息,并收集到协调代理子模块。3.  如权利要求1或2所述的一种基于云存储的负载均衡计算方法,其特征在于,所述步骤(1)中状态信息采用一个矢量表示,由各个存储节点的存储容量、已用空间、剩余空间、IP地址、网络利用率、节点权值、理想负载和负载状态构成;协调代理子模块接收数据消重模块发送的文件块,并跨越存储节点进行分发以均衡整个公有云存储集群的负载。4.  如权利要求1所述的一种基于云存储的负载均衡计算方法,其特征在于,所述步骤(2)中,是由节点定位子模块根据协调代理子模块传过来的信息,计算出负载较轻的存储节点,将其IP地址记录下来,并启动负载重均衡子模块。5.  如权利要求4所述的一种基于云存储的负载均衡计算方法,其特征在于,所述节点定位子模块收集协调代理子模块发送过来的所有存储节点的状态信息和文件块,确定可存储文件块的存储节点,根据存储节点的状态信息,计算出每个存储节点的权值:weight=(w1*networkUtilization)+(w2*residualSpace/totalCapacity)其中,w1是网络利用率networkUtilization的权值因子,w2是剩余空间residualSpace的权值因子,它们分别被设定为0.25和0.75,存储节点根据自己的权值进行降序排列,并按次序访问,传送过来的第一个文件块将被安排存放于第一个能够容纳它的存储节点中,第二个文件块依次类推。6.  如权利要求1所述的一种基于云存储的负载均衡计算方法,其特征在于,所述步骤(3)中,是由负载重均衡子模块通过负载重均衡算法计算出需要移动的负载大小,利用数据迁移算法进行数据的移动。7.  如权利要求6所述的一种基于云存储的负载均衡计算方法,其特征在于,所述负载重均衡算法为将每个存储节点的已用空间与其偏低负载阈值、偏高负载阈值进行比较,如存储节点的已用空间小于偏低负载阈值,则认为该存储节点是轻权值节点,其负载状态被设置为“low”;如存储节点的已用空间大于偏高负载阈值,则认为该存储节点是重权值节点,其负载状态被设置为“high”;轻权值节点以降序方式排列,重权值节点以升序方式排列;排序完成后,每个轻权值节点与一个相应的重权值节点进行匹配以使存储节点的负载重新均衡;如重权值节点不能找到一个轻权值节点进行匹配,则此次匹配停止。8.  如权利要求6所述的一种基于云存储的负载均衡计算方法,其特征在于,所述数据迁移算法为中央协调器存储有一个文件索引,每个存储节点保存了相关迁移参数,文件索引保存了全部文件信息,包括文件名和文件哈希值;根据被移动负载Load To BeMoved和被接收负载Load To Be Accepted计算可以移动多少数据到轻权值节点,计算重权值节点和轻权值节点的可调整负载的公式如下:LoadToBeMoved=heavy->utilized-heavy->idealLoadLoadToBeAccepted=light->utilized-light->idealLoad根据两个值计算结果判断,如LoadToBeAccepted大于或等于LoadToBeMoved,数据将会从重权值节点迁移到轻权值节点;并判断文件索引中的文件哈希值可以使用迁移索引检查其是否存在,如不存在,文件块将被转移到目标存储节点上,并且迁移索引表会被更新。

说明书

说明书一种基于云存储的负载均衡计算方法
技术领域
本发明涉及一种计算方法,具体涉及一种基于云存储的负载均衡计算方法。
背景技术
公有云存储是一种利用商用机器构建并为公众用户提供数据存储服务的集群。公有云存储集群包含有一组异构配置的存储节点S={Si/iε(1,..,n)}和一台充当中央协调器(Central Coordinator,CC)的商用机器。中央协调器是公有云存储集群与用户之间的交互接口,并对所有公有云存储集群的存储资源进行协调,通常包括存储控制模块、数据消重模块和负载均衡模块三个组件,如图1所示。
当所有商用机器的存储资源被统一整合后,公有云存储集群即可通过互联网提供服务。其中,通过传输控制协议(Transmission Control Protocol,TCP)协调各个商用机器,通过文件传输协议(File Transfer Protocol,FTP)在商用机器之间传输文件。当公有云存储集群启动时,每个存储节点将通过中央协调器注册并定期更新自身的详细信息,包括已用空间、剩余空间、IP地址以及网络利用率等。在收到一个文件写入请求时,中央协调器会把该请求推送给存储控制模块。存储控制模块负责处理用户提交的存储请求,将把输入文件分割成若干文件块并发送给数据消重模块;数据消重模块在收到存储控制模块发送过来的众多文件块后,将进行消重以形成独一无二的文件块,并继续发送给负载均衡模块;负载均衡模块利用特定的负载均衡算法,根据各个存储节点的负载状态合理分发这些文件块到各个存储节点上,以实现公有云存储集群的负载均衡。
由于公有云存储集群服务于公众用户,其存储空间需要不断扩充才能满足数量日益剧增的公众用户的需求。但是,动态扩充新的存储节点和频繁添加或删除文件都会造成整个公有云存储集群的负载不再均衡。公有云存储集群负载不均衡的原因主要如下:
1、增加新的存储节点:相对于已有存储节点,新增加的存储节点可能具有较少的数据或者没有数据;
2、添加或者删除文件:频繁的添加或删除文件操作,可能逐渐导致公有云存储集群的负载不再均衡;
3、存储节点负载过重:当某个存储节点的负载超过预定阈值,该存储节点状态将会变成过载。
发明内容
针对现有技术的不足,本发明提出一种基于云存储的负载均衡计算方法。负载均衡模块由协调代理、节点定位和负载重均衡三个子模块组成。本发明所设计的节点定位算法,能够根据所有存储节点的状态信息和预先设定的负载阈值,计算出所有存储节点的负载状态,并进行分离排序,为负载均衡指定了可以迁移数据的目标存储节点。本发明在明确了可以增加负载的存储节点之后,还需要计算出能够移动的负载数量以及移动的方法。本发明所设计的负载重均衡算法既可以解决新增存储节点所造成的负载不均衡问题,也可以解决频繁使用公有云存储集群所造成的负载不均衡问题;数据迁移算法能够快速地将被调整数据迁移到目标存储节点上。
本发明的目的是采用下述技术方案实现的:
一种基于云存储的负载均衡计算方法,其改进之处在于,当收到文件写入请求,中央协调器中的负载均衡模块都以一种均衡所有公有云存储节点负载的方式分发输入的文件块;其中,负载均衡模块由协调代理、节点定位和负载重均衡三个子模块组成;所述的负载均衡计算方法包括:
(1)获取存储节点的状态信息;
(2)计算出负载较轻的存储节点,将其IP地址记录下来;
(3)计算出需要移动的负载大小并进行数据的移动;
(4)重复步骤(1~3)直到存储节点的负载均衡为止。
优选的,所述步骤(1)中,是由协调代理子模块通过存储节点获得IP地址、存储容量、已用空间、剩余空间和网络带宽信息,并收集到协调代理子模块。
进一步地,所述步骤(1)中状态信息采用一个矢量表示,由各个存储节点的存储容量、已用空间、剩余空间、IP地址、网络利用率、节点权值、理想负载和负载状态构成;协调代理子模块接收数据消重模块发送的文件块,并跨越存储节点进行分发以均衡整个公有云存储集群的负载。
优选的,所述步骤(2)中,是由节点定位子模块根据协调代理子模块传过来的信息,计算出负载较轻的存储节点,将其IP地址记录下来,并启动负载重均衡子模块。
进一步地,所述节点定位子模块收集协调代理子模块发送过来的所有存储节点的状态信息和文件块,确定可存储文件块的存储节点,根据存储节点的状态信息,计算出每 个存储节点的权值:
weight=(w1*networkUtilization)+(w2*residualSpace/totalCapacity)
其中,w1是网络利用率networkUtilization的权值因子,w2是剩余空间residualSpace的权值因子,它们分别被设定为0.25和0.75,存储节点根据自己的权值进行降序排列,并按次序访问,传送过来的第一个文件块将被安排存放于第一个能够容纳它的存储节点中,第二个文件块依次类推。
优选的,所述步骤(3)中,是由负载重均衡子模块通过负载重均衡算法计算出需要移动的负载大小,利用数据迁移算法进行数据的移动。
进一步地,所述负载重均衡算法为将每个存储节点的已用空间与其偏低负载阈值、偏高负载阈值进行比较,如存储节点的已用空间小于偏低负载阈值,则认为该存储节点是轻权值节点,其负载状态被设置为“low”;如存储节点的已用空间大于偏高负载阈值,则认为该存储节点是重权值节点,其负载状态被设置为“high”;轻权值节点以降序方式排列,重权值节点以升序方式排列;排序完成后,每个轻权值节点与一个相应的重权值节点进行匹配以使存储节点的负载重新均衡;如重权值节点不能找到一个轻权值节点进行匹配,则此次匹配停止。
进一步地,所述数据迁移算法为中央协调器存储有一个文件索引,每个存储节点保存了相关迁移参数,文件索引保存了全部文件信息,包括文件名和文件哈希值;根据被移动负载Load To Be Moved和被接收负载Load To Be Accepted计算可以移动多少数据到轻权值节点,计算重权值节点和轻权值节点的可调整负载的公式如下:
LoadToBeMoved=heavy->utilized-heavy->idealLoad
LoadToBeAccepted=light->utilized-light->idealLoad
根据两个值计算结果判断,如LoadToBeAccepted大于或等于LoadToBeMoved,数据将会从重权值节点迁移到轻权值节点;并判断文件索引中的文件哈希值可以使用迁移索引检查其是否存在,如不存在,文件块将被转移到目标存储节点上,并且迁移索引表会被更新。
与现有技术比,本发明的有益效果为:
本发明所设计的负载均衡机制能够很容易地实现为当前主流公有云存储平台的一个模块,在不需调整原有公有云存储平台的情况下,很方便地进行编译安装或卸载删除, 真正遵循了软件工程中的模块化开发规范。解决了公有云存储集群中存储节点容易过载或者资源利用率不高的问题,为充分发挥公有云存储集群的性能和提高公有云存储集群的资源效率提供了一种新颖的解决方案。
本发明所设计的一系列方法,经过原型实现和仿真测试,证明都是实际可行而且能够发挥相应功能的。同时,所有算法的设计原理相对简单、易于实现,相应算法的执行效率也很高,不会影响原有公有云存储平台的效率。
附图说明
图1为本发明提供的公有云存储集群的架构。
图2为本发明提供的创建的测试平台。
图3为本发明提供的存储集群的负载分布。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步的详细说明。
本发明一种基于云存储的负载均衡计算方法,无论何时收到文件写入请求,中央协调器中的负载均衡模块都以一种均衡所有公有云存储节点负载的方式分发输入的文件块。负载均衡模块由协调代理、节点定位和负载重均衡三个子模块组成。
A、协调代理子模块
该子模块负责收集公有云存储集群所有存储节点的状态信息。状态信息采用一个矢量表示,由各个存储节点的存储容量、已用空间、剩余空间、IP地址、网络利用率、节点权值、理想负载和负载状态等构成。协调代理子模块接收数据消重模块发送过来的独一无二的文件块,并跨越所有存储节点进行分发以均衡整个公有云存储集群的负载。协调代理子模块实现算法如下:
算法1:协调代理算法—CoordinatorAgent(Storage,size)
输入:


处理:
1)获取一个状态信息矢量中记录的各个存储节点的状态信息;
2)接收将被分发到存储节点的一个文件的所有文件块;
3)计算接收到的文件的大小;
4)调用节点定位算法NodePlacement(sptr,ftpr),得到一个存储节点的IP地址;
5)分发上述文件的所有文件块到该存储节点中;
6)执行操作:loadCluster=loadCluster+(2*size);
7)调用负载重均衡算法LoadRebalance(sptr,lptr,hptr,loadCluster),返回公有云存储集群的轻权值节点和重权值节点排序表;
8)利用指针lptr和hptr标识轻权值节点和重权值节点对;
9)通知重权值节点其可以迁移数据的对应的轻权值节点;
输出:指向某个存储节点的指针。
B、节点定位子模块
该子模块首先收集协调代理子模块发送过来的所有存储节点的状态信息和文件块,然后确定可以存储文件块的存储节点。根据所有存储节点的状态信息,可以计算出每个存储节点的权值:
weight=(w1*networkUtilization)+(w2*residualSpace/totalCapacity)
其中,w1是网络利用率(networkUtilization)的权值因子,w2是剩余空间(residualSpace)的权值因子,它们分别被设定为0.25和0.75。所有存储节点根据自己的权值进行降序排列,并按次序访问。传送过来的第一个文件块将被安排存放于第一个能够容纳它的存储节点中,第二个文件块依次类推,具体算法如下:
算法2:节点定位算法—NodePlacement(Storage*sptr,File*fptr)
输入:

处理:

C、负载重均衡子模块
该子模块负责定期检查存储节点的负载状态(即过轻分配负载或过重分配负载),并进行所有存储节点的负载调整。为了实现这点,首先需要找到各个存储节点的理想负载阈值,方法如下:
一个存储节点的理想负载=(集群的负载总和/集群的容量总和)*该存储节点的容量
根据计算出来的理想负载阈值,各个存储节点的偏低负载阈值和偏高负载阈值也都可以确定。这在算法3中说明。
(1)负载重均衡算法
将每个存储节点的已用空间与其偏低负载阈值、偏高负载阈值进行比较,如果存储节点的已用空间小于偏低负载阈值,则认为该存储节点是轻权值节点,其负载状态被设置为“low”;如果存储节点的已用空间大于偏高负载阈值,则认为该存储节点是重权值节点,其负载状态被设置为“high”。之后,轻权值节点以降序方式排列,重权值节点以升序方式排列。一旦排序完成,每个轻权值节点与一个相应的重权值节点进行匹配以使所有存储节点的负载重新均衡。如果重权值节点不能找到一个轻权值节点进行匹配,则此次匹配停止。
算法3:负载重均衡算法—LoadRebalance(sptr,lptr,hptr,loadCluster)
输入:

处理:


输出:分离之后的轻权值节点和重权值节点。
(2)数据迁移算法
为了均衡整个公有云存储集群的负载,重权值节点的负载必须迁移到轻权值节点之中,这就是数据迁移。它是通过在每个存储节点中执行数据迁移算法得到实现。为了便于数据迁移,中央协调器存储有一个文件索引,每个存储节点保存了相关迁移参数。文件索引保存了全部文件信息,包括文件名和文件对应的哈希值,如表1所示。
表1文件索引
文件名哈希值File 1.txt34b20bb545…File 2.txtaq54sw65de…File 3.txtjknsf54jn87j………………………file n.txt58hgf65bjh98…
数据迁移所涉及的参数主要包括文件块路径的哈希值、文件块路径和文件块大小等,如表2所示。
表2迁移索引

当数据从重权值节点迁移到轻权值节点,必须考虑到两个方面:第一,完成数据迁移后,轻权值节点不能变成重权值节点。因此,根据被移动负载(Load To Be Moved)和被接收负载(Load To Be Accepted)能够计算出可以移动多少数据到轻权值节点中。计算重权值节点和轻权值节点的可调整负载的公式如下:
LoadToBeMoved=heavy->utilized-heavy->idealLoad
LoadToBeAccepted=light->utilized-light->idealLoad
两个值计算出来后,如果LoadToBeAccepted大于或等于LoadToBeMoved,数据将会从重权值节点迁移到轻权值节点。
第二,文件块的副本从重权值节点迁移出后,轻权值节点不应存在该副本。因此,文件索引中的文件哈希值可以使用迁移索引检查其是否存在。如果不存在,相应的文件块将被转移到目标存储节点上,并且迁移索引表会被更新。具体算法如下:
算法4:数据迁移算法—DataMigraion(storage light,storage heavy)
输入:
Storage light,heavy;
int j,k;
处理:

通知维护索引的机器所发生的修改;
输出:数据从重权值节点迁移到轻权值节点。
实施例
下面通过编码实现所设计的负载均衡算法和搭建所设计算法的仿真测试环境,进一步阐述本发明。
在本发明所设计算法的原型实现中,公有云存储环境是基于开源Linux的Eucalyptus框架3.2版构建的,并采用Walrus控制器作为存储控制模块,利用Eucalyptus框架的原有重复数据删除组件充当数据消重模块。本发明所提出的负载均衡算法被实现为公有云存储环境的一个功能模块-负载均衡模块,很容易地编译和添加到公有云存储环境中。其中,协调代理子模块通过TCP客户端(即存储节点)获得它们的IP地址、存储容量、已用空间、剩余空间和网络带宽等信息,并收集到TCP服务器(即协调代理子模块);节点定位子模块根据协调代理子模块传过来的各种信息,计算出负载较轻的存储节点,将其IP地址记录下来,并启动负载重均衡子模块;负载重均衡子模块通过负载重均衡算法计算出需要移动的负载大小,然后利用数据迁移算法进行数据的移动。重复执行所有模块,直到所有存储节点的负载相对均衡为止。
另外,为了检测本发明所设计算法的有效性,模拟了一个与真实环境非常接近的测试环境。该测试环境包括4台机器,每台机器具有8GB硬盘、4GB内存容量,采用英特尔酷睿i5、i7处理器的配置。其中,一台机器作为中央协调器,运行本发明所设计的一系列算法,并充当TCP服务器和FTP客户端。其余3台机器作为存储节点,充当TCP 客户端和FTP服务器,如图2所示。
为了检测负载是否已经分布到所有存储节点,每个存储节点的负载根据下面的定义进行计算:
loadNode=utilizedSpace/totalCapacity
各个存储节点的负载分布情况以列表形式显示,如图3所示,正是整个存储集群的负载平衡分布。尽管一开始公有云存储集群的负载处于均衡状态,但是在一段时间后,公有云存储集群中的存储节点可能会变成轻负载节点或重负载节点。为了使公有云存储集群再次恢复负载均衡,就需要使用负载重均衡算法:公有云存储集群中的重权值节点和轻权值节点进行配对,然后执行数据迁移,最后整个公有云存储集群的负载再次均衡。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,所属领域的普通技术人员参照上述实施例依然可以对本发明的具体实施方式进行修改或者等同替换,这些未脱离本发明精神和范围的任何修改或者等同替换,均在申请待批的本发明的权利要求保护范围之内。

一种基于云存储的负载均衡计算方法.pdf_第1页
第1页 / 共15页
一种基于云存储的负载均衡计算方法.pdf_第2页
第2页 / 共15页
一种基于云存储的负载均衡计算方法.pdf_第3页
第3页 / 共15页
点击查看更多>>
资源描述

《一种基于云存储的负载均衡计算方法.pdf》由会员分享,可在线阅读,更多相关《一种基于云存储的负载均衡计算方法.pdf(15页珍藏版)》请在专利查询网上搜索。

本发明提出一种基于云存储的负载均衡计算方法,当收到文件写入请求,中央协调器中的负载均衡模块都以一种均衡所有公有云存储节点负载的方式分发输入的文件块;其中,负载均衡模块由协调代理、节点定位和负载重均衡三个子模块组成;所述的负载均衡计算方法包括:(1)获取存储节点的状态信息;(2)计算出负载较轻的存储节点,将其IP地址记录下来;(3)计算出需要移动的负载大小并进行数据的移动;(4)重复步骤(13)直到。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1