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