毛紅衛(wèi),陳海明,周忠瑞
(浙江省諸暨市融媒體中心,浙江 紹興 311800)
視頻點(diǎn)播(Video on Demand,VOD)又稱為互動(dòng)點(diǎn)播、在線點(diǎn)播,以實(shí)時(shí)性、交互性、自主性和直觀性等特點(diǎn),越來越多地滲透到人們的日常生活?yuàn)蕵分校瑑?nèi)容包括文字、圖片、視音頻等多種形式[1]。海量、超大規(guī)模的數(shù)據(jù)存儲(chǔ)系統(tǒng)影響運(yùn)營過程中的數(shù)據(jù)調(diào)度、輸出寫入、數(shù)據(jù)恢復(fù)等一系列的系統(tǒng)效率,對(duì)此,存儲(chǔ)策略有多級(jí)存儲(chǔ)、內(nèi)部緩存、云存儲(chǔ)等多種方式,提高硬件的性能、優(yōu)化存儲(chǔ)結(jié)構(gòu)、采用多級(jí)Cache 緩存和智能調(diào)度(優(yōu)化算法)等多種手段,提升存儲(chǔ)系統(tǒng)的可靠性、可用性、穩(wěn)定性和可持續(xù)性[2]。各級(jí)廣電單位(融媒體中心)根據(jù)社會(huì)效益、經(jīng)濟(jì)效益以及自身發(fā)展需要等多種因素綜合考量,建設(shè)基于廣電網(wǎng)絡(luò)的VOD 系統(tǒng)。本文將介紹一種基于智能網(wǎng)格推流系統(tǒng)的云分布式存儲(chǔ)策略。
分布式存儲(chǔ)是把在地理位置上相對(duì)分散的存儲(chǔ)空間整合成一體,高度依賴網(wǎng)絡(luò),把分散的存儲(chǔ)空間鏈接起來,實(shí)現(xiàn)數(shù)據(jù)共享、存儲(chǔ)和計(jì)算分開。在存儲(chǔ)磁盤中采用緊耦合節(jié)點(diǎn)互連方式進(jìn)行分布式存儲(chǔ),存儲(chǔ)陣列節(jié)點(diǎn)之間通過輸入/輸出(Input Output,I/O)互聯(lián)進(jìn)行通信,系統(tǒng)通過訪問權(quán)限對(duì)存儲(chǔ)特定節(jié)點(diǎn)進(jìn)行管理操作。分布式存儲(chǔ)的核心技術(shù)包括文件條帶化、內(nèi)部網(wǎng)絡(luò)交換機(jī)制、存儲(chǔ)備份、存儲(chǔ)顆粒度和淘汰機(jī)制等。
在VOD 視頻服務(wù)領(lǐng)域不存在分布式計(jì)算的問題,實(shí)際需要重點(diǎn)解決的是分布式存儲(chǔ)問題[3]。隨著高清、超高清視頻的應(yīng)用,超大容量存儲(chǔ)要求越來越高。采用云分布式存儲(chǔ)的方法,可以支持萬級(jí)規(guī)模的用戶量的普及,甚至更高并發(fā)流信息共享,可以有效解決傳統(tǒng)集群架構(gòu)存儲(chǔ)不能共享、服務(wù)資源不能動(dòng)態(tài)分配、擴(kuò)容空間部署復(fù)雜等問題,將存儲(chǔ)功能從服務(wù)器系統(tǒng)主體中分離,具有強(qiáng)大的獨(dú)立存儲(chǔ)功能,海量數(shù)據(jù)緩存更專業(yè)高效[4]。
VOD 視頻服務(wù)器具備本地緩存單元。存儲(chǔ)系統(tǒng)使用串行SCSI(Serial Attached SCSI,SAS)接口的機(jī)械磁盤或Flash 介質(zhì)磁盤作為緩存載體。本地物理存儲(chǔ)設(shè)備部件支持自動(dòng)化熱插拔,減少人工干預(yù)。
VOD 視頻存儲(chǔ)系統(tǒng)采用分層緩存管理策略,按空間分配保存有所有文件分片數(shù)據(jù)的獨(dú)立的熱度統(tǒng)計(jì)數(shù)據(jù)[5]。熱度高的數(shù)據(jù)放在一級(jí)高速緩存中,熱度低的數(shù)據(jù)放在二、三級(jí)緩存中,根據(jù)熱度的實(shí)時(shí)變化,自動(dòng)、實(shí)時(shí)遷移相應(yīng)的分片數(shù)據(jù)到相應(yīng)的緩存區(qū)域。分布式存儲(chǔ)系統(tǒng)通過特征數(shù)據(jù)分割提取實(shí)現(xiàn)分層管理,時(shí)序數(shù)據(jù)特征提取公式為
式中:i1、i2分別表示數(shù)據(jù)包的兩種特征相關(guān)度參數(shù)。根據(jù)特征標(biāo)簽進(jìn)行分割,引入緩存節(jié)點(diǎn)相對(duì)空間距離權(quán)重a計(jì)算數(shù)據(jù)包緩沖長度,計(jì)算公式為
式中:LI表示特征數(shù)據(jù)包緩沖長度,n為特征子數(shù)據(jù)包數(shù)量,ΔB為分布式緩存數(shù)據(jù)包平均容量。根據(jù)計(jì)算結(jié)果對(duì)特征數(shù)據(jù)包進(jìn)行分布式多層緩存管理。分層緩存管理機(jī)制分為服務(wù)器緩存、代理緩存和客戶端緩存3 大層級(jí)。
服務(wù)器緩存采用隨機(jī)存取存儲(chǔ)器(Random Access Memory,RAM)存儲(chǔ)方法,對(duì)VOD 系統(tǒng)服務(wù)器本地?cái)?shù)據(jù)進(jìn)行緩存,通過數(shù)據(jù)預(yù)取方法縮短點(diǎn)播視頻存儲(chǔ)延遲,分布式存儲(chǔ)節(jié)點(diǎn)分別對(duì)各自區(qū)域的存儲(chǔ)網(wǎng)絡(luò)進(jìn)行調(diào)頻處理。代理緩存是系統(tǒng)服務(wù)器磁盤硬存儲(chǔ),針對(duì)存儲(chǔ)數(shù)據(jù)量大、局域網(wǎng)延時(shí)嚴(yán)重情況,啟動(dòng)數(shù)據(jù)代理緩存,調(diào)動(dòng)集中緩存中心數(shù)據(jù)傳輸?shù)骄彺娲砉?jié)點(diǎn),可有效減少I/O 路徑瓶頸頻率,提高服務(wù)器存儲(chǔ)系統(tǒng)負(fù)載能力??蛻舳司彺婊邳c(diǎn)對(duì)點(diǎn)(Peer to Peer,P2P)網(wǎng)絡(luò)進(jìn)行網(wǎng)絡(luò)資源擴(kuò)容服務(wù),以局部終端節(jié)點(diǎn)為中心,獲取相關(guān)系統(tǒng)數(shù)據(jù)資源,增強(qiáng)數(shù)據(jù)庫資源完整度,以提供更高效率的緩存與數(shù)據(jù)服務(wù)。
采用三級(jí)Cache 緩存技術(shù)支持緩存替換,內(nèi)存Cache 實(shí)現(xiàn)數(shù)據(jù)直接從內(nèi)存讀寫,加快響應(yīng)速度;硬盤Cache 實(shí)現(xiàn)數(shù)據(jù)從硬盤讀寫,調(diào)整緩存策略參數(shù)配置,硬盤與內(nèi)存組合存儲(chǔ)模式可進(jìn)行互連數(shù)據(jù)讀寫替換。
根據(jù)VOD 系統(tǒng)規(guī)劃,邊緣緩存節(jié)點(diǎn)承擔(dān)本地80%的并發(fā)流量,20%并發(fā)來自網(wǎng)絡(luò)的存儲(chǔ)規(guī)則,分來源地對(duì)緩存文件分片進(jìn)行哈希校驗(yàn),根據(jù)損壞處理機(jī)制(Intelligent Corruption Handling,ICH),存儲(chǔ)管理系統(tǒng)會(huì)從集群內(nèi)對(duì)文件分片數(shù)據(jù)的完整性進(jìn)行校驗(yàn),哈希轉(zhuǎn)換公式為
式中:αi、βi分別表示緩存數(shù)據(jù)i的存儲(chǔ)節(jié)點(diǎn)向量和存儲(chǔ)空間向量。利用稀疏度計(jì)算選取最優(yōu)關(guān)聯(lián)度可替換數(shù)據(jù),計(jì)算公式為
式中:XI(i)為稀疏度關(guān)聯(lián)可替換數(shù)據(jù)閾值,fm表示稀疏關(guān)聯(lián)密度值,ti為節(jié)點(diǎn)信息緩存時(shí)間。通過式(4)推斷損壞數(shù)據(jù)的可替換關(guān)聯(lián)參數(shù),進(jìn)行補(bǔ)償替換緩存。
ICH 機(jī)制重新調(diào)度緩存損壞的部分?jǐn)?shù)據(jù),對(duì)內(nèi)存緩存信息進(jìn)行周期性備份,根據(jù)存儲(chǔ)日志邏輯,將獨(dú)立節(jié)點(diǎn)存儲(chǔ)數(shù)據(jù)轉(zhuǎn)化為持久化緩存形式,調(diào)入存儲(chǔ)空間,剔除原有問題數(shù)據(jù)塊進(jìn)行替換。
傳統(tǒng)的單一存儲(chǔ)方式受限于節(jié)點(diǎn)空間,當(dāng)緩存出現(xiàn)數(shù)據(jù)缺失,無法繼續(xù)將相對(duì)應(yīng)的數(shù)據(jù)進(jìn)行映射緩存,還會(huì)增加存儲(chǔ)空間的I/O 路徑時(shí)延情況。為滿足客戶端讀寫響應(yīng)需求,將存儲(chǔ)中心的讀寫旁路與懶惰緩存法結(jié)合,以保證存儲(chǔ)池?cái)?shù)據(jù)處理質(zhì)量。實(shí)現(xiàn)步驟如圖1 所示。
當(dāng)客戶端請(qǐng)求通過I/O 路徑檢索關(guān)鍵數(shù)據(jù)是否在數(shù)據(jù)庫中,在存儲(chǔ)池調(diào)動(dòng)關(guān)鍵詞相關(guān)數(shù)據(jù)滿足客戶需求。若檢索發(fā)現(xiàn)數(shù)據(jù)庫未能滿足客戶請(qǐng)求,將請(qǐng)求信息轉(zhuǎn)發(fā)到關(guān)聯(lián)系統(tǒng)數(shù)據(jù)庫,進(jìn)行讀寫旁路檢索,獲取缺失數(shù)據(jù)塊。當(dāng)數(shù)據(jù)庫中某一數(shù)據(jù)塊訪問次數(shù)過多而產(chǎn)生大量運(yùn)行緩存,可將該數(shù)據(jù)塊進(jìn)行重用距離設(shè)置,采用懶惰緩存策略,避免多次訪問產(chǎn)生I/O 時(shí)延,增加存儲(chǔ)系統(tǒng)冗余緩存數(shù)據(jù)。
負(fù)載均衡能極大地降低網(wǎng)絡(luò)堵塞,提高終端訪問的有效命中率和服務(wù)節(jié)點(diǎn)的響應(yīng)速度,可以使用軟件實(shí)現(xiàn)也可以使用硬件實(shí)現(xiàn),保證高效的資源調(diào)度和分發(fā)。為保證整個(gè)系統(tǒng)的負(fù)載均衡,系統(tǒng)采用全局負(fù)載均衡(Global Server Load Balance,GSLB)、本地負(fù)載均衡(Server Load Balance,SLB)相結(jié)合的方式,如圖2 所示。本地負(fù)載均衡是在全局負(fù)載均衡調(diào)度基礎(chǔ)上為終端選擇節(jié)點(diǎn)內(nèi)最優(yōu)的存儲(chǔ)單元提供服務(wù)。
圖2 多級(jí)負(fù)載均衡
本地負(fù)載均衡負(fù)責(zé)節(jié)點(diǎn)內(nèi)存儲(chǔ)單元之間的流量均衡,系統(tǒng)支持以下本地負(fù)載均衡策略:通過對(duì)終端發(fā)起的內(nèi)容請(qǐng)求和對(duì)節(jié)點(diǎn)內(nèi)視頻存儲(chǔ)單元的內(nèi)容分布,把終端請(qǐng)求指向到包含內(nèi)容的視頻存儲(chǔ)單元,這是本地負(fù)載均衡的內(nèi)容策略;通過對(duì)節(jié)點(diǎn)內(nèi)視頻存儲(chǔ)單元的流量、鏈接數(shù)等多重解析,把終端指向到節(jié)點(diǎn)負(fù)載情況較好、網(wǎng)絡(luò)狀況較好和負(fù)擔(dān)輕的單元,這是本地負(fù)載均衡邊緣存儲(chǔ)單元策略。
全局負(fù)載均衡方式是調(diào)度分發(fā)的過程,在眾多分散的資源站點(diǎn)中,為終端選擇一個(gè)最近的最優(yōu)節(jié)點(diǎn)作為服務(wù)站點(diǎn),在節(jié)點(diǎn)與節(jié)點(diǎn)之間保證數(shù)據(jù)的基本平衡。系統(tǒng)支持以下3 個(gè)全局負(fù)載均衡策略。第一,通過對(duì)網(wǎng)際互連協(xié)議(Internet Protocol,IP)地址段和單個(gè)IP 地址的解析,把終端發(fā)起的請(qǐng)求指向到終端物理位置最近的節(jié)點(diǎn),這是全局負(fù)載均衡的就近策略;第二,通過對(duì)終端內(nèi)容請(qǐng)求解析,把終端發(fā)起的內(nèi)容請(qǐng)求指向到包含終端請(qǐng)求的節(jié)點(diǎn),這是全局負(fù)載均衡的內(nèi)容策略;第三,通過對(duì)節(jié)點(diǎn)的流量、鏈接數(shù)等多重解析,把終端指向到節(jié)點(diǎn)負(fù)載情況較好、網(wǎng)絡(luò)狀況較好和負(fù)擔(dān)輕的節(jié)點(diǎn),這是全局負(fù)載均衡節(jié)點(diǎn)策略。
VOD 系統(tǒng)廣泛應(yīng)用于多個(gè)領(lǐng)域。近幾年,以視頻為主的VOD 業(yè)務(wù)量呈現(xiàn)爆炸式增長,應(yīng)用范圍越來越廣。本文介紹了海量VOD 數(shù)據(jù)的存儲(chǔ)和調(diào)度方式,探究分布式存儲(chǔ)系統(tǒng)架構(gòu)、存儲(chǔ)策略和負(fù)載均衡機(jī)制,針對(duì)獨(dú)立存儲(chǔ)節(jié)點(diǎn)之間相互獨(dú)立的分布式緩存模式、讀寫旁路和懶惰存儲(chǔ)、分層管理機(jī)制與替換存儲(chǔ)等策略進(jìn)行分析,證明分布式獨(dú)立的存儲(chǔ)單元的服務(wù)中斷不會(huì)影響系統(tǒng)整體的正常運(yùn)轉(zhuǎn),可以有效維護(hù)VOD 系統(tǒng)數(shù)據(jù)存儲(chǔ)安全穩(wěn)定。