王華兵
(長沙民政職業技術學院,湖南長沙410004)
視頻點播VOD(Video-on-Demand)隨著存儲技術和高速通信技術的不斷發展而越來越引起注意。在VOD服務系統中,用戶可以在他希望的時間欣賞他所喜歡的節目。播放設備可以是電視機,可以是PC,還可能是下一代的移動設備。本文提出了基于集群的分布式VOD系統視頻服務器系統,該系統由一個中心和多個分中心的二級架構組成;每個分中心相當于一個局域網,其中包含一個視頻服務器集群。每個視頻服務器集群又由一個分中心管理節點和若干個視頻服務節點組成。
VOD系統采用服務器集群技術,由多個服務器分擔負載。中心管理節點上的負載均衡調度系統將用戶請求重定向到最合適的視頻服務節點,使視頻點播系統能夠承載大用戶量的請求。如圖1-1所示,基于集群的分中心VOD系統主要由集群管理節點、視頻服務節點、Web服務器、影片庫和數據庫組成。
中心管理節點是系統的心臟,它監控各個視頻服務節點的狀態,協調各個服務器間的通訊,負責負載均衡、動態擴展等功能的實現。中心管理節點是系統的樞紐,如果它失效,整個系統就會崩潰。視頻服務節點是系統的后臺,它為用戶提供真正的視頻流服務,同時管理片源遞送。視頻服務節點可以動態的伸縮,其數目根據實際需要能夠達到一個或者多個,可通過注冊機制實現熱插拔功能。一個視頻服務節點的失效,并不會影響整個系統的可用性。

Web服務器是整個系統的前臺。它生成節目導航信息,提供影片檢索、影片預覽、影片點播等的交互界面同時它還提供管理界面,供管理員遠程監控和管理VOD系統。數據庫存放著和用戶、影片、服務器等系統資源相關的數據,供中心管理節點查詢和更新。分中心的影片庫主要存儲熱播影片。
本系統的體系結構如圖4-2所示:第一層是集群管理服務器,其上的負載均衡調度器采用IP負載均衡技術,可以使得整個系統有較高的吞吐率;第二層是視頻服務節點池,在每個節點上可以運行相應的視頻流媒體服務;第三層是共享存儲,通過網絡文件系統/分布式文件系統存儲視頻節目。集群中各節點是通過高速網絡相連接。

IPVS負載均衡調度器使用直接路由方法(VS/DR)來架構視頻服務器集群系統。調度器將視頻服務請求較均衡地分發到各個服務節點上,而視頻服務節點將響應數據直接返回給客戶,這樣可以使得整個視頻服務器集群系統具有很好的伸縮性。
共享存儲是視頻服務器集群系統中最關鍵的問題,因為視頻文件往往非常大(一部片子需要幾百兆到幾千兆的存儲空間),這對存儲的容量和讀取速度有較高的要求。對于規模較小的視頻服務器集群系統,可以有3至6個視頻服務節點,存儲系統可以考慮用帶千兆網卡的Linux服務器,使用軟件RAID和日志型文件系統,再運行內核的NFS服務,可以達到很好的效果。但是,對于規模較大的視頻服務器集群系統,最好選擇對文件分段(File Stripping)存儲和文件緩存有較好支持的分布式文件系統;視頻文件分段存儲在分布式文件系統的多個存儲節點上,可以提高文件系統的性能和存儲節點間的負載均衡。
在分布式的VOD應用中,動態擴展性是十分關鍵的環節。動態擴展是指在不改變原來系統的正常運行的情況下,通過添加視頻服務節點的方式,提升系統的性能。

在我們的VOD分布式結構中,中心管理節點和視頻服務節點之間是一對多的松耦合的關系。如圖2-1所示,中心管理節點管理和維護多個視頻服務節點的狀態。當要向系統添加新的視頻服務節點時,新的視頻服務節點向控制服務器發出注冊請求。控制服務器收到注冊請求后,把該視頻服務節點納入管理范圍,在以后處理點播請求的時候就會合理地把部分點播請求分配給它處理,使負載得到分流。如果要停止一臺視頻服務節點的服務,也不用影響系統的正常運行,只要該視頻服務節點向控制服務器發出注銷請求即可。控制服務器和視頻服務節點這種松藕合的關系增強了系統的擴展性,讓視頻服務節點真正做到“即插即用”。
由控制服務器和視頻服務節點構成了一個集群系統,這里我們需要考慮集群的負載均衡問題,系統中的各個視頻服務節點的負載不能相差過大。控制服務器在選擇視頻服務節點提供影片視頻服務時,需要考慮視頻服務節點的負載。視頻服務節點的負載(Load)主要是網絡帶寬、磁盤I/O、CPU占用率三方面。
負載平衡的實現是建立在定時負載匯報機制上的。所有的視頻服務器都會周期性地向控制服務器發送負載報告。控制服務器會建立并且維護包含這些信息的視頻服務器狀態表。

一部90分鐘、碼率為1.5M/S的電影,壓縮后仍有750M左右的體積,對于有成千上萬部影片的片源庫,如果用高速的SCSI硬盤,成本相當昂貴。對于影片的存儲,我們借鑒計算機體系結構的多級存儲方案,采用兩級存儲結構。在媒體服務節點采用高速的但容量相對較小的SCSI硬盤作為存儲設備,而片源庫采用低速的海量的存儲設備,比如磁碟機或光盤塔。

當流媒體服務節點發現要服務的影片不在自己的硬盤上時,它會到影片庫里取出并復制到本地,然后再繼續服務。如果復制到本地空間不夠,那么就使用影片替換算法替換調一個己有的影片。
視頻服務器的性能與其能處理的最大請求數密切相關。在性能測試中,同時啟動三個服務節點,并用在同網段工作的NIC100Mbps的主機,模擬多個1.5Mbps點播請求,并記錄服務器能處理的最大請求數目。具體模擬時,采用了四種模擬方案,并進行多次試驗,記錄下測試的平均值,如表5-1所示:

表5-1視頻服務器集群系統性能測試結果
性能測試的結果表明,磁盤帶寬的瓶頸已被分布式結構改善,網絡帶寬成為系統的瓶頸。隨機點播和互不相同點播試驗中,系統的性能基本相同,它們受到網絡帶寬的限制。在所有請求都點播同一節目的試驗中,系統性能成倍增加,這是基于IP組播的批處理算法帶來的優勢。本系統中三臺視頻服務器硬件性能比較接近,屬于同質系統的范疇;在系統實現進一步完善時,將考慮系統異質情況下,采用負載均衡算法所提出的公式計算系統負載;另一方面,選取系統權值,還要通過進一步測試視頻服務器的性能才能給出一個合適的值,由于目前系統測試條件的限制,權值的選取是人為指定,在本測試過程中,服務器性能參數所占的比重大致相同。
[1]王恒.基于P2P的流媒體技術[J].電腦知識與技術,2007,(5).
[2]董志,金海,吳敏娜.集群視頻服務平臺流媒體監控系統的設計與實現[J].計算機工程與科學,2005,(4):96-98.
[3]劉文捷,王慧強.基于集群服務器的VOD設計與實現研究[J].應用科技,2002,(4):35-38.
[4]楊燦,鄒雪城,盧正鼎.大規模交互式視頻服務系統研究綜述[J].廣播與電視技術,2004,(11):50-51.
[5]高梅,昌玉芳.視頻點播交互式功能設計與實現[J].華中科技大學學報.2006,(5).
[6]朱淵萍,黃明和.一種視頻點播系統的研究與實現[J].江西師范大學學報,2004,(10):444-447.