吳傳杰,操?gòu)堖M(jìn),劉 暢,孫 悅
(中國(guó)移動(dòng)通信集團(tuán)安徽有限公司,安徽 合肥 230009)
目前,使用機(jī)頂盒來(lái)播放互聯(lián)網(wǎng)電視內(nèi)容的方式主要是,用戶通過(guò)機(jī)頂盒向中心調(diào)度節(jié)點(diǎn)發(fā)送互聯(lián)網(wǎng)電視視頻資源獲取請(qǐng)求,中心調(diào)度節(jié)點(diǎn)根據(jù)接收到的互聯(lián)網(wǎng)電視視頻資源獲取請(qǐng)求就近選擇所屬區(qū)域服務(wù)節(jié)點(diǎn),區(qū)域服務(wù)節(jié)點(diǎn)對(duì)應(yīng)的區(qū)域調(diào)度節(jié)點(diǎn)根據(jù)一定的策略選取一個(gè)CDN邊緣節(jié)點(diǎn)服務(wù)器為用戶提供互聯(lián)網(wǎng)電視視頻資源獲取請(qǐng)求對(duì)應(yīng)的互聯(lián)網(wǎng)電視視頻資源內(nèi)容[1]。
但是,在現(xiàn)有技術(shù)中,中心調(diào)度節(jié)點(diǎn)均集中部署在某一局址,同時(shí)只有中心調(diào)度節(jié)點(diǎn)負(fù)責(zé)接收用戶發(fā)送的互聯(lián)網(wǎng)電視視頻資源獲取請(qǐng)求。這種分布方式存在單點(diǎn)隱患,假如中心調(diào)度節(jié)點(diǎn)發(fā)生了故障,則用戶向中心調(diào)度節(jié)點(diǎn)發(fā)送的互聯(lián)網(wǎng)電視視頻資源獲取請(qǐng)求就會(huì)無(wú)響應(yīng),將會(huì)導(dǎo)致大范圍互聯(lián)網(wǎng)電視視頻資源無(wú)法播放的情況。
為克服現(xiàn)有CDN調(diào)度架構(gòu)的缺陷,本文提出基于Anycast技術(shù)的分布式互聯(lián)網(wǎng)電視CDN調(diào)度方案,采用分布式的架構(gòu)部署互聯(lián)網(wǎng)電視CDN里的調(diào)度中心網(wǎng)元,在CDN中心區(qū)域部署中心調(diào)度節(jié)點(diǎn),并在每個(gè)CDN節(jié)點(diǎn)部署區(qū)域調(diào)度節(jié)點(diǎn),CDN中心調(diào)度節(jié)點(diǎn)和區(qū)域調(diào)度節(jié)點(diǎn)在下文中稱為分布式CDN調(diào)度系統(tǒng)。
在當(dāng)前CDN網(wǎng)元架構(gòu)的基礎(chǔ)上,本文CDN調(diào)度系統(tǒng)采用分布式結(jié)構(gòu),在CDN中心區(qū)域部署中心調(diào)度節(jié)點(diǎn),并在每一個(gè)區(qū)域邊緣服務(wù)節(jié)點(diǎn)部署區(qū)域調(diào)度節(jié)點(diǎn)[2]。
在分布式CDN調(diào)度系統(tǒng)中的每一個(gè)調(diào)度節(jié)點(diǎn)內(nèi)部署2臺(tái)主備服務(wù)器,并為每臺(tái)服務(wù)器配置一個(gè)虛地址作為Anycast地址。用戶向該Anycast地址發(fā)起請(qǐng)求,用戶請(qǐng)求會(huì)由分布式CDN調(diào)度系統(tǒng)中距離用戶最 近的區(qū)域調(diào)度節(jié)點(diǎn)接收并響應(yīng),該調(diào)度節(jié)點(diǎn)根據(jù)用戶I P地址歸屬就近選擇所屬區(qū)域服務(wù)節(jié)點(diǎn)并返回給用戶,用戶向服務(wù)節(jié)點(diǎn)的本地區(qū)域服務(wù)節(jié)點(diǎn)請(qǐng)求節(jié)目播放。
(1)用戶鑒權(quán)流程:用戶機(jī)頂盒向互聯(lián)網(wǎng)電視業(yè)務(wù)管理平臺(tái)、牌照方發(fā)起鑒權(quán)請(qǐng)求,鑒權(quán)認(rèn)證成功后,返回給服務(wù)該用戶CDN系統(tǒng)的調(diào)度系統(tǒng)IP地址(即分布式CDN調(diào)度系統(tǒng)的Anycast地址),用戶向該地址發(fā)起視頻播放請(qǐng)求。
(2)健康檢查流程:分布式CDN調(diào)度系統(tǒng)內(nèi)所有的調(diào)度節(jié)點(diǎn)實(shí)時(shí)同步所有的區(qū)域的健康檢查結(jié)果和調(diào)度策略,單個(gè)區(qū)域邊緣節(jié)點(diǎn)內(nèi)所有的媒體服務(wù)器的健康狀態(tài)。
(3)用戶調(diào)度流程:首先,用戶機(jī)頂盒向分布式CDN調(diào)度系統(tǒng)的Anycast IP地址發(fā)起請(qǐng)求;然后,分布式CDN調(diào)度系統(tǒng)中距離用戶最近的區(qū)域調(diào)度節(jié)點(diǎn)接收并響應(yīng)該用戶的請(qǐng)求,該區(qū)域調(diào)度節(jié)點(diǎn)會(huì)根據(jù)用戶IP地址就近選擇區(qū)域邊緣服務(wù)節(jié)點(diǎn)并返回給用戶;接著,用戶機(jī)頂盒向該邊緣服務(wù)節(jié)點(diǎn)的區(qū)域調(diào)度節(jié)點(diǎn)發(fā)起視頻播放請(qǐng)求;最后,區(qū)域邊緣節(jié)點(diǎn)內(nèi)根據(jù)一定的策略選擇最佳服務(wù)器為用戶提供服務(wù)。
(4)內(nèi)容分發(fā)流程:用戶向區(qū)域邊緣節(jié)點(diǎn)的媒體服務(wù)器發(fā)起視頻播放請(qǐng)求后,如果服務(wù)器中已有用戶請(qǐng)求的資源,服務(wù)器將直接返回給用戶,如果沒(méi)有該資源,服務(wù)器將向CDN的內(nèi)容中心去回源,回源到資源后,再返回給用戶[3]。
文中采用的基于Anycast的CDN調(diào)度方法可實(shí)現(xiàn)用戶快速、有效獲取互聯(lián)網(wǎng)電視視頻資源,圖1給出了調(diào)度方法的具體實(shí)現(xiàn)過(guò)程:
圖1 分布式互聯(lián)網(wǎng)電視CDN調(diào)度方法示意圖
安徽移動(dòng)自2013年開(kāi)始發(fā)展互聯(lián)網(wǎng)電視業(yè)務(wù),2014年自主建設(shè)省內(nèi)互聯(lián)網(wǎng)電視CDN系統(tǒng),全省集中建設(shè)內(nèi)容中心節(jié)點(diǎn)、調(diào)度節(jié)點(diǎn),部署在合肥。16個(gè)地市分別部署邊緣服務(wù)節(jié)點(diǎn),用于承載本地市用戶流量。調(diào)度節(jié)點(diǎn)全省僅有一套,且調(diào)度節(jié)點(diǎn)對(duì)外服務(wù)的IP地址內(nèi)置在用戶機(jī)頂盒內(nèi),因此也存在單點(diǎn)隱患、容量瓶頸、跨地市訪問(wèn)時(shí)延等問(wèn)題。
本方案實(shí)施按照分布式互聯(lián)網(wǎng)電視CDN調(diào)度系統(tǒng)的架構(gòu)進(jìn)行現(xiàn)網(wǎng)軟硬件改造,實(shí)現(xiàn)分布式調(diào)度能力。
(1)架構(gòu)設(shè)計(jì)。本方案通過(guò)在每個(gè)地市新增服務(wù)器用于部署區(qū)域調(diào)度節(jié)點(diǎn),調(diào)度節(jié)點(diǎn)服務(wù)器與上聯(lián)CDN接入交換機(jī)之間運(yùn)行OSPF協(xié)議,發(fā)布統(tǒng)一的調(diào)度IP主機(jī)路由,使得用戶優(yōu)先訪問(wèn)本區(qū)域調(diào)度節(jié)點(diǎn),在本區(qū)域調(diào)度節(jié)點(diǎn)無(wú)法訪問(wèn)時(shí),訪問(wèn)省中心調(diào)度節(jié)點(diǎn)。
(2)硬件部署。省中心及每個(gè)地市節(jié)點(diǎn)部署X86服務(wù)器用于建設(shè)中心調(diào)度節(jié)點(diǎn)、區(qū)域調(diào)度節(jié)點(diǎn),并為每臺(tái)服務(wù)器配置一個(gè)虛地址作為Anycast地址。用戶向該Anycast地址發(fā)起請(qǐng)求,用戶請(qǐng)求會(huì)由分布式CDN調(diào)度系統(tǒng)中距離用戶最近的區(qū)域調(diào)度節(jié)點(diǎn)接收并響應(yīng)。
(3)軟件部署。①調(diào)度模塊:CDN調(diào)度節(jié)點(diǎn)是CDN系統(tǒng)的核心網(wǎng)元,用以實(shí)現(xiàn)流量在網(wǎng)絡(luò)中的全局引導(dǎo)和調(diào)度功能。②路由模塊:CDN調(diào)度節(jié)點(diǎn)同時(shí)需要具備網(wǎng)絡(luò)路由功能,能和上聯(lián)網(wǎng)絡(luò)之間通過(guò)運(yùn)行OSPF協(xié)議發(fā)布Anycast IP地址。
(4)網(wǎng)絡(luò)部署。用戶的請(qǐng)求無(wú)論到邊緣調(diào)度節(jié)點(diǎn)還是中心調(diào)度節(jié)點(diǎn),都是通過(guò)路由選路來(lái)完成的,因此承載網(wǎng)絡(luò)也要做一定的改造。本方案對(duì)網(wǎng)絡(luò)改造的需求如下:
⊙ 地市區(qū)域調(diào)度節(jié)點(diǎn)的Anycast IP地址32位的主機(jī) 路由僅在本地市內(nèi)部發(fā)布,不向省網(wǎng)和地市通告。
⊙ 省中心調(diào)度節(jié)點(diǎn)的Anycast IP地址以26位的匯聚路由在省網(wǎng)發(fā)布,并向各地市城域網(wǎng)進(jìn)行通告。
⊙ 用戶上聯(lián)BRAS設(shè)備同時(shí)學(xué)習(xí)到地市區(qū)域調(diào)度節(jié)點(diǎn)的Anycast IP地址32位的主機(jī)路由及省中心調(diào)度節(jié)點(diǎn)的Anycast IP地址以26位的匯聚路由。根據(jù)最長(zhǎng)掩碼匹配原則,BRAS設(shè)備優(yōu)選Anycast IP的路由為到達(dá)地市區(qū)域調(diào)度節(jié)點(diǎn),次優(yōu)路由為到達(dá)省中心調(diào)度節(jié)點(diǎn)。
本方案在安徽移動(dòng)現(xiàn)網(wǎng)進(jìn)行了部署,優(yōu)化后的分布式CDN調(diào)度系統(tǒng)取得了良好的成效。
(1)第一種技術(shù)效果:提升CDN調(diào)度網(wǎng)元的整體安全性及穩(wěn)定性。本文方案中用戶向分布式CDN調(diào)度系統(tǒng)的Anycast地址發(fā)起請(qǐng)求,用戶請(qǐng)求會(huì)由分布式CDN調(diào)度系統(tǒng)中距離用戶最近的調(diào)度節(jié)點(diǎn)接收并響應(yīng);而當(dāng)該CDN區(qū)域調(diào)度節(jié)點(diǎn)遭到安全攻擊或者出現(xiàn)故障時(shí),會(huì)自動(dòng)由CDN中心調(diào)度節(jié)點(diǎn)接收用戶請(qǐng)求并響應(yīng),因此不會(huì)影響CDN的調(diào)度,極大提升了CDN調(diào)度網(wǎng)元的整體安全性及穩(wěn)定性。
(2)第二種技術(shù)效果:提高CDN調(diào)度網(wǎng)元的整體容量,降低節(jié)點(diǎn)負(fù)荷。本文將傳統(tǒng)集中式CDN調(diào)度系統(tǒng)的調(diào)度模式記為模式1;將部署4,8,12,16個(gè)地市區(qū)域調(diào)度節(jié)點(diǎn)的分布式CDN調(diào)度系統(tǒng)的調(diào)度模式分別記為模式2,3,4,5,5種模式對(duì)應(yīng)于系統(tǒng)不同的物理結(jié)構(gòu)。
各模式下系統(tǒng)調(diào)度效果由好到差分別為:模式5、模式4、模式3、模式2、模式1。同時(shí),模式1的中心調(diào)度節(jié)點(diǎn)承擔(dān)了所有用戶的請(qǐng)求負(fù)荷,壓力較大,隨著在每個(gè)區(qū)域部署CDN調(diào)度節(jié)點(diǎn)的區(qū)域數(shù)增加,用戶請(qǐng)求被分流到各個(gè)區(qū)域,CDN調(diào)度網(wǎng)元負(fù)荷被降低,CPU利用率從模式1的30%逐漸降至模式5的4%,效果顯著。
(3)第三種技術(shù)效果:降低用戶請(qǐng)求的響應(yīng)時(shí)延,提高用戶觀看感知。在本技術(shù)方案中,用戶請(qǐng)求由分布式CDN調(diào)度系統(tǒng)中距離用戶最近的調(diào)度節(jié)點(diǎn)接收并響應(yīng),網(wǎng)絡(luò)距離的降低也帶來(lái)整體用戶請(qǐng)求及響應(yīng)的時(shí)延下降。
綜上所述,采用基于Anycast的分布式互聯(lián)網(wǎng)電視CDN調(diào)度方法可以解決當(dāng)前集中部署的CDN調(diào)度中心安全性低、負(fù)荷重、出現(xiàn)故障后影響面積大等問(wèn)題,提高了分布式CDN調(diào)度系統(tǒng)的安全性、穩(wěn)定性和負(fù)荷能力,同時(shí)有效的降低了用戶請(qǐng)求的時(shí)延,提高了用戶的觀看感知,同時(shí)在很大程度上提升了用戶滿意度。