负载均衡方法及设备技术

技术编号:14760428 阅读:81 留言:0更新日期:2017-03-03 10:47
本申请的目的是提供一种负载均衡方法及设备,具体地,获取每一分区在每个服务器上的数据本地化率,其中,数据本地化率为分区存储于某一服务器所对应的物理机上的本地数据与分区的总数据的比值;将每一分区的数据本地化率最高的服务器确定为分区对应的目标服务器;若分区当前所在服务器与其对应的目标服务器为不同的服务器,则将分区迁移至该分区对应的目标服务器。与现有技术相比,本申请的方案根据数据本地化率将每个分区分配至本地化率最高的服务器中,在处理数据查询请求时,由于每个分区当前被分配到的服务器中数据本地化率较高,大部分的数据能够在本地服务器的磁盘中获取,因此能够很大程度上降低分区数据远程读取的概率,提高读取性能。

【技术实现步骤摘要】

本申请涉及计算机领域,尤其涉及一种负载均衡方法及设备
技术介绍
在分布式数据存储系统中,会按照字典序对一个数据表进行切片,每一片称作一个分区,并把这些分区分发到集群中的服务器上。如何将这些分区均匀地分发或动态调整,就是系统中的负载均衡方法要解决的问题。负载均衡方法的好坏会直接影响到数据存储是否均匀、业务读写请求是否均匀。在极端的情况下,如果均衡失效,所有分区被调度到一台物理机上,那么整个集群的服务能力等价于一台物理机的服务能力,集群的性能就变成和单机一样了。现有的分布式存储系统中的负载均衡方法一般都是基于分区负载数的均衡,其目标是使得各个服务器上的分区数目基本达到相近。其基本方式如下:首先获取所有服务器上的分区负载数,计算每个服务器上的平均分区负载数,将超过分区负载数过多的服务器上的分区迁移至分区负载数过少的服务器中,以实现负载均衡。当系统中的一些物理机重启后,分区会被重新分配,在这一过程中,由于在目前的负载均衡方法仅考虑分区负载数的因素,导致分区被分配到在各个服务器上的概率是一样的,从而使得分区数据远程读取的概率大大提高。由于在远程读取时,需要访问远程服务器上的磁盘数据,相比于本地读取,远程读取需要额外的网络开销,因此读取性能较差。因此,在采用现有的负载均衡方法对分布式存储系统进行负载均衡时,分区分配后的数据本地化率不高,从而使得整个系统的读取性能较差。
技术实现思路
本申请的一个目的是提供一种负载均衡方法及设备,以解决现有技术中分区的数据本地化率不高、读取性能较差的问题。为实现上述目的,本申请提供了一种负载均衡方法,该方法包括:获取每一分区在每个服务器上的数据本地化率,其中,所述数据本地化率为所述分区存储于某一服务器所对应的物理机上的本地数据与所述分区的总数据的比值;将每一分区的数据本地化率最高的服务器确定为所述分区对应的目标服务器;若所述分区当前所在服务器与其对应的目标服务器为不同的服务器,则将所述分区迁移至该分区对应的目标服务器。进一步地,将每一分区的数据本地化率最高的服务器确定为所述分区对应的目标服务器,包括:若某一分区当前所在服务器的数据本地化率与其数据本地化率最高的服务器的数据本地化率之差大于预设值,则将所述分区的数据本地化率最高的服务器确定为所述分区对应的目标服务器。进一步地,在将每一分区的数据本地化率最高的服务器确定为所述分区对应的目标服务器之后,以及将所述分区迁移至该分区对应的目标服务器之前,还包括:计算每个服务器的预测分区负载数,并根据所述预测分区负载数确定高负载服务器以及低负载服务器;其中,所述预测分区负载数为若将每个分区迁移至该分区对应的目标服务器后,每个服务器上将会存在的分区的数量;若某一分区对应的目标服务器为高负载服务器,且所述分区为所述目标服务器上将会存在的所有分区中数据本地化率较低的N个分区之一,则将所述分区对应的目标服务器变更为所述低负载服务器,其中,N为正整数。进一步地,根据所述预测分区负载数确定高负载服务器以及低负载服务器,包括:将所述预测分区负载数高于预设负载范围上限的服务器确定为高负载服务器,将所述预测分区负载数低于预设负载范围下限的服务器确定为低负载服务器。进一步地,N为所述高负载服务器的预测分区负载数与所有服务器的平均预测分区负载数之差。进一步地,将所述分区迁移至该分区对应的目标服务器之后,还包括:获取每个服务器的当前分区负载数,并根据所述当前分区负载数确定高负载服务器以及低负载服务器;若某一分区当前所在的服务器为高负载服务器,且所述分区为当前所在的服务器上所有分区中数据本地化率较低的N个分区之一,则将所述分区对应的目标服务器变更为所述低负载服务器,其中,N为正整数;若所述分区当前所在服务器与其对应的目标服务器为不同的服务器,则将所述分区迁移至该分区对应的目标服务器。进一步地,根据所述当前分区负载数确定高负载服务器以及低负载服务器,包括:将所述当前分区负载数高于预设负载范围上限的服务器确定为高负载服务器,将所述当前分区负载数低于预设负载范围下限的服务器确定为低负载服务器。进一步地,N为所述高负载服务器的当前分区负载数与所有服务器的平均当前分区负载数之差。进一步地,将所述分区对应的目标服务器变更为所述低负载服务器,包括:当所述低负载服务器为多个时,根据所述分区在所述低负载服务器的数据本地化率,将所述分区对应的目标服务器变更为所述分区的数据本地化率最高的低负载服务器。进一步地,将所述分区迁移至该分区对应的目标服务器,包括:根据预设的间隔时间依次将每个分区迁移至该分区对应的目标服务器。基于本申请的另一方面,还提供了一种负载均衡设备,该设备包括:本地化率获取装置,用于获取每一分区在每个服务器上的数据本地化率,其中,所述数据本地化率为所述分区存储于某一服务器所对应的物理机上的本地数据与所述分区的总数据的比值;目标确定装置,用于将每一分区的数据本地化率最高的服务器确定为所述分区对应的目标服务器;分区迁移装置,用于若所述分区当前所在服务器与其对应的目标服务器为不同的服务器,则将所述分区迁移至该分区对应的目标服务器。进一步地,所述目标确定装置,用于若某一分区当前所在服务器的数据本地化率与其数据本地化率最高的服务器的数据本地化率之差大于预设值,则将所述分区的数据本地化率最高的服务器确定为所述分区对应的目标服务器。进一步地,该设备还包括:负载确定装置,用于在将每一分区的数据本地化率最高的服务器确定为所述分区对应的目标服务器之后,计算每个服务器的预测分区负载数,并根据所述预测分区负载数确定高负载服务器以及低负载服务器;其中,所述预测分区负载数为若将每个分区迁移至该分区对应的目标服务器后,每个服务器上将会存在的分区的数量;目标变更装置,用于在将所述分区迁移至该分区对应的目标服务器之前,若某一分区对应的目标服务器为高负载服务器,且所述分区为所述目标服务器上将会存在的所有分区中数据本地化率较低的N个分区之一,则将所述分区对应的目标服务器变更为所述低负载服务器,其中,N为正整数。进一步地,所述负载确定装置,用于将所述预测分区负载数高于预设负载范围上限的服务器确定为高负载服务器,将所述预测分区负载数低于预设负载范围下限的服务器确定为低负载服务器。进一步地,N为所述高负载服务器的预测分区负载数与所有服务器的平均预测分区负载数之差。进一步地,该设备还包括:负载确定装置,用于在将所述分区迁移至该分区对应的目标服务器之后,获取每个服务器的当前分区负载数,并根据所述当前分区负载数确定高负载服务器以及低负载服务器;目标变更装置,用于若某一分区当前所在的服务器为高负载服务器,且所述分区为当前所在的服务器上所有分区中数据本地化率较低的N个分区之一,则将所述分区对应的目标服务器变更为所述低负载服务器,其中,N为正整数;所述分区迁移装置,还用于在所述目标变更装置将所述分区对应的目标服务器变更为所述低负载服务器之后,若所述分区当前所在服务器与其对应的目标服务器为不同的服务器,则将所述分区迁移至该分区对应的目标服务器。进一步地,所述负载确定装置,用于将所述当前分区负载数高于预设负载范围上限的服务器确定为高负载服务器,将所述当前分区负载数低于预设负载范围下限的服务器确定为低负载服务本文档来自技高网...
负载均衡方法及设备

【技术保护点】
一种负载均衡方法,其中,该方法包括:获取每一分区在每个服务器上的数据本地化率,其中,所述数据本地化率为所述分区存储于某一服务器所对应的物理机上的本地数据与所述分区的总数据的比值;将每一分区的数据本地化率最高的服务器确定为所述分区对应的目标服务器;若所述分区当前所在服务器与其对应的目标服务器为不同的服务器,则将所述分区迁移至该分区对应的目标服务器。

【技术特征摘要】
1.一种负载均衡方法,其中,该方法包括:获取每一分区在每个服务器上的数据本地化率,其中,所述数据本地化率为所述分区存储于某一服务器所对应的物理机上的本地数据与所述分区的总数据的比值;将每一分区的数据本地化率最高的服务器确定为所述分区对应的目标服务器;若所述分区当前所在服务器与其对应的目标服务器为不同的服务器,则将所述分区迁移至该分区对应的目标服务器。2.根据权利要求1所述的方法,其中,将每一分区的数据本地化率最高的服务器确定为所述分区对应的目标服务器,包括:若某一分区当前所在服务器的数据本地化率与其数据本地化率最高的服务器的数据本地化率之差大于预设值,则将所述分区的数据本地化率最高的服务器确定为所述分区对应的目标服务器。3.根据权利要求1或2所述的方法,其中,在将每一分区的数据本地化率最高的服务器确定为所述分区对应的目标服务器之后,以及将所述分区迁移至该分区对应的目标服务器之前,还包括:计算每个服务器的预测分区负载数,并根据所述预测分区负载数确定高负载服务器以及低负载服务器;其中,所述预测分区负载数为若将每个分区迁移至该分区对应的目标服务器后,每个服务器上将会存在的分区的数量;若某一分区对应的目标服务器为高负载服务器,且所述分区为所述目标服务器上将会存在的所有分区中数据本地化率较低的N个分区之一,则将所述分区对应的目标服务器变更为所述低负载服务器,其中,N为正整数。4.根据权利要求3所述的方法,其中,根据所述预测分区负载数确定高负载服务器以及低负载服务器,包括:将所述预测分区负载数高于预设负载范围上限的服务器确定为高负载服务器,将所述预测分区负载数低于预设负载范围下限的服务器确定为低负载服务器。5.根据权利要求3或4所述的方法,其中,N为所述高负载服务器的预测分区负载数与所有服务器的平均预测分区负载数之差。6.根据权利要求1或2所述的方法,其中,将所述分区迁移至该分区对应的目标服务器之后,还包括:获取每个服务器的当前分区负载数,并根据所述当前分区负载数确定高负载服务器以及低负载服务器;若某一分区当前所在的服务器为高负载服务器,且所述分区为当前所在的服务器上所有分区中数据本地化率较低的N个分区之一,则将所述分区对应的目标服务器变更为所述低负载服务器,其中,N为正整数;若所述分区当前所在服务器与其对应的目标服务器为不同的服务器,则将所述分区迁移至该分区对应的目标服务器。7.根据权利要求6所述的方法,其中,根据所述当前分区负载数确定高负载服务器以及低负载服务器,包括:将所述当前分区负载数高于预设负载范围上限的服务器确定为高负载服务器,将所述当前分区负载数低于预设负载范围下限的服务器确定为低负载服务器。8.根据权利要求6或7所述的方法,其中,N为所述高负载服务器的当前分区负载数与所有服务器的平均当前分区负载数之差。9.根据权利要求3至8中任一项所述的方法,其中,将所述分区对应的目标服务器变更为所述低负载服务器,包括:当所述低负载服务器为多个时,根据所述分区在所述低负载服务器的数据本地化率,将所述分区对应的目标服务器变更为所述分区的数据本地化率最高的低负载服务器。10.根据权利要求1至9中任一项所述的方法,其中,将所述分区迁移至该分区对应的目标服务器,包括:根据预设的间隔时间依次将每个分区迁移至该分区对应的目标服务器。11.一种负载均衡设备,其中,该设备包括:本地化率获取装置,...

【专利技术属性】
技术研发人员:沈春辉
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1