時間:2019年05月24日 分類:電子論文 次數:
摘要:本文通過在線視頻數據的特點研究了高性能分布式存儲系統(tǒng)的設計方案。鑒于傳統(tǒng)儲存方案的缺點,為了更好地解決磁盤碎片存儲性能下降的問題,本文對邏輯卷結構進行了設計。系統(tǒng)磁盤可以直接寫入非結構化的數據,降低了系統(tǒng)管理器的運行負荷,提高了存儲系統(tǒng)的性能。通過系統(tǒng)優(yōu)化,旨在提高服務器的檢索精度以及容錯能力。從測試結果來看,在降低PC端成本的基礎上,單臺讀服務器可以的視頻寫入速度得到了較大的提升,可同時對300路以上的超清視頻較好地存儲。
關鍵詞:直播視頻數據;視頻存儲;視頻寫入;分布式系統(tǒng)
隨著移動互聯(lián)網技術的推進,移動直播業(yè)務井噴,移動直播系統(tǒng)智能化、高清化的發(fā)展趨勢日益明顯。移動直播行業(yè)的快速發(fā)展使企業(yè)需要重新設計或優(yōu)化移動直播存儲系統(tǒng),即加大對攝像頭清晰度與直播視頻寫入的研究。傳統(tǒng)的網絡存儲方案是以接口協(xié)議為基礎,流媒體的服務器磁盤一般為陣列掛載的方式,即數據的保存需要借助第三方渠道,尤其是視頻文件的存儲主要為文件集中保存的形式。經過第三方服務器的存儲較易發(fā)生單點故障等情況。
直播視頻存儲需要系統(tǒng)不間斷地運行,在多數視頻不斷寫入的基礎上,傳統(tǒng)的視頻存儲方式會增加碎片文件的數量,不僅不利于后續(xù)視頻文件的存儲,而且極有可能會降低存儲系統(tǒng)的性能[1]。由此可見,為了更好了改善直播視頻存儲效果,必須對傳統(tǒng)的視頻存儲模式加以改變,通過分布式云儲存等新技術可以實現(xiàn)中小系統(tǒng)文件、視頻長時間地存儲。
第一,分布式云數據存儲系統(tǒng)的數據量大。隨著移動直播平臺的興起,視頻直播數量的大幅增加,直播平臺每日寫入的視頻數據量較大,又因為直播視頻的存儲時間一般為1~3個月,所以直播視頻的存儲系統(tǒng)必須能夠長時間地保存視頻、圖片或文件,并且線性拓展性較高。第二,直播視頻的碼率并非隨機,這主要是移動視頻直播平臺提供的分辨率所決定的。
第三,寫密集。分布式云存儲打破了“二八定律”,直播視頻的寫入操作占據總時間的80%以上[2]。一般情況下,移動直播視頻平臺會實時保存直播視頻數據,便于平臺用戶事后點播回放,部分優(yōu)秀的直播視頻甚至會永久地被保存。面對這一情況,分布式存儲系統(tǒng)設計的重點是改善寫入帶寬的效果。第四,不間斷地服務。傳統(tǒng)的數據存儲一般會選擇在線用戶較少的時間段進行系統(tǒng)維護,通常不會對平臺的經營與其他活動造成影響[3]。而移動直播平臺的用戶數量大、涉及面廣,主播的直播時長存在較大的差異,一般為30分鐘以上,也可能3~4小時會更長時間。長時間的在線直播需要平臺保存大量的視頻數據,直播平臺的升級與維護必須在不影響視頻的寫入與存儲的基礎上進行。
1系統(tǒng)總體設計
1.1系統(tǒng)構件設計
直播業(yè)務數據的并發(fā)量高、視頻數據量大,傳統(tǒng)的文件系統(tǒng)難以符合在線視頻的寫入與存儲的需求,采用傳統(tǒng)的文件存儲模式往往存在較大的問題。首先,傳統(tǒng)的文件存儲模式一般是靜態(tài)的,難以確保在線視頻數據寫入、存儲的連續(xù)性。如果系統(tǒng)需要寫入大量的超清視頻,系統(tǒng)需要通過大量文件描述符的來回切換實現(xiàn)視頻的存儲[4]。
文中設計的高性能分布式儲存系統(tǒng)通過Zab協(xié)議使接節(jié)點保證一致性,提供用戶命名、分布式同步、分組服務集中式服務框架。同時,利用Raft一致性協(xié)議,提供Http+JSON的應用程序編輯接口,使用gossip形成動態(tài)集群,提供分級鍵或分級值的存儲方式,實現(xiàn)數據的存儲。本文搭建消息中間件主要通過以下兩種方式:1)采用C++編寫,通過Brokerless架構,與底層網絡的應用程序編輯接口相似。2)采用Java編寫,設計為代理模式,可為系統(tǒng)提供豐富的功能。
在服務發(fā)現(xiàn)方面,ServiceInstance啟動時會生成獨特的ServicePath,并利用Creat方法生成節(jié)點,并通過一定的方法獲取集群數據。針對該路徑有子節(jié)點的服務器,搜尋全部的子節(jié)點列表,并訪問其他數據,之后檢測集群是否發(fā)生變化。針對該路徑沒有子節(jié)點的服務器,將watcher設置在集群路徑中。系統(tǒng)采用分組存儲方式可以大幅提高視頻儲存的靈活性、實用性等。針對重點儲存的視頻數據,系統(tǒng)管理員可以選擇存儲位置,倘若存儲服務器訪問人數較多,為了確保視頻寫入的質量與降低存儲服務器的運行負荷,管理員可以合理選擇另一個存儲服務器[8]。
另外,通過增加存儲組可以較好地適應直播業(yè)務量較大的情況,擴大了存儲服務器的規(guī)模。本系統(tǒng)通過分開存儲視頻數據與其它數據的方式,改善視頻流、元數據的存儲效果。將兩者存儲在不同的磁盤中,如果其中一方進行讀寫,另一方受到的影響會較小。直播平臺在處理質量不高的視頻數據時,不會影響其他的系統(tǒng)數據。鑒于視頻直播平臺視頻流編碼格式的特殊性,本文建立了高效的信息檢索系統(tǒng),其能夠精確到秒級。旨在實現(xiàn)視頻流數據的有效管理。邏輯卷由多個磁盤構成,各個磁盤或者磁盤分區(qū)的存儲空間一致,有利于下存儲空間的拓展。數據塊是存儲空間的重要單位,其主要負責視頻流寫入空間的分配,數據塊每次分配視頻存儲空間時,會改變對應的位圖[9]。鑒于視頻直播平臺會定期清除低質量的視頻數據,即回收保存數據的數據塊,容量大小設置為500兆左右。
1.2視頻管理設計
直播業(yè)務主要由主播通過官方客戶端上傳視頻,主播老師可以通過PC端或手機端隨時隨地的發(fā)起直播,直播時長一般為30分鐘以上。直播時間較長會增加儲存服務器的負荷,難以實現(xiàn)儲存系統(tǒng)的動態(tài)擴容。本文對視頻管理的設計如下:首先,直播老師通過pc端或移動端開啟直播,視頻流數據主要包括了標識、時長、分辨率等。其次,狀態(tài)管理器會通過數據視頻流數據發(fā)揮調控作用,在系統(tǒng)中查詢可儲存的服務器,并在檢索系統(tǒng)中增加相應的記錄,并將存儲數據通過客戶端反饋給直播老師[9]。
與此同時,儲存服務器會進行相應的寫入操作,即寫入視頻的標識、時長等。之后,儲存服務器會進一步處理視頻流,并將解析的信息存儲到數據塊中,并在檢索系統(tǒng)中增加相關描述。最后,主播老師直播完畢后,儲存服務器會進行返回操作。部分用戶收到時間、地點的限制,在直播老師直播階段無法觀看視頻,部分用戶或事后點播回看。
直播視頻的回放需要進行檢索操作,高精度的檢索系統(tǒng)使數據傳輸的次數大幅減少,提高了用戶觀看回放視頻的體驗。視頻檢索步驟主要有:首先,用戶在搜索框中輸入視頻名稱、時長、分辨率等檢索內容。之后由狀態(tài)管理器參考用戶的檢索內容在數據庫中查找已存儲的視頻,并檢索到符合條件的視頻。經過存儲服務器對視頻進行編號后,根據系統(tǒng)情況科學選擇存儲空間,返回互聯(lián)網協(xié)議地址[10]。基于用戶的讀請求,存儲服務器會借助檢索系統(tǒng)對數據塊檢索,讀出相應的視頻。最后由服務器將檢索到的視頻傳輸至客戶端。
1.3存儲空間管理
直播視頻的保存時間存在較大的不確定性,針對不同的視頻內容,直播平臺往往會選擇不同的視頻的存儲時間。因為磁盤的存儲空間有限、部分教學視頻的實用性不強,難以吸引平臺用戶,直播平臺可能會清除部分視頻。視頻的清除步驟如下:狀態(tài)管理根據視頻的存儲時間定期清除相關視頻內容,其對視頻的清除起著主要的控制作用。
之后通知保存視頻的存儲服務器將對應的索引刪除,并修改存儲信息的數據塊位圖。由于分布式存儲系統(tǒng)在清除視頻時只需要修改數據塊的位圖,其視頻清除效率較高。在數據塊分配方式的改變下,其視頻流數據的清除是動態(tài)的,并且寫入的數據塊也是不間斷的[11-12]。在本設計方案中,相鄰數據塊的分配與處理是同步的,因此,存儲服務器不會受長時間運行的影響而效率低下。
2測試與評估
2.1參數測試
系統(tǒng)磁盤的寫入不僅受緩沖區(qū)的影響,還與數據塊相關。為了進一步分析磁盤寫入的影響因素,本文將采用不同大小的數據快,同時改變每路數據流下緩沖區(qū)的大小。以單臺存儲服務器為例,向其發(fā)送200路數據流的寫入請求,在不對比特率大小限制的情況下檢測系統(tǒng)最大吞吐率。數據塊在[64,256]區(qū)間范圍內、緩沖區(qū)大小在128KB的情況下,規(guī)模較小數據塊的寫入速度快于實驗前。當數據塊大小在[128,400]區(qū)間范圍內,寫入速度先上升后下降。值得注意的是,在速度上升階段,其與緩沖區(qū)大小的變化呈正比。
2.2單機性能評估
為了更好地進行單機性能的評估,文中對100路~400路的超清視頻的并發(fā)寫入展開測試。在超清視頻被寫入1臺存儲服務器的過程中,在視頻路數為100左右的情況下,輸入帶寬為150兆每秒,其速度與系統(tǒng)總分帶寬相同,系統(tǒng)可以較快地寫入超清視頻[13-14]。之后將視頻路數上升至400兆每秒時,總帶寬速度高達200兆每秒,超清視頻依舊能夠被較快地寫入。
在之后的測試中,筆者繼續(xù)增加視頻路數,結果表明:系統(tǒng)的寫入速度隨著視頻路數的增加而增加。但對于第四代拓展文件系統(tǒng)而言,其寫入速度與視頻路數呈反比的變化關系,正是因為系統(tǒng)在儲存文件時需要打開大量的文件表,使系統(tǒng)內存消耗增加。除此之外,存儲時需對文件描述符頻繁地切換,進一步降低了的拓展文件系統(tǒng)的寫入速度[15]。
3結論
高性能分布式存儲系統(tǒng)可以實現(xiàn)超清視頻的直接寫入,不需要通過第三方服務器的傳輸,提高了系統(tǒng)的存儲性能。本文的分布式存儲系統(tǒng)采用二級檢索系統(tǒng),減少了狀態(tài)管理器保存元數據的數量,使狀態(tài)管理器能夠保持高效率的運行狀態(tài)[16]。
本文的測試結果顯示,在視頻路數不斷增加的情況下,存儲服務器的寫入超清視頻的速度可高達200兆每秒,并且寫入速度與視頻路數數量的變化呈正比。其次,本文的檢索系統(tǒng)的檢索精度較高,可精確到秒級,能夠更好地面對幾萬人同時檢索直播視頻,提高了用戶的體驗。本文設局的分布式存儲系統(tǒng)可以實現(xiàn)直播業(yè)務系統(tǒng)的擴展,更好地滿足用戶與直播平臺運營的需求。
參考文獻:
[1]操順德,華宇,馮丹,等.面向海量高清視頻數據的高性能分布式存儲系統(tǒng)[J].軟件學報,2017,28(8):1999-2009.
[2]李洪奇,朱麗萍,孫國玉,等.面向海量小文件的分布式存儲系統(tǒng)設計與實現(xiàn)[J].計算機工程與設計,2016,37(1):86-92.
[3]田敬波.面向物聯(lián)網的海量高性能分布式系統(tǒng)架構及實現(xiàn)[J].電信技術,2017,8(7):39-41.
[4]馮浩,賈年.面向海量無線電監(jiān)測數據的分布式存儲系統(tǒng)研究[J].成都工業(yè)學院學報,2015(2):25-28.
[5]羅剛.面向海量存儲的高性能元數據分布模型設計[J].空軍預警學院學報,2016,30(1):44-48.
通信技術類刊物推薦:《電信技術》(月刊)創(chuàng)刊于1954年,人民郵電出版社主辦。是我國電網信領域創(chuàng)刊最早的雜志。始終緊跟我國通信事業(yè)前進的步伐,及時介紹新技術和新產品,交流網絡建設和運營維護管理經驗。集指導性、知識性、實用性為一體,現(xiàn)已成為我國通信領域讀者面最廣、發(fā)行量最大的雜志。