一种降低集群回父带宽的方法及装置

文档序号:1641422 发布日期:2019-12-20 浏览:19次 >En<

阅读说明:本技术 一种降低集群回父带宽的方法及装置 (Method and device for reducing cluster return-to-father bandwidth ) 是由 向校民 姜澎 王金土 张虹 陈义伟 唐国明 于 2019-08-16 设计创作,主要内容包括:本发明提供了一种降低集群回父带宽的方法及装置,该方法包括:确定集群内每一服务器的备服务器的数量,作为互备数量;针对所述集群内每一服务器,在所述集群中选择所述互备数量个服务器作为该服务器的备服务器;针对所述集群内服务器的每一备服务器,利用一致性hash算法查找主服务器存储的文件中需要备份到该备服务器的目标文件,将所述目标文件备份到该备服务器。应用本发明实施例提供的方案,能够节省集群回父成本。(The invention provides a method and a device for reducing cluster return parent bandwidth, wherein the method comprises the following steps: determining the number of standby servers of each server in the cluster as the number of mutual standby; for each server in the cluster, selecting the servers with the mutual backup quantity as the backup servers of the server in the cluster; and aiming at each standby server of the servers in the cluster, searching a target file which needs to be backed up to the standby server in the files stored by the main server by using a consistent hash algorithm, and backing up the target file to the standby server. By applying the scheme provided by the embodiment of the invention, the cost of returning the cluster to the father can be saved.)

一种降低集群回父带宽的方法及装置

技术领域

本发明涉及计算机应用技术领域,特别涉及一种降低集群回父带宽的方法及装置。

背景技术

在CDN系统中,集群也就是指用于提供同一类服务的多个服务器的集合,如图1是CDN系统中一种用于提供点播业务集群的架构,在该集群提供点播业务的过程中,LVS(Linux Virtual Server,Linux虚拟服务器)会提供一个对外的IP地址,当用户需要访问集群内文件时,则需要先连接LVS,LVS则会通过四层负载均衡,将请求转发到某一服务器的haproxy上,再由该服务器的haproxy通过负载均衡算法,将请求转发到某一服务器上的各个squid中,相应的,该服务器的squid在接收到请求之后则会进行回父,也就是squid在接收到请求之后需要从该集群的父集群上获取用户需要访问的文件。

相关技术中,为了降低回父带宽,集群内各个服务器会存储用于向用户提供服务的文件,并且一个特定的文件只会由固定的一台服务器上的squid来提供服务。

然而,当集群内某一台服务器故障时,之前由该服务器提供服务的请求,都会相对随机的分散到其它非故障服务器上,相应地,当非故障服务器在处理故障服务器提供服务的请求时,非故障服务器则需要进行回父,导致增加回父成本,并且非故障机器进行回父导致负载过高时,容易引发服务器故障。

发明内容

为了解决现有技术的问题,本发明实施例提供了一种降低集群回父带宽的方法及装置。技术方案如下:

第一方面,提供了一种降低集群回父带宽的方法,所述方法包括:

确定集群内每一服务器的备服务器的数量,作为互备数量;

针对所述集群内每一服务器,在所述集群中选择所述互备数量个服务器作为该服务器的备服务器;

针对所述集群内服务器的每一备服务器,利用一致性hash算法查找主服务器存储的文件中需要备份到该备服务器的目标文件,将所述目标文件备份到该备服务器,其中,所述主服务器为所述集群内的服务器中需要利用该备服务器进行文件备份的服务器。

可选的,所述确定集群内每一服务器的备服务器的数量,作为互备数量的步骤,包括:

获取预先设定的待节省回父带宽比例;

利用所述待节省回父带宽比例和以下表达式计算所述互备数量:

P=(1-(N-1-X)/(N-1))*100%

其中,P表示所述待节省回父带宽比例,N表示所述集群中服务器的数量,X表示所述互备数量。

可选的,所述针对所述集群内每一服务器,在所述集群中选择所述互备数量个服务器作为该服务器的备服务器的步骤,包括:

依次为所述集群中每一服务器分配编号;

针对所述集群内每一服务器,将编号后所述互备数量个服务器作为该服务器的备服务器。

可选的,所述针对所述集群内每一服务器,将编号位于该服务器之后的所述互备数量个服务器作为该服务器的备服务器的步骤,包括:

针对所述集群内每一服务器,判断编号位于该服务器之后的服务器的数量是否不小于所述互备数量;

如果是,将编号位于该服务器之后的所述互备数量个服务器作为该服务器的备服务器;

如果否,将编号位于该服务器之后的第一数量个服务器和由起始编号开始的第二数量个服务器作为该服务器的备服务器,其中,所述第一数量与所述第二数量之和为所述互备数量。

可选的,所述针对所述集群内服务器的每一备服务器,利用一致性hash算法查找主服务器存储的文件中需要备份到该备服务器的目标文件,将所述目标文件备份到该备服务器的步骤,包括:

针对所述集群内服务器的每一备服务器,该备服务器利用一致性hash算法确定主服务器存储的文件中需要备份到该备服务器的目标文件的URI,并根据所确定的URI访问主服务器,拉取所确定的URI对应的目标文件,并将所述目标文件进行备份。

可选的,所述方法还包括:

监测所述集群中每一服务器的工作状态,确定所述集群中是否出现故障服务器;

在出现故障服务器的情况下,将故障服务器中所备份的目标文件备份到处于正常工作状态的服务器。

可选的,所述方法还包括:

接收访问请求,其中,所述访问请求包含待访问文件的URI;

在检测到存储所述待访问文件的主服务器发生故障的情况下,根据所述待访问文件的URI,利用一致性hash算法确定存储所述待访问文件的备服务器;

将所述访问请求转发至所述备服务器。

第二方面,提供了一种降低集群回父带宽的装置,包括:

确定模块,用于确定集群内每一服务器的备服务器的数量,作为互备数量;

选择模块,用于针对所述集群内每一服务器,在所述集群中选择所述互备数量个服务器作为该服务器的备服务器;

计算模块,用于针对所述集群内服务器的每一备服务器,利用一致性hash算法查找主服务器存储的文件中需要备份到该备服务器的目标文件,将所述目标文件备份到该备服务器,其中,所述主服务器为所述集群内的服务器中需要利用该备服务器进行文件备份的服务器。

可选的,所述确定模块,还用于

获取预先设定的待节省回父带宽比例;

利用所述待节省回父带宽比例和以下表达式计算所述互备数量:

P=(1-(N-1-X)/(N-1))*100%

其中,P表示所述待节省回父带宽比例,N表示所述集群中服务器的数量,X表示所述互备数量。

可选的,所述选择模块,包括:

分配子模块,用于依次为所述集群中每一服务器分配编号;

作为子模块,用于针对所述集群内每一服务器,将编号后所述互备数量个服务器作为该服务器的备服务器。

可选的,所述作为子模块,还用于

针对所述集群内每一服务器,判断编号位于该服务器之后的服务器的数量是否不小于所述互备数量;

如果是,将编号位于该服务器之后的所述互备数量个服务器作为该服务器的备服务器;

如果否,将编号位于该服务器之后的第一数量个服务器和由起始编号开始的第二数量个服务器作为该服务器的备服务器,其中,所述第一数量与所述第二数量之和为所述互备数量。

可选的,所述计算模块,还用于

针对所述集群内服务器的每一备服务器,该备服务器利用一致性hash算法确定主服务器存储的文件中需要备份到该备服务器的目标文件的URI,并根据所确定的URI访问主服务器,拉取所确定的URI对应的目标文件,并将所述目标文件进行备份。

可选的,所述装置还包括:监测模块,用于监测所述集群中每一服务器的工作状态,确定所述集群中是否出现故障服务器;

在出现故障服务器的情况下,将故障服务器中所备份的目标文件备份到处于正常工作状态的服务器。

可选的,所述装置还包括:接收模块,用于接收访问请求,其中,所述访问请求包含待访问文件的URI;

在检测到存储所述待访问文件的主服务器发生故障的情况下,根据所述待访问文件的URI,利用一致性hash算法确定存储所述待访问文件的备服务器;

将所述访问请求转发至所述备服务器。

本发明实施例提供的降低集群回父带宽的方法及装置,能够分别将集群中各个服务器存储的文件备份到多个备服务器上,因此,当集群中某一个服务器发生故障之后,可以由故障服务器的备服务器来向用户提供需要访问的文件,而不需要进行回父,节省了回父成本,由于不需要回父,则不会导致备服务器负载突增,也就降低备服务器的故障几率。

并且,由于需要节省的回父带宽比例越高,相应的,互备数量也就越大,也就是需要的备服务器的磁盘成本也就越高,因而,在确定互备数量的过程中,综合考虑需要节省的回父带宽比例和备服务器的磁盘成本,以实现集群回父成本的最小化。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是CDN系统中一种用于提供点播业务集群的架构;

图2是本发明实施例提供的一种降低集群回父带宽方法的流程示意图;

图3是本发明实施例提供的一种降低集群回父带宽装置的结构示意图;

图4是本发明实施例提供的一种计算机设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

下面将结合具体实施方式,对图2所示的降低集群回父带宽方法的流程进行详细的说明,内容可以如下:

步骤200,确定集群内每一服务器的备服务器的数量,作为互备数量。

备服务器也就是用于对其他服务器存储的文件进行备份的服务器。对于集群中的某一台服务器来说,在该台服务器用于其他服务器存储的文件进行备份时,该台服务器则可以称之为备服务器;而在该台服务器中存储的文件需要备服务器来进行备份时,该台服务器则可以称之为主服务器。也就是集群中的每一台服务器即可以为主服务器,也可以为备服务器,即集群中的服务器之间进行相互备份。

在实施中,一台服务器的备服务器越多集群的可靠性越高,但是,所需要的各个服务器的磁盘成本也就越高,因而,一种实现方式中,可以获取预先设定的待节省回父带宽比例,然后利用待节省回父带宽比例和以下表达式来计算互备数量:

P=(1-(N-1-X)/(N-1))*100%

其中,P表示待节省回父带宽比例,N表示集群中服务器的数量,X表示互备数量。

对于一台服务器来说回父带宽比例也就是该台服务器存储的文件中、对需要进行回父的文件进行回父所需的带宽与对所有文件进行回父所需要的总带宽之间的比例,相应的,待节省回父带宽比例也就是1减回父带宽比例。

由上述表达式可知想要节省的回父带宽比例越高,互备数量也就越大,相应的,备服务器磁盘成本也就越高,因而,在实施中可以综合考虑待节省回父带宽比例和备服务器磁盘成本,来设置待节省回父带宽比例。比如,待节省回父带宽比例可以设置为70%到80%之间,这样进行备份时无需将服务器中的所有文件都进行备份,节省了被服务器的磁盘成本;相应的,当服务器故障时只有20%到30%的文件需要进行回父,大大降低了回父成本。

步骤210,针对集群内每一服务器,在集群中选择互备数量个服务器作为该服务器的备服务器。

在实施中,可以依次为集群中每一服务器分配编号;比如,将集群中每一服务器分别标号为:服务器1、服务器2…服务器N。

分配好编号之后,针对集群内每一服务器,可以将编号后互备数量个服务器作为该服务器的备服务器。

具体的,可以针对集群内每一服务器,判断编号位于该服务器之后的服务器的数量是否不小于互备数量;

如果是,将编号位于该服务器之后的互备数量个服务器作为该服务器的备服务器;

如果否,将编号位于该服务器之后的第一数量个服务器和由起始编号开始的第二数量个服务器作为该服务器的备服务器,其中,第一数量与第二数量之和为互备数量。

比如,集群中包含4台服务器:服务器1、服务器2、服务器3以及服务器4;互备数量为2;相应地,服务器1的备服务器为:服务器2、服务器3;服务器2的备服务器为:服务器3、服务器4;服务器3的备服务器为:服务器4、服务器1;服务器4的备服务器为:服务器1、服务器2。

步骤220,针对集群内服务器的每一备服务器,利用一致性hash算法查找主服务器存储的文件中需要备份到该备服务器的目标文件,将目标文件备份到该备服务器。

其中,上述主服务器为集群内的服务器中需要利用该备服务器进行文件备份的服务器

利用一致性hash算法查找服务器存储的文件中需要备份到备服务器的目标文件,也就是,能够将服务器存储的文件分散存储到不同的备服务器中,以降低各个备服务器的磁盘成本。

继续以上述集群中包含4台服务器的架构为例,当4台服务器分别作为备服务器时,则需要利用一致性hash算法查找服务器3和服务器4所存储的文件中需要备份到服务器1的目标文件;需要利用一致性hash算法查找服务器4和服务器1所存储的文件中需要备份到服务器2的目标文件;需要利用一致性hash算法查找服务器1和服务器2所存储的文件中需要备份到服务器3的目标文件;需要利用一致性hash算法查找服务器2和服务器3所存储的文件中需要备份到服务器4的目标文件。

一种实现方式中,在进行文件备份时,各个备服务器可以利用一致性hash算法确定主服务器存储的文件中需要备份到该备服务器的目标文件的URI,并根据所确定的URI访问主服务器,拉取所确定的URI对应的目标文件,并将所述目标文件进行备份。

比如,服务器1作为服务器3和服务器4的备服务器,服务器1可以利用利用一致性hash算法确定服务器3和服务器4存储的文件中需要备份到服务器1的目标文件的URI,并根据所确定的URI分别访问服务器3和服务器4,从服务器3和服务器4中拉取所确定的URI对应的目标文件,并将目标文件进行备份。

另一种实现方式中,主服务器可以利用一致性hash算法确定需要备份到备服务器的目标文件之后,并将目标文件的URI发送给备服务器,以使备服务器根据URI访问主服务器从而拉取目标文件,并对目标文件进行备份。

比如,根据一致性hash计算当服务器1故障后,需要重新分配到其备服务器:服务器2上的目标文件1和服务器3目标文件2,并将目标文件1的URI1和目标文件2的URI2分别发送给服务器2和服务器3,相应的,服务器2中的haproxy2则可以主动通知squid2发起URI1访问请求,squid2主动向服务器1中的haproxy1发起URI1访问请求;服务器3中的haproxy3主动通知squid3发起URI3访问请求,squid3主动向服务器1中的haproxy1发起URI2访问请求。从而实现将服务器1中的目标文件1和目标文件2分别备份到服务器2和服务器3中。

在实施中,为了防止某一服务器出现故障之后,该服务器所备份的目标文件不能被访问,可以监测集群中每一服务器的工作状态,确定集群中是否出现故障服务器,当出现故障服务器之后,则将该故障服务器所备份的目标文件备份到处于正常工作状态的服务器。

比如,上述集群中包含4台服务器中,服务器1中备份了服务器3和服务器4中的目标文件,当监测到服务器1出现故障时,则可以将服务器1中所备份的服务器3和服务器4中的目标文件备份到服务器2中,这样即使服务器3或者服务器4出现故障时,也可以通过访问服务器2来获取原本应该访问服务器1才能获取的目标文件。

在实施中,集群内的服务器进行互备,那么在接收到用户发送的访问请求之后,可以根据访问请求中包含的待访问文件的URI来确定存储待访问文件的主服务器,如果该主服务器正常则将访问请求转发至该主服务器,由该主服务器向用户提供待访问文件;而如果主服务器发生故障时,则可以根据待访问文件的URI,利用一致性hash算法来确定存储有待访问文件的备服务器,将访问请求转发至备服务器,由备服务器来向用户提供待访问文件。

利用本发明实施例提供的方案进行集群中的服务器进行互备之后,当某一台服务器故障之后,则可以将该台服务器上的请求转发到其备服务器上而无需回父,从而节省回父成本。比如,在实时中,集群内服务器1发生故障,原本应该转发到服务器1上的请求,分别转发到了服务器2、3、4上。

服务器1上一部分请求转发到了服务器2,服务器2由于备份过服务器1上这一部分文件,所以当服务器2接收到这些文件请求时,可以直接把文件返回给用户;

服务器1上一部分请求转发到了服务器3,服务器3由于备份过服务器1上这一部分文件,所以当服务器3接收到这些文件请求时,可以直接把文件返回给用户;

服务器1上一部分请求转发到了服务器4,服务器4由于没有备份过服务器1上的文件,所以当服务器4接收到这些文件请求时,需要从父拉取对应文件,服务器4从父拉取文件后返回给用户。可见,应用本发明实施例提供的方案,能够节省回父带宽。

本发明实施例提供的降低集群回父带宽的方法,能够分别将集群中各个服务器存储的文件备份到多个备服务器上,因此,当集群中某一个服务器发生故障之后,可以由故障服务器的备服务器来向用户提供需要访问的文件,而不需要进行回父,节省了回父成本,由于不需要回父,则不会导致备服务器负载突增,也就降低备服务器的故障几率。

并且,由于需要节省的回父带宽比例越高,相应的,互备数量也就越大,也就是需要的备服务器的磁盘成本也就越高,因而,在确定互备数量的过程中,综合考虑需要节省的回父带宽比例和备服务器的磁盘成本,以实现集群回父成本的最小化。

基于相同的技术构思,本发明实施例还提供了一种降低集群回父带宽的装置,如图3所示,所述装置包括:

确定模块300,用于确定集群内每一服务器的备服务器的数量,作为互备数量;

选择模块310,用于针对所述集群内每一服务器,在所述集群中选择所述互备数量个服务器作为该服务器的备服务器;

计算模块320,用于针对所述集群内服务器的每一备服务器,利用一致性hash算法查找主服务器存储的文件中需要备份到该备服务器的目标文件,将所述目标文件备份到该备服务器,其中,所述主服务器为所述集群内的服务器中需要利用该备服务器进行文件备份的服务器。

可选的,所述确定模块300,还用于

获取预先设定的待节省回父带宽比例;

利用所述待节省回父带宽比例和以下表达式计算所述互备数量:

P=(1-(N-1-X)/(N-1))*100%

其中,P表示所述待节省回父带宽比例,N表示所述集群中服务器的数量,X表示所述互备数量。

可选的,所述选择模块310,包括:

分配子模块,用于依次为所述集群中每一服务器分配编号;

作为子模块,用于针对所述集群内每一服务器,将编号后所述互备数量个服务器作为该服务器的备服务器。

可选的,所述作为子模块,还用于

针对所述集群内每一服务器,判断编号位于该服务器之后的服务器的数量是否不小于所述互备数量;

如果是,将编号位于该服务器之后的所述互备数量个服务器作为该服务器的备服务器;

如果否,将编号位于该服务器之后的第一数量个服务器和由起始编号开始的第二数量个服务器作为该服务器的备服务器,其中,所述第一数量与所述第二数量之和为所述互备数量。

可选的,所述计算模块320,还用于

针对所述集群内服务器的每一备服务器,该备服务器利用一致性hash算法确定主服务器存储的文件中需要备份到该备服务器的目标文件的URI,并根据所确定的URI访问主服务器,拉取所确定的URI对应的目标文件,并将所述目标文件进行备份。

可选的,所述装置还包括:监测模块,用于监测所述集群中每一服务器的工作状态,确定所述集群中是否出现故障服务器;

在出现故障服务器的情况下,将故障服务器中所备份的目标文件备份到处于正常工作状态的服务器。

可选的,所述装置好包括:接收模块,用于接收访问请求,其中,所述访问请求包含待访问文件的URI;

在检测到存储所述待访问文件的主服务器发生故障的情况下,根据所述待访问文件的URI,利用一致性hash算法确定存储所述待访问文件的备服务器;

将所述访问请求转发至所述备服务器。

本发明实施例提供的降低集群回父带宽的装置,能够分别将集群中各个服务器存储的文件备份到多个备服务器上,因此,当集群中某一个服务器发生故障之后,可以由故障服务器的备服务器来向用户提供需要访问的文件,而不需要进行回父,节省了回父成本,由于不需要回父,则不会导致备服务器负载突增,也就降低备服务器的故障几率。

并且,由于需要节省的回父带宽比例越高,相应的,互备数量也就越大,也就是需要的备服务器的磁盘成本也就越高,因而,在确定互备数量的过程中,综合考虑需要节省的回父带宽比例和备服务器的磁盘成本,以实现集群回父成本的最小化。

图4是本发明实施例提供的计算机设备的结构示意图。该计算机设备400可因配置或性能不同而产生比较大差异,可以包括一个或一个以***处理器422(例如,一个或一个以上处理器)和存储器432,一个或一个以上存储应用程序442或数据444的存储介质430(例如一个或一个以上海量存储设备)。其中,存储器432和存储介质430可以是短暂存储或持久存储。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对计算机设备400中的一系列指令操作。更进一步地,中央处理器422可以设置为与存储介质430通信,在计算机设备400上执行存储介质430中的一系列指令操作。

计算机设备400还可以包括一个或一个以上电源424,一个或一个以上有线或无线网络接口450,一个或一个以上输入输出接口458,一个或一个以上键盘454,和/或,一个或一个以上操作系统441,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。

计算机设备400可以包括有存储器,以及一个或者一个以上的计算机程序,其中一个或者一个以上计算机程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上计算机程序以实现上述计算机设备方法,具体的,该方法包括:

确定集群内每一服务器的备服务器的数量,作为互备数量;

针对所述集群内每一服务器,在所述集群中选择所述互备数量个服务器作为该服务器的备服务器;

针对所述集群内服务器的每一备服务器,利用一致性hash算法查找主服务器存储的文件中需要备份到该备服务器的目标文件,将所述目标文件备份到该备服务器,其中,所述主服务器为所述集群内的服务器中需要利用该备服务器进行文件备份的服务器。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

需要说明的是:上述实施例提供的降低集群回父带宽的装置、计算机设备以及计算机可读存储介质在降低集群回父带宽时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的降低集群回父带宽的装置、计算机设备以及计算机可读存储介质与降低集群回父带宽方法的实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种支持载波聚合技术的系统芯片

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类