本发明是有关于一种负载平衡方法、负载平衡系统、负载平衡装置及拓朴简化方法,且也有关于一种能最佳化利用频宽及硬件资源的负载平衡方法、负载平衡系统、负载平衡装置及拓朴简化方法。
背景技术:
随着网际网络技术与云端运算技术快速发展,云端运算服务具备可靠性高、建置成本低、扩展性佳等优势,企业可随时利用云端环境快速部署虚拟机器以提供各式应用服务如web档案传输、视频点播(videoindemand)、影音串流(livestreaming)等,解决了传统自主建置系统设备可能导致使用率不佳与设备维护的问题。虽然云端运算服务带来许多好处,对企业而言,如何有效率地依其用户数量调整云端系统服务规模以维持良好的服务品质,是一项重要的议题。
以影音串流应用服务为例,影音发布端利用影音发布软件或装置将影音串流上传至影音服务系统指定的串流来源服务器(originserver)后,再由串流来源服务器将串流资料扩散至串流边缘服务器(edgeserver)以服务使用者连线进行影音播放,此为典型且已广泛被使用的来源-边缘架构。在此架构中,影音服务系统会配置一负载平衡服务器(loadbalancer)接收影音串流观看请求并进行连线资料分流,系指当使用者欲观看某一影音频道时,需先连线至负载平衡服务器,再由负载平衡服务器决定此一使用者连线应重新导向(redirect)至哪一台串流边缘服务器以取得该影音频道的影音串流资料。其中,每一影音频道可对应多种解析度产生多个影音串流。另外,不同的影音频道依其影音内容热门程度与播放时段等因素影响,会有不同数量的线上观赏人数,若影音串流系统配置服务使用者的串流边缘服务器不足,则在大量观看人数的情形下,易导致连线拥塞,使得影音播放不顺畅与延迟时间上升而造成使用者服务体验品质下降。反之,若配置的串流边缘服务器数量过多,则可能导致有些串流边缘服务器的使用者观看数量偏低,而造成云端资源浪费与主机租用成本提高。
目前已有许多网络流量的负载平衡方法被提出与应用,例如随机选择(random)、轮替(roundrobin)、加权轮替(weightedroundrobin,wrr)、加权公平伫列(weightedfairqueuing,wfq)、最少连接(leastconnection)、加权最少连接(weightedleastconnection)、服务器负载(serverload)评估等。在多影音串流与动态观看人数的影音应用情境下,如何使用适当的负载平衡方法并搭配服务器动态扩充/缩编机制,达到有效率的影音资料扩散且节省主机租用成本,便是一项挑战。
技术实现要素:
本发明提供一种负载平衡方法、负载平衡系统、负载平衡装置及拓朴简化方法,使得影音资料的资源用量可在对应的服务器群组间自适性流动,以最少的频宽及硬件资源达到最佳化的负载平衡效果。
本发明提出一种负载平衡方法,包括:
为多个边缘服务器的每一个配置一传输进度值,并将所述多个边缘服务器分组为多个服务器群组,其中所述多个服务器群组的每一个的边缘服务器供应多个影音串流中的其中一影音串流,所述多个边缘服务器的每一个被分组至属于所述多个服务器群组之中的至少一服务器群组;
从用户端装置接收对应所述多个影音串流之中的第一影音串流的下载请求;
依据所述下载请求从所述多个服务器群组之中选择第一服务器群组,其中所述第一服务器群组供应所述第一影音串流;以及
依据所述第一服务器群组的边缘服务器的传输进度值,从所述第一服务器群组的边缘服务器之中选择其中一个边缘服务器作为第一边缘服务器来提供所述第一影音串流的影音资料给所述用户端装置。
优选的,依据所述第一服务器群组的边缘服务器的传输进度值,从所述第一服务器群组的边缘服务器之中选择其中一个边缘服务器作为所述第一边缘服务器来提供所述第一影音串流的所述影音资料给所述用户端装置的步骤包括:
选择所述第一服务器群组的边缘服务器之中具有最小传输进度值的边缘服务器作为所述第一边缘服务器;
计算增值并将所述增值累加至所述第一边缘服务器的传输进度值;以及
将所述下载请求重新导向到所述第一边缘服务器。
优选的,所述增值为所述影音资料大小除以所述第一边缘服务器的第一频宽参数,其中所述第一频宽参数是依据所述第一边缘服务器的对外频宽而决定。
优选的,还包括:
从所述第一服务器群组的边缘服务器中选择第二边缘服务器,其中所述第二边缘服务器的传输进度值与所述第一服务器群组的边缘服务器的传输进度值之中的最小传输进度值的差值在预定时间内大于或等于无效阈值,其中所述预定时间可等于零;
将所述第二边缘服务器从所述第一服务器群组中移除;以及
发送信息给所述第一影音串流对应的来源服务器或所述第二边缘服务器,以停止将所述第一影音串流的影音资料同步到所述第二边缘服务器。
优选的,还包括:
若在移除所述多个边缘服务器之中的其中一个边缘服务器后,所述多个边缘服务器之中其余的边缘服务器的平均频宽使用率仍小于中负载阈值时,执行下列步骤:
从所述多个边缘服务器中选择第五边缘服务器并计算所述第五边缘服务器的频宽用量;
从所述第五边缘服务器以外的所述多个边缘服务器中选择至少一第六边缘服务器,其中所述第六边缘服务器的每一个的频宽用量与到达所述中负载阈值的频宽用量的频宽差额的总和大于所述第五边缘服务器的频宽用量;
将对应所述第五边缘服务器供应的影音串流的影音资料同步到所述第六边缘服务器;
重置所述多个边缘服务器的传输进度值;
将所述第六边缘服务器加入至所述第五边缘服务器供应的影音串流的服务器群组;以及
将所述第五边缘服务器从所述多个服务器群组移除。
优选的,将对应所述第五边缘服务器供应的影音串流的影音资料同步到所述第六边缘服务器的步骤还包括:
将所述第五边缘服务器所供应的每一影音串流在所述第五边缘服务器的频宽用量填补到所述第六边缘服务器的频宽差额,以决定所述第五边缘服务器的所述每一影音串流所对应的所述第六边缘服务器;以及
发送信息给所述每一影音串流所对应的来源服务器或所述每一影音串流所对应的所述第六边缘服务器,以将所述第五边缘服务器供应的所述每一影音串流的影音资料同步至所述每一影音串流所对应的所述第六边缘服务器。
优选的,将所述第六边缘服务器加入至所述第五边缘服务器供应的影音串流的服务器群组的步骤还包括:
将所述第五边缘服务器供应的所述每一影音串流所对应的所述第六边缘服务器,加入至所述每一影音串流的服务器群组。
本发明还提出一种负载平衡系统,包括:
多个边缘服务器;
多个来源服务器,耦接所述多个边缘服务器,其中所述多个来源服务器的每一个产生多个影音串流中的其中一影音串流,所述多个影音串流的每一个的影音资料被同步到所述多个边缘服务器中的至少一边缘服务器;以及
负载平衡装置,耦接所述多个来源服务器及所述多个边缘服务器,
其中所述负载平衡装置为所述多个边缘服务器的每一个配置传输进度值,
其中所述负载平衡装置将多个边缘服务器分组为多个服务器群组,其中所述多个服务器群组的每一个的边缘服务器供应所述其中一影音串流,所述多个边缘服务器的每一个被分组至属于所述多个服务器群组之中的至少一服务器群组,
其中所述负载平衡装置从一用户端装置接收对应所述多个影音串流之中的第一影音串流的下载请求,其中所述多个服务器群组之中的第一服务器群组供应所述第一影音串流,
其中所述负载平衡装置依据所述第一服务器群组的边缘服务器的传输进度值,从所述第一服务器群组的边缘服务器之中选择其中一个边缘服务器作为第一边缘服务器来提供所述第一影音串流的影音资料给所述用户端装置。
优选的,所述负载平衡装置选择所述第一服务器群组的边缘服务器之中具有最小传输进度值的边缘服务器作为所述第一边缘服务器,
其中所述负载平衡装置计算增值并将所述增值累加至所述第一边缘服务器的传输进度值,
其中所述负载平衡装置将所述下载请求重新导向到所述第一边缘服务器。
优选的,所述增值为所述影音资料大小除以所述第一边缘服务器的第一频宽参数,其中所述第一频宽参数是依据所述第一边缘服务器的对外频宽而决定
优选的,所述负载平衡装置从所述第一服务器群组的边缘服务器中选择第二边缘服务器,其中所述第二边缘服务器的传输进度值与所述第一服务器群组的边缘服务器的传输进度值之中的最小传输进度值的差值在预定时间内大于或等于无效阈值,其中所述预定时间可等于零,
其中所述负载平衡装置将所述第二边缘服务器从所述第一服务器群组中移除,
其中所述负载平衡装置发送信息给所述第一影音串流对应的所述来源服务器或所述第二边缘服务器,以停止将所述第一影音串流的影音资料同步到所述第二边缘服务器。
优选的,若在移除所述多个边缘服务器之中的其中一个边缘服务器后,所述多个边缘服务器之中其余的边缘服务器的平均频宽使用率仍小于中负载阈值时,所述负载平衡装置执行下列步骤:
所述负载平衡装置从所述多个边缘服务器中选择第五边缘服务器并计算所述第五边缘服务器的频宽用量;
所述负载平衡装置从所述第五边缘服务器以外的所述多个边缘服务器中选择至少一第六边缘服务器,其中所述第六边缘服务器的每一个的频宽用量与到达所述中负载阈值的频宽用量的频宽差额的总和大于所述第五边缘服务器的频宽用量;
所述负载平衡装置将对应所述第五边缘服务器的影音串流的影音资料同步到所述第六边缘服务器;
所述负载平衡装置重置所述多个边缘服务器的传输进度值;
所述负载平衡装置将所述第六边缘服务器加入至所述第五边缘服务器供应的影音串流的服务器群组;以及
所述负载平衡装置将所述第五边缘服务器从所述多个服务器群组移除。
优选的,所述负载平衡装置将所述第五边缘服务器所供应的每一影音串流在所述第五边缘服务器的频宽用量填补到所述第六边缘服务器的频宽差额,以决定所述第五边缘服务器的所述每一影音串流所对应的所述第六边缘服务器,
其中所述负载平衡装置发送信息给所述每一影音串流所对应的所述来源服务器或所述每一影音串流所对应的所述第六边缘服务器,以将所述第五边缘服务器供应的所述每一影音串流的影音资料同步至所述每一影音串流所对应的所述第六边缘服务器。
优选的,所述负载平衡装置将所述第五边缘服务器供应的所述每一影音串流所对应的所述第六边缘服务器,加入至所述每一影音串流的服务器群组。
本发明还提出一种负载平衡装置,包括处理单元及通信单元,所述负载平衡装置通过所述通信单元耦接多个来源服务器及多个边缘服务器,所述多个来源服务器耦接所述多个边缘服务器,其中所述多个来源服务器的每一个产生多个影音串流中的其中一影音串流,所述多个影音串流的每一个的影音资料被同步到所述多个边缘服务器中的至少一边缘服务器,
其中所述处理单元为所述多个边缘服务器的每一个配置传输进度值,
其中所述处理单元将多个边缘服务器分组为多个服务器群组,其中所述多个服务器群组的每一个的边缘服务器供应所述其中一影音串流,所述多个边缘服务器的每一个被分组至属于所述多个服务器群组之中的至少一服务器群组,
其中所述处理单元从用户端装置接收对应所述多个影音串流之中的第一影音串流的下载请求,其中所述多个服务器群组之中的第一服务器群组供应所述第一影音串流,
其中所述处理单元依据所述第一服务器群组的边缘服务器的传输进度值,从所述第一服务器群组的边缘服务器之中选择其中一个边缘服务器作为第一边缘服务器来提供所述第一影音串流的影音资料给所述用户端装置。
优选的,所述处理单元选择所述第一服务器群组的边缘服务器之中具有最小传输进度值的边缘服务器作为所述第一边缘服务器,
其中所述处理单元计算增值并将所述增值累加至所述第一边缘服务器的传输进度值,
其中所述处理单元将所述下载请求重新导向到所述第一边缘服务器。
优选的,所述增值为所述影音资料大小除以所述第一边缘服务器的第一频宽参数,其中所述第一频宽参数是依据所述第一边缘服务器的对外频宽而决定。
优选的,所述处理单元从所述第一服务器群组的边缘服务器中选择第二边缘服务器,其中所述第二边缘服务器的传输进度值与所述第一服务器群组的边缘服务器的传输进度值之中的最小传输进度值的差值在预定时间内大于或等于无效阈值,其中所述预定时间可等于零,
其中所述处理单元将所述第二边缘服务器从所述第一服务器群组中移除,
其中所述通信单元发送信息给所述第一影音串流对应的所述来源服务器或所述第二边缘服务器,以停止将所述第一影音串流的影音资料同步到所述第二边缘服务器。
优选的,若在移除所述多个边缘服务器之中的其中一个边缘服务器后,所述多个边缘服务器之中其余的边缘服务器的平均频宽使用率仍小于中负载阈值时,所述处理单元执行下列步骤:
所述处理单元从所述多个边缘服务器中选择第五边缘服务器并计算所述第五边缘服务器的频宽用量;
所述处理单元从所述第五边缘服务器以外的所述多个边缘服务器中选择至少一第六边缘服务器,其中所述第六边缘服务器的每一个的频宽用量与到达所述中负载阈值的频宽用量的频宽差额的总和大于所述第五边缘服务器的频宽用量;
所述处理单元及所述通信单元将对应所述第五边缘服务器的影音串流的影音资料同步到所述第六边缘服务器;
所述处理单元重置所述多个边缘服务器的传输进度值;
所述处理单元将所述第六边缘服务器加入至所述第五边缘服务器供应的影音串流的服务器群组;以及
所述处理单元将所述第五边缘服务器从所述多个服务器群组移除。
优选的,所述处理单元将所述第五边缘服务器所供应的每一影音串流在所述第五边缘服务器的频宽用量填补到所述第六边缘服务器的频宽差额,以决定所述第五边缘服务器的所述每一影音串流所对应的所述第六边缘服务器,
其中所述通信单元发送信息给所述每一影音串流所对应的所述来源服务器或所述每一影音串流所对应的所述第六边缘服务器,以将所述第五边缘服务器供应的所述每一影音串流的影音资料同步至所述每一影音串流所对应的所述第六边缘服务器。
优选的,所述处理单元将所述第五边缘服务器供应的所述每一影音串流所对应的所述第六边缘服务器,加入至所述每一影音串流的服务器群组。
本发明还提出一种拓朴简化方法,包括:
多个边缘服务器的每一个配置一传输进度值,并将所述多个边缘服务器分组为多个服务器群组,所述多个服务器群组的每一个的边缘服务器供应多个影音串流中的其中一影音串流,所述多个边缘服务器的每一个被分组至属于所述多个服务器群组之中的至少一服务器群组;
从用户端装置接收对应所述多个影音串流之中的第一影音串流的下载请求
依据所述下载请求从所述多个服务器群组之中选择第一服务器群组,其中所述第一服务器群组供应所述第一影音串流;
依据所述第一服务器群组的边缘服务器的传输进度值,从所述第一服务器群组的边缘服务器之中选择其中一个边缘服务器作为第一边缘服务器来提供所述第一影音串流的影音资料给所述用户端装置;
从所述第一服务器群组的边缘服务器中选择第二边缘服务器,其中所述第二边缘服务器的传输进度值与所述第一服务器群组的边缘服务器的传输进度值之中的最小传输进度值的差值在预定时间内大于或等于无效阈值,其中所述预定时间可等于零;
将所述第二边缘服务器从所述第一服务器群组中移除;以及
停止将所述第一影音串流的影音资料同步到所述第二边缘服务器。
基于上述,本发明的负载平衡方法会对每一个服务器配置单一的传输进度值,并根据服务器群组中所有服务器的传输进度值选出一个负载较小的服务器来提供影音资料。本发明的拓朴简化方法会将服务器群组中,传输进度值在短时间内大量增加的服务器移除并停止同步影音资料到此服务器,以节省上传影音资料到此服务器的频宽。
附图说明
图1是根据一范例实施例的负载平衡系统的方块图。
图2是根据一范例实施例的负载平衡方法的流程图。
图3是根据一范例实施例的负载平衡方法的范例。
图4是根据一范例实施例的负载平衡方法的另一范例。
图5a及图5b是根据一范例实施例用以说明负载平衡方法运作原理的一范例
图6为根据一范例实施例的影音扩散拓朴简化方法的流程图。
图7是根据一范例实施例的影音扩散拓朴简化方法的范例。
图8为根据一范例实施例的影音扩散拓朴强化方法的流程图。
图9为根据一范例实施例的影音扩散拓朴强化方法的范例。
图10为根据一范例实施例的服务器动态扩充方法的范例。
图11为根据一范例实施例的服务器动态扩充方法的另一范例。
图12a及图12b为根据一范例实施例的服务器动态缩减方法的流程图。
图13a及图13b为根据一范例实施例的服务器动态缩减方法的范例。
其中附图标记为:
100:负载平衡系统110:负载平衡装置
120-1~120-3:边缘服务器130-1~130-2:来源服务器
140-1~140-n:用户端装置150:管理装置
160:数据库
s201、s203、s205:负载平衡方法的步骤
s601、s603、s605:影音扩散拓朴简化方法的步骤
s801、s803、s805、s807、s809、s811:影音扩散拓朴强化方法的步骤
s1201、s1203、s1205、s1207、s1209、s1211、s1213:服务器动态缩减方法的步骤
具体实施方式
为让本发明能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
图1为根据一范例实施例的负载平衡系统的方块图。
请参照图1,负载平衡系统100包括负载平衡装置110、边缘服务器120-1~120-3及来源服务器130-1~130-2。首先值得注意的是,尽管在图1中只绘示了三个边缘服务器120-1~120-3及两个来源服务器130-1~130-2,但本发明不限于此,负载平衡系统100可包括任意数量的边缘服务器及来源服务器。来源服务器130-1~130-2所耦接到的边缘服务器120-1~120-3的数量和对象会根据负载平衡系统100的负载平衡状态而动态调整。负载平衡系统100可耦接到多个用户端装置140-1~140-n及管理装置150,其中管理装置150还可耦接到数据库160。用户端装置140-1~140-n可为个人电脑、笔记型电脑、平板电脑、智能手机等电子装置。使用者可通过用户端装置140-1~140-n上的网页浏览器或播放器等软件从边缘服务器120-1~120-3下载影音资料。在一范例实施例中,负载平衡装置110可为包括处理器(也参考为处理单元)及通信晶片(也参考为通信单元)的服务器。
每一边缘服务器120-1~120-3及来源服务器130-1~130-2可设置于相同或不同的机器中。而每一来源服务器130-1~130-2也可以与任一边缘服务器120-1~120-3设置于同一个实体机器或同一个虚拟机器。来源服务器130-1~130-2与边缘服务器120-1~120-3设置于同一个实体或虚拟机器时,来源服务器130-1~130-2与边缘服务器120-1~120-3会共享同一个实体机器或虚拟机器的中央处理单元运算资源与网络频宽资源。负载平衡装置110可与任一边缘服务器120-1~120-3或来源服务器130-1~130-2位于相同或不同的实体或虚拟机器。负载平衡装置110可以是以软件实作的程序代码或是以硬件实作的负载平衡电路,也可以是一个独立的负载平衡服务器。
举例来说,当影音发布端正在利用影音发布软件或装置将影音串流的影音资料上传到来源服务器130-1时,负载平衡装置110会根据影音串流的总流量需求指示来源服务器130-1将影音资料同步到由边缘服务器120-1、120-2所组成的服务器群组,以提供用户端装置140-1~140-n从此服务器群组中的边缘服务器120-1或120-2下载影音资料。详细来说,负载平衡装置110可根据边缘服务器的负载状况来调整影音串流对应的服务器群组,并且动态扩充或缩减服务器群组中边缘服务器的数量。
当用户端装置140-1~140-n要下载影音资料时,用户端装置140-1~140-n会发送请求给负载平衡装置110以询问边缘服务器网址,并在获得此边缘服务器网址后发送请求给此边缘服务器以下载影音资料。上述下载过程可采用超本文传输协定(hypertexttransferprotocol,http)网址导向,以相容于现有播放器的影音资料下载。当负载平衡装置110收到用户端装置140-1~140-n的下载请求时,负载平衡装置110可依据用户端装置140-1~140-n欲下载的影音串流(例如,来源服务器130-1的影音串流)对应的服务器群组(例如,边缘服务器120-1、120-2)中的边缘服务器的负载情况选择一个边缘服务器(例如,边缘服务器120-1)并将其网址回复给用户端装置140-1~140-n。
也就是说,来源服务器130-1会对影音资料进行编码并将影音资料扩散到边缘服务器120-1、120-2。边缘服务器120-1、120-2则会接收编码后的影音资料并提供影音资料的下载频宽以供用户端装置140-1~140-n来下载。负载平衡装置110则会决定影音资料的扩散拓朴,其中扩散拓朴为来源服务器130-1~130-2将影音资料同步到边缘服务器120-1~120-3时,来源服务器130-1~130-2与这些边缘服务器120-1~120-3同步影音串流的影音资料的连接状态。负载平衡装置110还会决定影音资料的传输排程及提供影音资料的下载转址,使得用户端装置140-1~140-n可从正确的边缘服务器下载影音资料。
另外,管理装置150会在影音串流发布时选择影音串流对应的来源服务器(例如,来源服务器130-1),并将上述资料记录于数据库160中。管理装置150还可对负载平衡装置110进行组态设定及提供影音串流和服务器资讯,或者从数据库160中查询负载平衡系统100的历史资料。
图2是根据本发明一范例实施例的负载平衡方法的流程图。
请参照图2,在步骤s201中,负载平衡装置110为每一边缘服务器配置一传输进度值并将多个边缘服务器分组为多个服务器群组。在此每一服务器群组的边缘服务器用以供应一影音串流,且每一边缘服务器会被分组至这些服务器群组中的至少一个服务器群组。在步骤s203中,负载平衡装置110从用户端装置接收一影音串流的下载请求,并依据此下载请求从上述多个服务器群组之中选择其中一个服务器群组(以下称为第一服务器群组),此第一服务器群组供应此下载请求所对应的影音串流。在步骤s205中,负载平衡装置110依据第一服务器群组的边缘服务器的传输进度值,从第一服务器群组的边缘服务器之中选择其中一个边缘服务器作为第一边缘服务器来提供第一影音串流的影音资料给用户端装置。值得注意的是,第一服务器群组的边缘服务器之中具有最小传输进度值的边缘服务器会被选作第一边缘服务器,而负载平衡装置110还会计算一增值并将此增值累加至第一边缘服务器的传输进度值,负载平衡装置110将下载请求重新导向到第一边缘服务器。在本范例实施例中,此增值为所述影音资料大小除以第一边缘服务器的一第一频宽参数。
上述边缘服务器对应的频宽参数是依据边缘服务器的对外频宽而决定。任意两个边缘服务器的频宽参数比例与对外频宽比例相等。例如,第一边缘服务器的对外频宽为100mbps、第二边缘服务器的对外频宽为200mbps,则第一边缘服务器与第二边缘服务器的频宽参数可以分别为100和200、或者分别为100×106和200×106、或者分别为100/(100+200)和200/(100+200),即1/3与2/3…等等。
此外,任意两个边缘服务器的频宽参数比例也可设定与预留的对外频宽比例相等。例如,第一边缘服务器预留的对外频宽为80mbps、第二边缘服务器预留的对外频宽为180mbps,则第一边缘服务器与第二边缘服务器的频宽参数可以分别为80和180、或者分别为80×106和180×106、或者分别为80/(80+180)和180/(80+180),即4/13与9/13…等等。
图3是根据本发明一范例实施例的负载平衡方法的范例。
请参照图3,在本范例中有三个影音频道,也就是频道a、b、c分别由来源服务器a、b、c产生对应的影音串流,并使用边缘服务器1、2、3、4对外供应频宽(本范例实施例假设频道与来源服务器为一一对应,因此以相同符号a、b、c来同时表示影音频道及来源服务器)。其中,频道a的影音串流同步至边缘服务器1和边缘服务器2,频道b的影音串流同步至边缘服务器2和边缘服务器3,频道c的影音串流同步至边缘服务器3和边缘服务器4。边缘服务器对于每一频道提供的分流服务及其频宽用量分别以方块的填满方式和面积来表示。因此,边缘服务器1服务频道a、边缘服务器2同时服务频道a和频道b,边缘服务器3同时服务频道b和频道c,边缘服务器4服务频道c。此外,为简化说明,在下文中假设每一边缘服务器的对外频宽可同时供应100台用户端装置140-1~140-n下载频道影音串流资料。
随着频道观看人数变化,例如,频道a观看人数从160升至到170,频道b人数维持80,频道c人数从160降至150,本范例实施例的负载平衡方法可即时调适边缘服务器1、2、3、4对于各频道的频宽供应量,自动调整每一频道的影音串流在边缘服务器的频宽负载,收敛达成适当的频宽负载平衡状态。举例来说,边缘服务器2提供给频道a、b的频宽从60、40变为70、30,而边缘服务器3提供给频道b、c的频宽从40、60变为50、50。
上述每一影音频道对应一来源服务器,以及来源服务器对应每一影音频道产生一影音串流的对应关系仅是为了方便说明,实际上每一来源服务器可同时耦接服务多个影音频道,且来源服务器可为每一影音频道产生对应多种解析度的多个影音串流。对边缘服务器而言,是将对应同一影音频道的多个影音串流视为不同的影音串流。因此,更精确的说法是,边缘服务器提供分流服务的对象是个别的影音串流,也就是说,对应同一影音频道的多个影音串流的影音资料可被同步至不同的边缘服务器。
图4是根据本发明一范例实施例的负载平衡方法的另一范例。
请参照图4,频道a的影音串流同步至边缘服务器1、2、3、4,每一边缘服务器频宽用量皆为80,且剩余频宽皆为20。假设加入频道b分享边缘服务器4的频宽,随着频道b的观看人数增加至80,本范例实施例的负载平衡方法可将原本频道a的影音串流在边缘服务器4的频宽用量自动转移至边缘服务器1、2、3,使频道a和频道b影音串流的频宽需求皆能满足。
从图3及图4的范例可得知,当影音频道的频宽需求随观看人数改变时,使用本范例实施例的负载平衡方法可自动调整所有边缘服务器的频宽分配比例。
图5a及图5b是根据本发明一范例实施例用以说明负载平衡方法运作原理的一范例。
请参照图5a,在本范例中有三个影音频道,频道a的影音串流同步至边缘服务器1和边缘服务器2,频道b的影音串流同步至边缘服务器2和边缘服务器3,频道c的影音串流同步至边缘服务器3和边缘服务器4,其中,负载平衡装置110对应每一边缘服务器配置一传输进度值,分别为tp1、tp2、tp3、以及tp4,而bw1到bw4分别为边缘服务器1到边缘服务器4的频宽参数。依据图2所揭露的负载平衡方法流程图,首先,在步骤s203中,负载平衡装置110从用户端装置x接收频道a的影音串流下载请求(reqchannela),并依据此下载请求从多个服务器群组之中选择频道a影音串流所对应的服务器群组,此服务器群组包括边缘服务器1和边缘服务器2。在步骤s205中,负载平衡装置110从边缘服务器1和边缘服务器2之中选择具有最小传输进度值的边缘服务器来提供频道a影音串流的影音资料给用户端装置x。假设目前边缘服务器1的频宽负载较高,其传输进度值tp1大于边缘服务器2的传输进度值tp2,因而负载平衡装置110选择边缘服务器2作为对应此下载请求的影音资料提供者,并计算一增值累加至边缘服务器2的传输进度值tp2(即,tp2←tp2+chunksizea/bw2),如图5a所示的第①步骤。此增值可为频道a影音串流的影音资料大小(chunksizea)除以边缘服务器2的频宽参数(bw2)。当用户端装置x收到负载平衡装置110的重导向回应时,从边缘服务器2下载对应此下载请求的影音资料,如图5b所示的第①步骤。
接着,负载平衡装置110从用户端装置y接收频道b的影音串流下载请求(reqchannelb),并依据此下载请求选择频道b影音串流所对应的服务器群组,即边缘服务器2和边缘服务器3。类似地,负载平衡装置110从频道b影音串流的服务器群组中选择传输进度值最小的边缘服务器。此时,因为边缘服务器2的传输进度值tp2已在步骤①中累加而增大,因此负载平衡装置110选择边缘服务器3作为对应此下载请求的影音资料提供者,并计算一增值累加至边缘服务器3的传输进度值tp3(即,tp3←tp3+chunksizeb/bw3),如图5a所示的第②步骤。当用户端装置y收到负载平衡装置110的重导向回应时,从边缘服务器3下载对应此下载请求的影音资料,如图5b所示的第②步骤。
接着,负载平衡装置110从用户端装置z接收频道c的影音串流下载请求(reqchannelc),并依据此下载请求选择频道c影音串流所对应的服务器群组,即边缘服务器3和边缘服务器4。类似地,负载平衡装置110从频道c影音串流的服务器群组中选择传输进度值最小的边缘服务器。此时,因为边缘服务器3的传输进度值tp3已在步骤②中累加而增大,因此负载平衡装置110选择边缘服务器4作为对应此下载请求的影音资料提供者,并计算一增值累加至边缘服务器4的传输进度值tp4(即,tp4←tp4+chunksizec/bw4),如图5a的第③步骤。当用户端装置z收到负载平衡装置110的重导向回应时,从边缘服务器4下载对应此下载请求的影音资料,如图5b的第③步骤。
值得注意的是,依据图5a及图5b范例中的影音资料扩散拓朴,每个频道所对应的服务器群组仅涵盖部分的边缘服务器,而任一边缘服务器(例如边缘服务器1)的频宽负载却能平均分散至其他所有的边缘服务器(例如边缘服务器2~4)。也就是说,频宽资源用量可在全部的边缘服务器之间自适性调度。因此,本方法通过各影音串流的服务器群组重叠所造成的资源连通特性,可自动达成系统全部边缘服务器的频宽负载平衡。
图6为根据本发明一范例实施例的影音扩散拓朴简化方法的流程图。
请参照图6,在步骤s601中,负载平衡装置110从对应一影音串流的服务器群组中选择一无效边缘服务器(以下也参考为第二边缘服务器),其中此无效边缘服务器的传输进度值与此服务器群组的所有边缘服务器的传输进度值之中的最小传输进度值的差值在预定时间内是大于或等于一无效阈值。值得注意的是,无效阈值代表边缘服务器对应该服务器群组的频宽用量的偏移上限。此外,上述预定时间可等于零。在步骤s603中,负载平衡装置110将无效边缘服务器从服务器群组中移除,并且在步骤s605中,负载平衡装置110发送信息给此影音串流对应的来源服务器及/或无效边缘服务器,并停止将此影音串流的影音资料同步到无效边缘服务器。
具体来说,由于对于每一影音串流的服务器群组只有传输进度值最小的边缘服务器才会被选择当作此影音串流的资料下载点,因此服务器群组中传输进度值过大的边缘服务器在短时间内已经无法服务此影音串流,而可将此传输进度值过大的边缘服务器从服务器群组中移除。通常这种情况可能发生在同一个边缘服务器被其他影音串流瞬间地过度使用,导致其负载高于服务器群组中的其他边缘服务器。而无效阈值的设定可考虑传输进度值瞬间可容忍的累增偏移量,并依据频道观看人数瞬间增加量的上限来计算。
图7是根据本发明一范例实施例的影音扩散拓朴简化方法的范例。
请参照图7,原本频道a的影音串流同步至边缘服务器1,频道b的影音串流同步至边缘服务器1和边缘服务器2,频道a与b的观看人数分别为50和70,且在边缘服务器1和边缘服务器2的频宽用量达成负载平衡。随着频道a观看人数增加至80,边缘服务器1的传输进度值也会随着频道a观看人数增加而快速增加。负载平衡装置110在短时间内不会将频道b影音串流的影音资料下载请求导向原本属于频道b影音串流的服务器群组中的边缘服务器1,所以边缘服务器1实质上已不再为频道b影音串流提供分流服务。因此,可以停止频道b影音串流从来源服务器b到边缘服务器1的影音资料同步连线。
图8为根据本发明一范例实施例的影音扩散拓朴强化方法的流程图。
请参照图8,在步骤s801中,负载平衡装置110会从负载平衡系统100的边缘服务器中选择一个高负载边缘服务器(以下也参考为第三边缘服务器),其中高负载边缘服务器的频宽使用率高于高负载阈值,且高负载边缘服务器供应一或多个影音串流的影音资料下载。在步骤s803中,负载平衡装置110会从对应高负载边缘服务器的多个影音串流中选择一移转影音串流(以下也参考为第二影音串流)。并且,在步骤s805中,负载平衡装置110会选择一接收边缘服务器(以下也参考为第四边缘服务器),其中接收边缘服务器不属于对应移转影音串流的服务器群组。
例如,在一范例实施例中,负载平衡装置110会在不属于对应移转影音串流的服务器群组的边缘服务器中,先挑出频宽使用率不为零且频宽使用率低于低负载阈值的边缘服务器,然后,再从所挑出的边缘服务器中任选一个边缘服务器作为接收边缘服务器,也可从上述所挑出的边缘服务器中选择频宽使用率最高的边缘服务器作为接收边缘服务器。此外,若在不属于对应移转影音串流的服务器群组的边缘服务器之中,不存在频宽使用率不为零且频宽使用率低于低负载阈值的边缘服务器时,则负载平衡装置110会在不属于对应移转影音串流的服务器群组的边缘服务器中,先挑出频宽使用率介于低负载阈值及高负载阈值之间的边缘服务器,然后再从所挑出的边缘服务器中选择频宽使用率最低的边缘服务器作为接收边缘服务器。
之后,在步骤s807中,负载平衡装置110会发送信息给移转影音串流对应的来源服务器及/或接收边缘服务器,将移转影音串流的影音资料同步到接收边缘服务器。然后,在步骤s809中,负载平衡装置110会将接收边缘服务器的传输进度值设定为高负载边缘服务器的传输进度值。最后,在步骤s811中,负载平衡装置110会将接收边缘服务器加入对应移转影音串流的服务器群组。在本范例实施例中,例如,高负载阈值会被设定为每一边缘服务器的对外频宽的80%且低负载阈值会被设定为每一边缘服务器的对外频宽的60%。
在本范例实施例中,通过优先选择频宽使用率低于低负载阈值的边缘服务器之中,频宽使用率最高的边缘服务器作为接收边缘服务器,可降低负载平衡系统100使用的边缘服务器的总量并提高每个使用中边缘服务器的使用率。而通过选择频宽使用率介于低负载阈值及高负载阈值之间的边缘服务器之中,频宽使用率最低的边缘服务器作为接收边缘服务器,可在负载平衡系统100整体边缘服务器使用率偏高的情况下尽可能让个别边缘服务器的频宽使用率不超过高负载阈值。另外,为了保证接收边缘服务器加入对应移转影音串流的服务器群组后能维持正确的负载平衡效果,必须先完成接收边缘服务器传输进度值的均一化设定。例如,在步骤s809中,在进行均一设定时,负载平衡装置110会将接收边缘服务器的传输进度值设定为高负载边缘服务器的传输进度值。
图9为根据本发明一范例实施例的影音扩散拓朴强化方法的范例。
请参照图9,由于边缘服务器2频宽负载过高,因此负载平衡装置110选择频道b作为移转影音串流并将其在边缘服务器2的负载转移至接收边缘服务器(即,边缘服务器3)。依据本范例实施例的影音扩散拓朴强化方法,边缘服务器3不仅分摊了频道b影音串流在边缘服务器2的负载,且通过频道a和频道d影音串流各自对应的服务器群组的负载连动,达成边缘服务器3和边缘服务器4共同分摊边缘服务器1和边缘服务器2频宽负载的效果。
请再参照图8,若在步骤s805中,当负载平衡装置110找不到频宽使用率不为零且频宽使用率低于低负载阈值的边缘服务器,也找不到频宽使用率介于低负载阈值及高负载阈值之间的边缘服务器时,则负载平衡装置110会选择一频宽使用率为零的边缘服务器作为接收边缘服务器。以上选择频宽使用率为零的边缘服务器作为接收边缘服务器的方法也称为服务器动态扩充方法。
图10为根据本发明一范例实施例的服务器动态扩充方法的范例。
请参照图10,由于负载平衡装置110监测到边缘服务器3为高负载服务器,因此负载平衡装置110在边缘服务器3所服务的频道中选择一移转影音串流。为了方便说明,假设频道d被选为移转影音串流。在选择移转影音串流之后,本范例实施例的服务器动态扩充方法会先建立来源服务器d至动态扩充的边缘服务器4之间的同步连线,再配合上文中的负载平衡方法,边缘服务器4会自动分摊频道d影音串流在边缘服务器1、边缘服务器2、以及边缘服务器3的频宽负载,重新收敛至最适当的负载平衡状态。此外,配合上文中的影音扩散拓朴简化方法,负载平衡装置110还会自动移除来源服务器d至边缘服务器1、边缘服务器2、以及边缘服务器3的同步连线。
图11为根据本发明一范例实施例的服务器动态扩充方法的另一范例。
请参照图11,假设边缘服务器3对应的频道c被选为移转影音串流,则负载平衡装置110会建立来源服务器c至动态扩充的边缘服务器4之间的同步连线。配合上文中的负载平衡方法,边缘服务器4会自动分摊频道c影音串流在边缘服务器3的频宽负载,且边缘服务器3会自动分摊频道d影音串流在边缘服务器1及边缘服务器2的频宽负载,最后重新收敛至最适当的负载平衡状态。此外,配合上文中的影音扩散拓朴简化方法,负载平衡装置110还会自动移除来源服务器d至边缘服务器1及边缘服务器2的同步连线。
图12a及图12b为根据本发明一范例实施例的服务器动态缩减方法的流程图。
请参照图12a及图12b,在步骤s1201中,负载平衡装置110判断在移除所有边缘服务器的其中之一后,其余边缘服务器的平均频宽使用率是否仍小于中负载阈值。若在移除所有边缘服务器的其中之一后,此些边缘服务器的平均频宽使用率仍小于中负载阈值时,则在步骤s1203中,负载平衡装置110会从所有边缘服务器中选择一离线边缘服务器(以下也参考为第五边缘服务器)并计算离线边缘服务器的目前频宽用量。在步骤s1205中,负载平衡装置110会从离线边缘服务器以外的边缘服务器中选择至少一接收边缘服务器(以下也参考为第六边缘服务器),其中所选出的每个第六边缘服务器的目前频宽用量与到达中负载阈值的频宽用量的频宽差额的总和大于离线边缘服务器的目前频宽用量。在步骤s1207中,负载平衡装置110会将离线边缘服务器所供应的每一影音串流在离线边缘服务器的频宽用量填补到第六边缘服务器的频宽差额,由此选出离线边缘服务器的每一影音串流所对应的第六边缘服务器,并发送信息给此影音串流对应的来源服务器及/或所选出的第六边缘服务器,以将此影音串流的影音资料从来源服务器同步到选出的第六边缘服务器。在此,若此影音串流对应的来源服务器与所选出的第六边缘服务器已在进行影音资料同步则不需要再次发送信息或重复同步影音资料。在步骤s1209中,负载平衡装置110会重置所有边缘服务器的传输进度值,例如,将负载平衡系统100的所有边缘服务器的传输进度值重新设定为0。在步骤s1211中,负载平衡装置110会将离线边缘服务器的每一影音串流所对应选出的第六边缘服务器加入至该每一影音串流所对应的服务器群组。在此,若所选出的第六边缘服务器已属于该影音串流所对应的服务器群组则不需要再次加入。在步骤s1213中,负载平衡装置110会将离线边缘服务器从负载平衡系统100中的所有服务器群组移除,并发送信息给离线边缘服务器的每一影音串流所对应的来源服务器及/或离线边缘服务器,停止将影音串流的影音资料同步到离线边缘服务器。最后,关闭离线边缘服务器。在本范例实施例中,例如,中负载阈值是被设定为每一边缘服务器总频宽的70%。
图13a及图13b为根据本发明一范例实施例的服务器动态缩减方法的范例。
请参照图13a及图13b,负载平衡装置110选择边缘服务器4为离线边缘服务器,并将边缘服务器4所服务的每一频道影音串流的频宽用量填补到其他接收边缘服务器的频宽差额。其中,频道a影音串流在边缘服务器4的频宽用量被填补到边缘服务器1,频道b影音串流在边缘服务器4的频宽用量被分割后分别填补到边缘服务器2和边缘服务器3。由于边缘服务器4对应频道b影音串流的频宽用量要被分配到边缘服务器2和边缘服务器3,而来源服务器b与边缘服务器3原本并未进行过影音资料同步,因此必须先建立来源服务器b与边缘服务器3的影音资料同步(对应图12b的步骤s1207),并将边缘服务器3加入频道b影音串流所对应的服务器群组中(对应图12b的步骤s1211)。最后,负载平衡系统100重新收敛至最适当的负载平衡状态,边缘服务器4完成所有频宽负载转移后即可离线。
上述每一影音频道对应一来源服务器,以及来源服务器对应每一影音频道产生一影音串流的对应关系仅是为了方便说明,实际上每一来源服务器可同时耦接服务多个影音频道,且来源服务器可为每一影音频道产生对应多种解析度的多个影音串流。对边缘服务器而言,是将对应同一影音频道的多个影音串流视为不同的影音串流。因此,更精确的说法是,边缘服务器提供分流服务的对象是个别的影音串流,也就是说,对应同一影音频道的多个影音串流的影音资料可被同步至不同的边缘服务器。
综上所述,本发明的负载平衡方法、负载平衡系统与负载平衡装置会自动调整系统中所有服务器供应各影音串流资料下载的频宽分配比例,并适时进行来源服务器与边缘服务器之间拓朴的简化或强化以节省来源服务器的上传频宽且达成多个服务器群组之间的负载平衡。此外,本发明的负载平衡方法、负载平衡系统与负载平衡装置还会对应来源服务器的影音串流进行边缘服务器的扩充以缓解边缘服务器负载过高的情况。本发明的负载平衡方法、负载平衡系统与负载平衡装置也会对应来源服务器的影音串流进行边缘服务器的缩减,使得系统可利用最少数量的边缘服务器在每个边缘服务器不超过高负载的情况下提供影音串流资料下载的足够频宽。
虽然本发明已以实施例说明如上,然其并非用于限定本发明,任何所属技术领域中具有通知常识者,在不脱离本发明的精神和范围内,当可作些许的改动与修饰,故本发明的保护范围当视后附的权利要求所界定的范围为准。