摘要:在當今網絡視頻發展的過程中。高清視頻,多用戶,大并發流是視頻點播發展的必然趨勢。該文從分析flash media server系統入手,提出了一種應用于高校內部高速網的高清視頻服務的設計方案,并對該系統的體系機構和各個組成部分進行了改進,重點是針對用戶的VCR操作,視頻文件的內熱度等。對視頻文件進行分盤分區分段存儲。從而大幅度降低了服務拒絕率,減少了用戶等待時間[1]。
關鍵詞:FMS;視頻服務器;VCR;內熱度
中圖分類號:TP316文獻標識碼:A文章編號:1009-3044(2010)01-210-02
A Research on High-definition Video Server Based on FMS
MA Jun, GUO Wen-ming, ZHANG Hai
(Southern Medical University, Network Center, Guangzhou 510515, China)
Abstract:In today's network video development process. High-definition video, multi-user, large concurrent flow is an inevitable trend of the development of video on demand. By analyzing the flash media server systems start, presents a high-speed network used in colleges and universities within the design of high-definition video services, and the system architectures and components has been improved, focus is on the user's VCR action , video files and other internal heat. The video file is stored sub-sub-disk partition. Thus greatly reducing the rate of denial of service, reducing user waiting time.
Key words:FMS; video services; VCR; internal heat
隨著計算機和網絡技術的進步,用戶對網絡視頻服務的要求和視頻質量也越來越高。視頻服務器和網絡的壓力也不斷的增加。傳統的軟件視頻系統的開發設計到的數據編碼,通訊技術,服務端客戶端環境構建等因素。開發成本和工作量巨大。傳統的視頻點播系統主要分為集中式和p2p,集中式往往使用單一服務器,隨著用戶連接人數的增加會出現相應率低,播放不流暢甚至不能播放的現象,存在最大并發的限制,網路擴容和升級冗余備份上村在缺陷,并且大型專用服務器成本較高。而P2P方式針對直播效果優秀但應用于點播存在不足。Flash Media Server(FMS)是adobe公司推出的開發流媒體的服務器軟件。具有良好的客戶端操作環境,具備跨平臺,實時響應,分布式多層架構等特點。而這些應用僅要求客戶端具備瀏覽器搭配Flash Player。已經普及到了絕大多數互聯網終端,并且越來越多的移動設備也開始支持。
1 傳統視頻點播系統
目前來說傳統的VOD視頻點播系統主要有三部分組成:服務器,傳輸網絡和用戶。根絕服務器在網絡中的連接方式由分為集中是存儲,分層式存儲和分布式存儲[2]。集中式存儲是最原始的一種結構,它僅僅由一臺或者多臺服務器構成一個中心服務器,對視頻文件的存儲和向用戶提供點播服務的任務全部集中在中心服務器上。在分層式存儲中,服務器連接成樹型結構。核心服務在中心,每個節點服務器都存放著上一層服務器中的視頻數據。并向上一層服務器提供服務。只有當用戶請求的視頻不在節點服務器上,上一層服務器才通過節點服務器和用戶提供服務。分布式存儲結構層次上只分為中心服務器和本地服務器,中心服務器上存儲著所有數據,而你本地服務器類似的存放著中心服務器的數據子集。中心服務器主要起到本地服務器管理以及視頻文件存儲分配的作用。這樣的結構很好的解決了集中式存儲和分層式存儲瓶頸問題和存儲空間浪費以及相應時間過長等問題。因此本文將分布式存儲的模型應用在了FMS的體系結構中。從系統設計和實現的角度分析視頻文件如何在服務器中進行分配以及如何存儲等一些關鍵性問題。
2 FMS分布式系統體系結構
高清視頻服務器的主要存在瓶頸為帶寬和磁盤I/O,磁盤的I/O 在用戶大并發操作下性能下降非常快,服務拒絕率升高和用戶等待時間延長是主要體現。針對視頻服務器的點播特點,此高清視頻服務器體系結構為三層架構,分發層(balance),負載緩沖層(Edge),數據應用層(Origin)。所有的視頻數據文件全部保存在Origin中。Origin可由一臺或多臺構成,并做全冗余備份。負載緩沖層(Edge)由多臺構成,主要作用是緩存用戶所請求的視頻文件,緩存容量大小可根據實際情況進行設定。
第一個用戶播放請求首先到達分發層(balance)。分發層(balance)通過策略判斷旗下負載緩沖層(Edge)的負載,并將負載低的負載緩沖層(Edge)判斷后通知數據應用層(Origin),數據應用層(Origin)將視頻數據發送給此臺負載緩沖層(Edge)。當下一個用戶請求是同一個視頻文件時,則直接由負載緩沖層(Edge)中的cache數據發送給用戶。減輕數據應用層(Origin)的負載壓力。根據Zipf 定理可知,10%-20%的視頻文件吸引了80%-90%的用戶觀看,Edge緩沖層則cache了高用戶點擊率的視頻文件。數據應用層(Origin)的負載壓力將大大減輕,并且負載緩沖層(Edge)和數據應用層(Origin)均可動態增加。但高并發用戶時,Origin視頻數據服務器壓力還是比較大。在這個基礎上,我們提出從內部優化Origin磁盤存儲策略,采用分盤分段存儲的方法,突破性能瓶頸。
3 分盤分段存儲與內熱度
對于流媒體點播服務器來說,服務拒絕率是衡量其性能優劣的重要指標指標。服務拒絕率標志著服務器提供服務的能力,拒絕率越高服務能力則越小,可以服務的用戶就越少。
假設服務器中包含一個支持N條流的磁盤,且盤內存儲一個播出時長為T的視頻文件,用戶隨機請求服務,服務市場為T1.假設第i個用戶的請求時刻為ti,i=1,2…,則前N個用戶發出請求后便能立刻得到服務。若在第N+1和用戶請求前,第一個用戶服務已完畢,則n+T≤tn+1,則第N+1個請求可以馬上得到相應;否則,即n+T>tn+1,(tn,n+T)時間區間內的請求被拒絕n+T后,第一個用戶離去,系統響應新的請求。假設用戶的請求的到達形成一個泊松流,則流媒體服務的拒絕率表示為
ρ1 = 被拒絕數/總訪問數 = (λ*被拒絕時間)/(λ*總訪問時間) = (t1+T-tn)/(t1+t) = (1/λ+T-n/λ)/(1/λ+T)
= (1+λ*T-N)/(1+λ*T) = 1-N/(1+λ*T)(1)
即T增大,ρ1增大;T減小,ρ1減小。因此要減小用戶被拒絕率,必須減小T。
假設流媒體服務器存儲由K個盤組成,每個盤存儲一個不同的視頻文件,其中第i個視頻文件的時間長為Ti,被申請服務的概率為ri,i=1,2,...,
在多盤存儲中再將流媒體數據分段存儲,若分為k段,并分別存在不同的磁盤內,假設第i段的時長為T(i),i=1,2,…,k,則損失率為
當T(i)=T(i+1)=T/k時,i=1,2…,k-1.則(3)式(4)
假設第一個請求在0時刻到達,t→0,流媒體接受率從N/(1+λ*T)上升到N/(1+λ*T/K),則接受率提高了k倍。
根據Zipf定律和計算表明,流媒體點播系統的特點是僅10%-20%的節目吸引了多達80%-90%的觀眾。也就是說。絕大部分點播概率集中在少數的熱門節目上。將這些點播率高的文件分布存儲在不同的服務器上,在不同的服務器中由再分散存儲在各個磁盤中。由(1)可知,要減小拒絕率,必須減小T。由(2)可知,要減小損失率,必須減小對ri值大的ti,將那些請求次數多的視頻數據分盤存儲到各個盤中。能夠明顯減小視頻點播系統的服務拒絕率,提高服務器的吞吐能力,增強了系統的整體性能。起到了優化的效果。
和不同的視頻具有不同的點播概率相同,同一部視頻的不同分段被觀看的概率也是不同的。很多情況下,用戶觀看一部視頻并不會從開始一直觀看到結尾,很多用戶在中途就中斷了點播,所以,視頻文件的開頭部分的點播概率會高出結尾部分很多。這種同一個視頻文件的不同分塊的點播概率差異稱之為內熱度。傳統的分盤分段存儲消除了視頻外部的熱度差的同時,也帶來了新的負載均衡問題。傳統的分盤分段存儲將導致視頻開頭分塊將承擔較多。而后段部分負載較輕。當用戶請求大并發時,系統運行效率下降也很快。
所以我們在分盤分段的存儲策略上進行了相關改進。一個視頻文件分成若干大小的塊,交錯循環的存儲到一組硬盤上。若k0為第一個塊安置的磁盤號,則第i塊存放應存放在第k個磁盤上,k=k0-1+imodK)modK,其中k∈{0,….,K-1},K為磁盤數目。如上圖所示,此種方法可以有效的解決內熱度的負載不均衡問題。當磁盤的數目增加時,其總的輸出帶寬也增加。支持的用戶數理論上應線性遞增。
4 性能分析
本研究實現了2個Origin和4個Edge總共6臺PC服務器,在此試驗中表明文中所采用的方案是一種高效能的解決方案. 我們以提供400部3000Kbps的MPEG4視頻流服務為目標,origin上采用1T的sata硬盤塊,edge采用500G的sata硬盤。4G內存,雙核CPU,1000M以太網出口,選擇周末晚上7點左右用戶高點擊率的時候進行測試。并在用戶端選擇任意一個接受檢測質量。通過實驗數據表明。服務器各個分盤大致均衡了用戶的點擊請求(圖3),數據應用層(Origin)負荷穩定(圖4)。
服務器輕松通過400個用戶的并發高清點播請求。隨機選擇視頻文件進行VCR操作用戶等待時間大幅縮短。測試服務器cpu與內存負載不高,并可增加更多的點擊量。有效的突破了傳統視頻服務器的性能瓶頸。
參考文獻:
[1] 梁晶,梅博,申玉,等. 分布式視頻點播系統中動態負載平衡方法的研究[J].現代電子技術,2002,13(2):332,361.
[2] 鄢仁祥,高遠. 一種分布式視頻點播系統模型[J].小型微型計算機系統,2002,23(8):1010-1013.
[3] 謝建國.VBR流視頻存儲I/O及傳輸優化[M].北京:科學出版社,2006.