負載平衡方法、系統與裝置及其拓樸簡化方法與流程
2023-05-29 16:21:31
本發明是有關於一種負載平衡方法、負載平衡系統、負載平衡裝置及拓樸簡化方法,且也有關於一種能最佳化利用頻寬及硬體資源的負載平衡方法、負載平衡系統、負載平衡裝置及拓樸簡化方法。
背景技術:
隨著網際網絡技術與雲端運算技術快速發展,雲端運算服務具備可靠性高、建置成本低、擴展性佳等優勢,企業可隨時利用雲端環境快速部署虛擬機器以提供各式應用服務如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完成所有頻寬負載轉移後即可離線。
上述每一影音頻道對應一來源伺服器,以及來源伺服器對應每一影音頻道產生一影音串流的對應關係僅是為了方便說明,實際上每一來源伺服器可同時耦接服務多個影音頻道,且來源伺服器可為每一影音頻道產生對應多種解析度的多個影音串流。對邊緣伺服器而言,是將對應同一影音頻道的多個影音串流視為不同的影音串流。因此,更精確的說法是,邊緣伺服器提供分流服務的對象是個別的影音串流,也就是說,對應同一影音頻道的多個影音串流的影音資料可被同步至不同的邊緣伺服器。
綜上所述,本發明的負載平衡方法、負載平衡系統與負載平衡裝置會自動調整系統中所有伺服器供應各影音串流資料下載的頻寬分配比例,並適時進行來源伺服器與邊緣伺服器之間拓樸的簡化或強化以節省來源伺服器的上傳頻寬且達成多個伺服器群組之間的負載平衡。此外,本發明的負載平衡方法、負載平衡系統與負載平衡裝置還會對應來源伺服器的影音串流進行邊緣伺服器的擴充以緩解邊緣伺服器負載過高的情況。本發明的負載平衡方法、負載平衡系統與負載平衡裝置也會對應來源伺服器的影音串流進行邊緣伺服器的縮減,使得系統可利用最少數量的邊緣伺服器在每個邊緣伺服器不超過高負載的情況下提供影音串流資料下載的足夠頻寬。
雖然本發明已以實施例說明如上,然其並非用於限定本發明,任何所屬技術領域中具有通知常識者,在不脫離本發明的精神和範圍內,當可作些許的改動與修飾,故本發明的保護範圍當視後附的權利要求所界定的範圍為準。