負載均衡(Load Balance)
由于目前現(xiàn)有網(wǎng)絡的各個核心部分隨著業(yè)務量的提高,訪問量和數(shù)據(jù)流量的快速增長,其處理能力和計算強度也相應地增大,使得單一的服務器設備根本無法承擔。在此情況下,如果扔掉現(xiàn)有設備去做大量的硬件升級,這樣將造成現(xiàn)有資源的浪費,而且如果再面臨下一次業(yè)務量的提升時,這又將導致再一次硬件升級的高額成本投入,甚至性能再卓越的設備也不能滿足當前業(yè)務量增長的需求。
針對此情況而衍生出來的一種廉價有效透明的方法以擴展現(xiàn)有網(wǎng)絡設備和服務器的帶寬、增加吞吐量、加強網(wǎng)絡數(shù)據(jù)處理能力、提高網(wǎng)絡的靈活性和可用性的技術就是負載均衡(Load Balance)。
各種軟件使用的負載均衡策略都不盡相同,在這里,我們以VIEWGOOD的流媒體平臺WebMedia為例,具體直觀的說明一下關于電影網(wǎng)站的如何實現(xiàn)負載均衡。
在VIEWGOOD的流媒體平臺系統(tǒng)中,不需要單獨的負載平衡服務器,WEB服務器的負載平衡由WEB服務器自己承擔,而點播、直播服務器的負載平衡由負載平衡服務器(與認證計費服務器共用)承擔。
如果在系統(tǒng)運行過程中,發(fā)現(xiàn)系統(tǒng)的負載能力不夠時,可以隨時添加WEB服務器、點播服務器、直播服務器,無需停止服務,只需要在系統(tǒng)服務器參數(shù)表中把服務器相關信息添加進去即可,真正做到7×24小時不間斷運行。另外,與VIEWGOOD流媒體平臺中CDN內容分發(fā)一樣,VIEWGOOD的負載是全網(wǎng)負載。
很多廠商將Microsoft公司的MediaService與Real公司的Helix 系統(tǒng)做集成,解決不同格式的支持問題。但多種類視頻服務結構下,負載均衡只能在相同視頻服務系統(tǒng)間進行;比如一共有6臺媒體服務器,其中2臺MediaServer、2臺RealServer、2臺MPEG視頻流服務,如果用戶點播了WMV節(jié)目,則只能在2臺MediaServer之間進行負載均衡,將其負載分配到RealServer或MPEG視頻服務系統(tǒng)所在服務器是沒有意義的;因此,如果某一時刻用戶點播相對集中于某一格式的節(jié)目,則就會發(fā)生該格式對應視頻服務無法支撐、而其他格式的視頻服務器又過于空閑的情況。
WEB服務器負載平衡
當大量用戶同時訪問網(wǎng)站(一般是廣域網(wǎng)網(wǎng)站),一臺WEB服務器提供不了這么多負載時,則需要使用多臺WEB服務器進行負載平衡(本處講述的是平臺自身提供的負載平衡,客戶當然也可以直接使用硬件負載平衡)。
用戶首先要有一臺WEB服務器作為門戶網(wǎng)站,然后可根據(jù)實際情況設置各臺WEB服務器的服務區(qū)域,當用戶訪問門戶網(wǎng)站時,首先會根據(jù)用戶的IP地址判斷用戶屬于哪個區(qū)域,然后將用戶的連接重新定向到對應服務區(qū)域的那臺WEB服務器上,如果沒有指定服務區(qū)域,或者對應服務區(qū)域的WEB服務器連接數(shù)已滿,則系統(tǒng)會自動比較哪臺WEB服務器相對負載最輕(CPU、內存、網(wǎng)絡帶寬、連接人數(shù)等),將用戶的訪問重新定向到相對負載最輕的那臺WEB服務器上。此用戶的頁面訪問都在這臺服務器上進行,直到此用戶斷開連接。
WebVOD模塊負載平衡
當大量用戶同時點播節(jié)目時,一臺VOD服務器提供不了這么多負載時,則需要使用多臺VOD服務器進行負載平衡。
首先根據(jù)實際情況定義各臺服務器的角色,主服務器還是邊緣服務器,或者身兼兩職。然后根據(jù)區(qū)域對邊緣服務器進行分組,接下來系統(tǒng)會通過CDN將節(jié)目分發(fā)到各臺服務器上。最后再設置各臺服務器的服務區(qū)域,是優(yōu)先服務該區(qū)域還是只服務該區(qū)域,或者是禁止對某區(qū)域服務。如果設置為優(yōu)先服務,則該服務器可以對不在服務器區(qū)域的用戶提供服務;如果設置為只服務該區(qū)域,則服務器對除了該區(qū)域以外的所有用戶均不提供服務;而設置為禁止對某區(qū)域服務,則服務器對除了該區(qū)域外對的所有用戶提供服務。
當用戶點播請求送到負載均衡服務器時,負載均衡服務器會根據(jù)用戶所在的區(qū)域,判斷有沒有對應服務區(qū)域的邊緣服務器,如果有對應的服務器,并且用戶請求的節(jié)目在多臺服務器上存在,則系統(tǒng)會自動比較哪臺視頻服務器相對負載最輕(CPU、內存、網(wǎng)絡帶寬、連接人數(shù)等),將用戶的訪問重新定向到相對負載最輕的那臺視頻服務器上。此臺流媒體服務器把視頻節(jié)目以流的形式直接傳輸給點播用戶。
如果沒有對應區(qū)域的服務器或者沒有設置服務區(qū)域,則系統(tǒng)自動在所有可用的服務器(有用戶請求的節(jié)目,并且不禁止該區(qū)域)中指定一臺相對負載最輕的視頻服務器,將用戶的訪問重新定向過去,由此臺流媒體服務器把視頻節(jié)目以流的形式直接傳輸給點播用戶。
系統(tǒng)提供高效的流量平衡和在線用戶數(shù)管理機制,最大限度保證用戶的訪問質量。支持各節(jié)點之間的本地動態(tài)負載均衡以及全局動態(tài)負載均衡,支持多種負載均衡策略,可根據(jù)在線用戶數(shù)量、系統(tǒng)負載等分配流量;
WebIPTV、WebLIVE服務器負載平衡
WebIPTV、WebLIVE模塊和WebVOD模塊不同,一般情況下點播服務器上會存儲上萬部不同的視頻節(jié)目,而直播服務器一般情況下只直播幾個固定的頻道。所以直播服務器的負載平衡主要有兩種方式:
采集工作站直接把采集到的視頻流傳輸?shù)礁髋_發(fā)布服務器上,由各臺發(fā)布服務器直接發(fā)布。這種方式的延時最小、效果最好,但是采用這種方式要求采集工作站的網(wǎng)絡帶寬(主要是上傳帶寬)較高,帶寬大小要大于:每路采集碼流×采集路數(shù)×直播服務器數(shù)量。
采集工作站先把采集到的視頻流傳輸?shù)狡渲幸慌_發(fā)布服務器上,然后再由這臺服務器傳輸?shù)狡渌髋_發(fā)布服務器上,然后再進行發(fā)布。這種方式的延時稍長(中間經(jīng)過了轉發(fā)),但是采用這種方式對采集工作站的網(wǎng)絡帶寬要求大大降低(上傳帶寬大于:每路采集碼流×采集路數(shù))。
這兩種方法各有利弊,具體采用哪種方法要根據(jù)采集工作站的帶寬情況來選擇(上述主要針對廣域網(wǎng)中的應用,如果針對局域網(wǎng)和部分城域網(wǎng)的應用,則可以利用VIEWGOOD平臺的組播功能,則上傳帶寬則等同于每路采集信號的上傳帶寬)。
用戶直播請求送到認證計費服務器,認證計費服務器判斷用戶直播請求的節(jié)目在哪幾臺直播服務器上能提供服務,然后再判斷這幾臺直播服務器中哪臺相對負載最輕,就把請求發(fā)給這臺直播服務器,此臺流媒體服務器把視頻節(jié)目流直接傳輸給直播用戶。
作者郵箱:chenxingjing@viewgood.com
遠古科技公司供稿 CTI論壇編輯