一种云环境下动态负载均衡方法技术

技术编号:19970296 阅读:57 留言:0更新日期:2019-01-03 16:11
本发明专利技术公开了一种云环境下的动态负载均衡方法。该方法针对云存储系统中的大规模数据并发访问问题,通过监控后端服务器集群中节点的CPU、内存、磁盘资源占用,结合云存储系统中应用程序对各类资源敏感程度的不同,使用TOPSIS算法为这些指标计算重要性比例,然后根据所定义的公式,为每一个节点计算负载程度。调度器随后根据该节点的权值进行动态调整,以实现数据访问的高效处理的同时充分利用服务器资源。本方法还为每一个节点定义了允许提供访问服务的资源占用阈值,超过该阈值的节点将被移出服务队列。本方法解决了常见负载均衡算法在复杂环境下表现出来的稳定性差和资源调度不均衡的问题,实现了一个兼具高可用性和高性能特点的云环境资源调度算法。

A Dynamic Load Balancing Method in Cloud Environment

The invention discloses a dynamic load balancing method in cloud environment. Aiming at the problem of large-scale data concurrent access in cloud storage system, this method monitors the CPU, memory and disk resource occupancy of nodes in the cluster of back-end servers, combines the different sensitivity of applications to various resources in cloud storage system, uses TOPSIS algorithm to calculate the proportion of importance for these indicators, and then calculates the load for each node according to the defined formula. Degree. The scheduler then dynamically adjusts the weight of the node to achieve efficient data access processing while making full use of server resources. The method also defines a resource occupancy threshold for each node to provide access services, and the nodes exceeding the threshold will be moved out of the service queue. This method solves the problems of poor stability and uneven resource scheduling of common load balancing algorithms in complex environments, and realizes a resource scheduling algorithm in cloud environment with high availability and high performance.

【技术实现步骤摘要】
一种云环境下动态负载均衡方法
本专利技术涉及一种负载均衡方法,特别是涉及一种用于处理云存储系统中大规模数据并发访问请求的动态负载均衡方法;属于一种云环境下的资源调度方法。
技术介绍
传统的互联网模式中,企业需要对所需求的计算和存储资源提前进行预估。由于不同企业务规模大小不一,其对资源的需求量往往也有较大区别。此外,为了能够正常处理高峰期可能发生的业务增长,往往会储备一定量额外的资源。这通常会导致资源利用率低,最终造成企业运营成本高昂。随着云计算时代的到来,企业引入云存储系统后,使得资源利用率得到了极大的提升。在云环境下,所涉及的数据吞吐量往往达到了TB甚至PB级别,单位时间的并发访问数量也很大。因而,将大规模的数据访问请求进行合理的调度,分发到后端存储集群中处理效率最高的节点,对于整个云环境下的数据访问效率至关重要。针对以上问题,现有的技术提出了以下方案。具体来讲,主要包括:1)轮询调度,负载均衡调度器将来自用户的访问请求轮流的发送到后端的每一个节点上。这种算法不考虑后端集群中的每一个节点本身的性能和其当前负载,对于负载均衡调度器来讲,每一个节点都处于同等地位。经过数学分析,这种算法的问题在于,在节点出现故障后,某个数据访问请求被成功处理的概率将大大降低,并且无法充分利用后端服务器的资源。2)最小连接数算法,负载均衡调度器记录了后端服务器集群中每一个节点的具体连接数,该连接数表明了当前该节点正在处理的请求数目。调度器会从后端节点中选择一个连接数最小的节点,用于处理当前请求。这种算法的问题在于由于节点的硬件配置不一,连接数往往不能真实反映其负载情况。3)加权轮询算法,负载均衡调度器会为后端集群中的每一个节点赋予一个权值,权值越大那么某请求被分配到该节点的概率越高。这种算法的问题在于大规模集群中节点的负载情况是实时变化的,使用固定的权值,往往无法实时集群的实时负载情况。
技术实现思路
本专利技术针对现有的负载均衡方案在复杂集群环境下存在不足,对大规模云存储系统数据访问请求调度提供一种处理效率高,可避免资源占用率过高带来的节点宕机或是其他软硬件故障的动态负载均衡方法。本专利技术目的通过如下技术方案实现:一种云环境下动态负载均衡方法,包括如下步骤:1)客户端与负载均衡调度器建立TCP连接;2)负载均衡调度器将客户端传输过来的数据存储、数据共享和数据备份请求解析为具体的文件读写操作;3)负载均衡调度器获取后端服务器集群中的每一个节点资源占用情况,利用节点资源占用情况计算节点的负载程度;所述节点资源占用情况是以Si表示集群中的第i个节点,第i个节点当前的CPU资源占用记为Loadcpu(Si),内存资源占用为Loadmem(Si),磁盘I/O占用为Loadio(Si),计算方法分别为:其中Δc(Si)为时间段t1~t2内CPU占用总时间的增量;Δ(idle(Si))表示时间段t1~t2内CPU空闲总时间的增量,Δc(Si)和Δ(idle(Si))通过读取Linux下的/proc/cpuinfo文件中的数据计算得到;其中mused(Si)节点表示该节点在某个时间点已经占用的内存,而midle(Si)表示该节点在某个事件点所剩余的内存,这两个值通过读取Linux下/proc/meminfo文件来获取;Loadio(Si)通过开启util项直接使用Linux下的iostat工具来获取;根据Loadcpu(Si),Loadmem(Si),Loadio(Si),使用如下公式确定每一个节点负载程度Wi,Wi表示集群中第i个节点的负载程度:上式中,k1,k2,k3分别为CPU,内存,磁盘I/O资源占用指标在计算负载程度时的重要性比例,满足i∈{1,2,3},ki∈(0,1),4)负载均衡调度器选择当前负载程度最低的节点来处理当前请求,在某个时间点一个请求被分配到的节点Sassign,节点Sassign为当前所有节点中负载程度最低的节点,计算公式为:5)针对CPU资源占用,内存资源占用,磁盘I/O占用设置阈值,分别记为thresholdcpu,thresholdmem,thresholdio;当CPU资源占用,内存资源占用和磁盘I/O占用其中之一达到或超过所设置阈值,Loadcpu(Si)≥thresholdcpu,或Loadmem(Si)≥thresholdmem,或Loadio(Si)≥thresholdio时,将第i个节点移除服务队列,不参与负载程度的排序过程;6)每次所选取的服务节点为当前综合负载最低,且未有任何指标超过所设置阈值的节点,最终实现对客户端请求的调度以及服务器资源的高效利用。为进一步实现本专利技术目的,优选地,计算指标权值时的重要性比例k1,k2,k3使用TOPSIS算法,通过输入三个指标的重要程度对比表,该表通过对k1,k2,k3取不同值,获取算法在不同评价指标上的表现,再将其量化为矩阵,计算出k1,k2,k3三个指标在算法中占有的比例:1)统一各项算法评价指标的单调性,吞吐率数据集合P,请求处理时间数据集合Q,请求等待时间集合R,采用求倒法,统一其单调性,使其均为越高越好;2)对各项指标进行归一化处理;3)进行加权处理,依据各项指标的重要程度分配权值,得到一个矩阵;4)确定最优方案和最差方案,从上一矩阵中选出各项指标的参数值的最大值和最小值,得到最优方案和最差方案;6)分别计算各个评价对象与最优方案及最差方案的距离;7)计算综合评价指标。进一步地,步骤3中权值计算公式中的k1,k2,k3采用TOPSIS算法,结合实际应用景中对处理请求对三个不同指标的不同敏感度来确定,其中,具体的过程如下:1)输入三个指标的重要程度对比表,计算标准化决策矩阵D;2)确定理想解和负理想解;3)对于每一个待确定权值的参数,计算其到理想解和负理想解的距离,分别记为S+和S-,一般使用多维欧氏距离;4)对于每一个参数,使用如下公式计算一个比率R,该比率代表了其在几个指标中所代表的重要性:通过该公式所计算出来的重要性,结合实际的应用场景来确定k1,k2,k3的值。本专利技术与现有算法对比,具有以下显著优点:1)本专利技术充分考虑到了在实际的大规模集群中,由于单个服务器上处理的任务数量和复杂程度都在不断变化,因而需要对节点的权值进行实时动态调整,充分反映节点的实时服务能力,以充分提升服务器资源的利用率;2)本专利技术使用服务器上多个资源占用指标来为节点计算权值,指标在权值计算公式中所占有的比例可以根据实际的应用场景来进行调整,相比现有算法,要更加契合实际的需求,因而能够充分提升调度器的处理效率;3)本专利技术为节点权值的评价指标设置了阈值,当达到或是超过该阈值的时候,将从服务队列中移除,充分保证了集群向外提供服务的稳定性,避免由于资源占用率过高带来的节点宕机或是其他软硬件故障。附图说明:图1为本专利技术云环境下动态负载均衡方法的模型。图2为本专利技术权值计算公式参数选取过程图。图3为本专利技术云环境下动态负载均衡方法的执行过程图。图4为本专利技术数据访问与存储架构。图5为本专利技术与加权轮询算法请求等待时间对比图。图6为本专利技术与加权轮序算法吞吐率对比图。具体实施方式下面结合附图和实施例对本专利技术作进一步说明,需要说明的是,实施例仅为了更加清晰的说明本
技术实现思路
,而不是为了限制本本文档来自技高网
...

【技术保护点】
1.一种云环境下动态负载均衡方法,其特征在于包括如下步骤:1)客户端与负载均衡调度器建立TCP连接;2)负载均衡调度器将客户端传输过来的数据存储、数据共享和数据备份请求解析为具体的文件读写操作;3)负载均衡调度器获取后端服务器集群中的每一个节点资源占用情况,利用节点资源占用情况计算节点的负载程度;所述节点资源占用情况是以Si表示集群中的第i个节点,第i个节点当前的CPU资源占用记为Loadcpu(Si),内存资源占用为Loadmem(Si),磁盘I/O占用为Loadio(Si),计算方法分别为:

【技术特征摘要】
1.一种云环境下动态负载均衡方法,其特征在于包括如下步骤:1)客户端与负载均衡调度器建立TCP连接;2)负载均衡调度器将客户端传输过来的数据存储、数据共享和数据备份请求解析为具体的文件读写操作;3)负载均衡调度器获取后端服务器集群中的每一个节点资源占用情况,利用节点资源占用情况计算节点的负载程度;所述节点资源占用情况是以Si表示集群中的第i个节点,第i个节点当前的CPU资源占用记为Loadcpu(Si),内存资源占用为Loadmem(Si),磁盘I/O占用为Loadio(Si),计算方法分别为:其中Δc(Si)为时间段t1~t2内CPU占用总时间的增量;Δ(idle(Si))表示时间段t1~t2内CPU空闲总时间的增量,Δc(Si)和Δ(idle(Si))通过读取Linux下的/proc/cpuinfo文件中的数据计算得到;其中mused(Si)节点表示该节点在某个时间点已经占用的内存,而midle(Si)表示该节点在某个事件点所剩余的内存,这两个值通过读取Linux下/proc/meminfo文件来获取;Loadio(Si)通过开启util项直接使用Linux下的iostat工具来获取;根据Loadcpu(Si),Loadmem(Si),Loadio(Si),使用如下公式确定每一个节点负载程度Wi,Wi表示集群中第i个节点的负载程度:上式中,k1,k2,k3分别为CPU,内存,磁盘I/O资源占用指标在计算负载程度时的重要性比例,满足i∈{1,2,3},ki∈(0,1),4)负载均衡调度器选择当前负载程度最低的节点来处理当前请求,在某个时间点一个请求被分配到的节点Sassign,节点Sassign为当前所有节点中负载程度最低的节点,计算公式为:5)针对CPU资源占用,内存资源占用,磁盘I/O占用设置阈值,分别记为thresholdcpu,thresholdmem,thresholdio;当CPU资源占用,内存资源...

【专利技术属性】
技术研发人员:李拥军郑旭谢嵘邱双旭
申请(专利权)人:华南理工大学
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1