摘 要: 硬盤播出視頻服務器的存儲子系統(tǒng)的發(fā)展歷程,并分析了各個階段的典型模式的特點。
關鍵詞: 視頻服務器 碼流 帶寬 RAID
當前,廣播電視的播出系統(tǒng)正處于由模擬信號播出向數(shù)字信號播出的轉換時期,播出系統(tǒng)數(shù)字化的關鍵點之一就是選用合適的硬盤播出視頻服務器。硬盤播出視頻服務器從誕生至今雖然時間不久,卻經(jīng)歷了一系列的變化,其性能也是由多方面因素的綜合作用決定的。本文將從存儲子系統(tǒng)的角度回顧硬盤播出視頻服務器的發(fā)展歷程,并且分析各種存儲系統(tǒng)結構對于硬盤播出視頻服務器的影響。
1 第一代存儲子系統(tǒng)——單機陣列
第一代存儲子系統(tǒng)的產(chǎn)品示意圖如圖1所示。
由于受成本的制約和技術的限制,早期視頻服務器的硬盤存儲系統(tǒng)相對比較簡單。它們大多是一個獨立的單一系統(tǒng),擁有一套硬盤存儲陣列,采用RAID3 或RAID5技術,擁有一層簡單的容錯功能。從視頻播出領域的應用角度考慮,要保證播出安全,容錯技術尤為重要。一層簡單的容錯能力難以滿足大型多頻道播出的安全要求。這種播出方式除安全問題尤其顯著外,它的負載能力也有很大的局限性,由于總線速度的限制,總共可以安裝的編解碼板的數(shù)量是有限的。隨著編解碼板數(shù)量的增加而帶來的巨大的I/O帶寬壓力,對于磁盤陣列的帶寬承受能力是一個很大的考驗。如果系統(tǒng)負載過重,陣列帶寬占用率過高,或者說余量帶寬很小,則一旦陣列中的某個硬盤損壞,陣列的恢復將是一個極其漫長的過程,而且處于恢復過程中的陣列的帶寬余量更小,使整個陣列面臨的危險性顯著增加。這種方式的設計整體上沒有太多的冗余考慮,因而具有實現(xiàn)簡單、低成本的特點。但這種結構的播出服務器只能負責一些廣告和短片的插播,不能作為主播設備使用。
2 第二代存儲子系統(tǒng)——雙機鏡像
由于單機系統(tǒng)的安全原因,一些視頻服務器供應商提出一個改良的方法,即對單一系統(tǒng)進行一對一的鏡像配置。通過鏡像,存儲系統(tǒng)被分成主系統(tǒng)和備份系統(tǒng)二個內(nèi)容完全一樣的結構。文件上載到主系統(tǒng)后,往備份系統(tǒng)做一對一的拷貝(如圖2)。對于目前這種結構的主流產(chǎn)品而言,主系統(tǒng)和備份系統(tǒng)中間的連接通常采用的鏈路方式為光纖通道。
這種方式是通過增加存儲系統(tǒng)的冗余度,加了一倍的容量來提高系統(tǒng)的安全性。這種方式實現(xiàn)比較簡單,從技術角度來看,它的存儲子系統(tǒng)與第一代產(chǎn)品在故障容錯能力上是相同的,只是增加了拷貝功能。這種方式雖然在整體上增加了系統(tǒng)安全播出的可靠性,但是面對用戶對多頻道播出的需求,相對于第一代視頻服務器沒有什么提高,只是隨著IT技術的發(fā)展,在服務器的數(shù)據(jù)總線寬度達到64位,總線速度有了明顯提升之后,才能夠?qū)崿F(xiàn)在這種系統(tǒng)構建方式下播出2~3個頻道。
這種構建方式的不足之處在于:(1)存儲系統(tǒng)的利用率較低(不到50%),整體構建成本較高。(2)單臺服務器上的編解碼板的正常運作幾乎完全依賴于本機的存儲陣列。也就是說編解碼板與存儲陣列是綁定在一起的。在這種體系中,存儲損失一半的同時編解碼板也要有一半停止工作。(3)多頻道高碼流播出的負載能力有限。但是這種構建方式也有著明顯的優(yōu)點:原理比較簡單,易于理解和控制
目前國內(nèi)許多廠商推出的小型播出視頻服務器采用這種構建方式。當前的主流進口產(chǎn)品中也有采用雙機鏡像這種構建方式的硬盤播出視頻服務服務器。以SONY的MAV-70XGI播出視頻服務器和SeaChange公司的BMS系列服務器為代表,其中MAV-70XGI服務器的存儲陣列基本配置由8塊硬盤組成,使用Raid3校驗方式;BMS服務器的存儲陣列的基本配置由8塊或者12塊硬盤組成,使用Raid5校驗方式。
3 基于SAN結構存儲子系統(tǒng)的視頻服務器
鏡像存儲系統(tǒng)的做法限制了播出視頻服務器向多頻道高碼流方向的發(fā)展。因此采用鏡像存儲數(shù)據(jù)方式的服務器供應商開始考慮使用新的方法來彌補鏡像設計的不足。其中一種方法是采用SAN(Storage Area Network)共享存儲結構。典型的系統(tǒng)結構是:只配置視頻I/O(沒有內(nèi)部大容量存儲)的視頻服務器通過FC集線器或交換機與中央存儲盤塔連接。盤塔采用RAID3或RAID5硬盤陣列形式。盤塔提供素材共享,它通過集線器或交換機向各個輸入輸出視頻服務器提供存儲服務。其典型結構如圖3所示。
圖3所示的SAN方案常采用對硬盤陣列分組的方式,下面以此為例進行說明。系統(tǒng)中有4組硬盤陣列連接到交換機上。進入到系統(tǒng)的視頻數(shù)據(jù)首先被分散到4個陣列,然后,進入每個陣列的局部數(shù)據(jù)在陣列內(nèi)做RAID3或者RAD5的處理與記錄。在數(shù)據(jù)做RAID3或者RAID5前,先做了一次RAID0處理,這樣做有一個明顯的好處就是可以提高硬盤的總吞吐帶寬。隨著總的可用帶寬的增加,外部僅僅負責I/O的播出服務器就可以在數(shù)量上有所增加,對于多頻道高碼流的負載能力就得到了顯著的增強。在這種體系結構下一個機群系統(tǒng)可以負載4個以上的播出頻道。
由于播出系統(tǒng)對于系統(tǒng)安全性的要求是極高的,所以必須在SAN結構帶來極大進步的同時,冷靜地看一下它仍存在的一些安全上的隱患:(1)為了消除理論上的單一崩潰點,這種結構下的文件服務器最好做成主備方式。(2)多頻道同時播出與上載同時進行的情況下,作為數(shù)據(jù)交換核心的交換機將承受巨大的帶寬壓力,這就要求該交換機具有很強的負載能力,而且最好也形成主備結構。(3)SAN結構的四個存儲陣列之間是RAID0的關系,每個陣列內(nèi)部只擁有一層RAID3或者RAID5的保護。也就是說如果某個存儲陣列同時出現(xiàn)二塊以上的硬盤故障或者其他的可以引起整個陣列停機的故障,則丟失的數(shù)據(jù)將無從找回,這也就意味著將會出現(xiàn)播出事故。所以實際中使用的SAN產(chǎn)品,都在此采用了一套備份存儲陣列。以圖3為例,通常的產(chǎn)品構建方式為陣列1、2為一體,陣列3、4為一體,后者作為前者的備份,二者之間為鏡像關系。這種解決辦法可以保證SAN結構的硬盤播出服務器的數(shù)據(jù)存儲的安全性,但是這種解決方式也有著明顯的缺點:(1)存儲利用率低、成本較高;(2)由于主備二套存儲之間的鏡像關系,主存儲除了要負擔外部I/O服務器的上載、數(shù)據(jù)寫入、播出及數(shù)據(jù)讀出外,還要把上載進來的新素材數(shù)據(jù)通過中心交換機及時地傳送給鏡像的備存儲,這就相當于把中心交換機對主存儲的寫入帶寬的服務增加了一倍。也就是說中心交換機和主存儲體面臨的帶寬壓力更大了。
SAN結構除了可以極大地提高服務器機群的總帶寬負載能力外,還帶來了一個革命性的變化,那就是打破了以往的服務器I/O與存儲陣列故障綁定的傳統(tǒng)。在這種結構下外部的服務和內(nèi)部的存儲是相互獨立的,各自可以隨著自己的需要而進行增減。存儲的故障也不會再影響到外部的I/O應用服務。
與主備結構相比,SAN存儲結構的采用極大地提升了硬盤播出視頻服務器系統(tǒng)的總體性能,這是一次由視頻服務器體系結構的改進而帶來的明顯進步,此后又有很多新的視頻服務器的體系結構被提出,其中就包括基于RAID平方存儲結構的視頻服務器。
共享存儲的SAN結構被各大服務器廠商應用于各自的產(chǎn)品。這些產(chǎn)品包括目前處于主流地位的一些服務器,例如GVG的PVS1000系列和PVS2000系列都可以構建成SAN模式。
4 基于RAID平方存儲子系統(tǒng)的視頻服務器
要說明RAID平方存儲結構,首先要看一下RAID5的數(shù)據(jù)保護方式。一塊數(shù)據(jù)如果要通過RAID5控制單元(硬件或者軟件)寫入它所控制的多個存儲體,就必須經(jīng)過以下幾個步驟:數(shù)據(jù)分割,校驗計算,存儲體分配。圖4表示了一個RAID5控制單元控制著五個存儲體。下面通過一個例子來看一下數(shù)據(jù)是如何寫入的。假設待寫入的數(shù)據(jù)塊大小為4MB。根據(jù)RAID5控制單元所控制的存儲體的個數(shù)(這里為5個),將這塊數(shù)據(jù)分成等長的5-1=4段,每段大小為1MB,然后根據(jù)這4段數(shù)據(jù)計算出等長的一段校驗數(shù)據(jù)(校驗方式為異或校驗)。這樣總共得到5個等長的數(shù)據(jù)段,RAID5控制單元的每次寫入都是將這5個數(shù)據(jù)段放置在不同的存儲體上。四段原始數(shù)據(jù)在存儲體中以1、2、3、4表示,一段校驗數(shù)據(jù)在存儲體中以xor表示。圖4表示了RAID5控制設備連續(xù)五次對存儲體進行數(shù)據(jù)寫入的過程。RAID5控制單元的每次寫入是將各個數(shù)據(jù)段循環(huán)放置到不同的存儲體上。一個數(shù)據(jù)段不與某個存儲體固定對應。數(shù)據(jù)讀出的過程也是按塊進行的,每塊數(shù)據(jù)的讀出就是從所有存儲體同時讀出當初寫入時相對應的各段,然后檢查數(shù)據(jù)無誤后,去掉校驗段數(shù)據(jù),組裝有效數(shù)據(jù)段進行輸出。
RAID5的數(shù)據(jù)保護允許所控制的N(N≥3)個存儲體中的一個存儲體失效,這時缺失的數(shù)據(jù)由其他正常的N-1個存儲體的數(shù)據(jù)計算得到。如果再出現(xiàn)第二個存儲體失效,則RAID5存儲結構將會因有效存儲體的不足而崩潰。
RAID平方存儲結構是由三個或三個以上的獨立節(jié)點組成的分布式系統(tǒng),每個節(jié)點類似于一臺獨立的服務器,擁有自己的硬盤陣列,系統(tǒng)中采用點對點的連接方式。圖5給出了由四個節(jié)點組成的RAID平方存儲結構。RAID平方存儲系統(tǒng)的數(shù)據(jù)寫入和讀出也是以數(shù)據(jù)塊的方式進行的。它通過一個節(jié)點要輸入系統(tǒng)的數(shù)據(jù)塊,在該節(jié)點以系統(tǒng)所有節(jié)點為存儲體進行RAID5數(shù)據(jù)處理,將得到的各段數(shù)據(jù)分送各個節(jié)點。這樣在節(jié)點之間就形成了第一次RAID5數(shù)據(jù)保護。到達各個節(jié)點的數(shù)據(jù),在其內(nèi)部RAID5控制卡的作用下,再經(jīng)過一次RAID5處理,最終到達節(jié)點內(nèi)部的陣列中的硬盤。數(shù)據(jù)在這個系統(tǒng)中得到了二次RAID5方式的數(shù)據(jù)保護,這也是這種系統(tǒng)稱為RAID平方的原因。如果要從某個節(jié)點把數(shù)據(jù)從系統(tǒng)中讀出,則所經(jīng)歷的過程與寫入過程是相反的,每個節(jié)點要從內(nèi)部的陣列取出數(shù)據(jù),這由節(jié)點內(nèi)部的RAID5控制卡負責,再將各個節(jié)點取出的數(shù)據(jù)送往負責對外服務的那個具體節(jié)點,并由這個節(jié)點自身的處理系統(tǒng)負責將有效數(shù)據(jù)最終交給某個應用。由RAID5的故障承受能力可以知道,每個節(jié)點允許內(nèi)部的陣列有一塊硬盤失效,整個系統(tǒng)允許出現(xiàn)一個節(jié)點的存儲失效。在這樣的情況下,通過數(shù)據(jù)恢復機制,系統(tǒng)的正常數(shù)據(jù)讀寫不會受到影響,采取適當?shù)拇胧┛梢曰謴腿笔У挠脖P數(shù)據(jù)和節(jié)點數(shù)據(jù)。與主備存儲結構相比,系統(tǒng)中不再存在相同文件的拷貝,每個文件只有一份。這樣RAID平方存儲方式可以達到很高的存儲利用率。例如,四個節(jié)點,每節(jié)點八塊硬盤的RAID平方存儲系統(tǒng)的存儲利用率為3/4×7/8=65.625%。這種結構中,單就一個節(jié)點存儲的數(shù)據(jù)來說是沒有意義的,是不完整的數(shù)據(jù),必須要整個系統(tǒng)同步工作才能得到有效的數(shù)據(jù)。
基于RAID平方存儲結構的硬盤播出視頻服務器的I/O基本配置方式為:編碼板和解碼板分散安裝在各個節(jié)點上,一個頻道的主備二塊解碼板一般不安裝在同一個節(jié)點上,這樣可以避免因為一個節(jié)點出現(xiàn)故障而導致某個頻道的播出事故。圖6為一個三節(jié)點的RAID平方存儲結構的視頻服務器的I/O配置示例。圖中ch1、ch2、ch3分別表示頻道1、2、3。
這種方式下,單就一個節(jié)點的數(shù)據(jù)來說是沒有意義的,是不完整的數(shù)據(jù),必須整個系統(tǒng)同步工作才能得到有效的數(shù)據(jù)。由于RAID5對于數(shù)據(jù)的保護,系統(tǒng)只允許一個節(jié)點失效,這種情況下該節(jié)點所丟失的數(shù)據(jù)可由其他存在的節(jié)點的數(shù)據(jù)計算得到。如果整個系統(tǒng)出現(xiàn)第二個失效節(jié)點,丟失數(shù)據(jù)將無法得到,則這種結構將因為沒有足夠的有效數(shù)據(jù)而崩潰。
RAID平方存儲結構的視頻服務器具備一些突出的優(yōu)點:(1)高存儲利用率。RAID平方結構存儲利用率比較高,實現(xiàn)了無備份存儲,可以通過較小的硬盤或者較小的空間占用來實現(xiàn)相同于其他播出服務器的素材存儲時間。這樣陣列內(nèi)部的硬盤的故障恢復和整個節(jié)點的存儲的恢復都將可以較快地完成,從而減少了服務器處于危險模式的時間,使服務器的故障概率得以降低。(2)帶寬壓力平衡。由于結構內(nèi)部是點對點互連,所以系統(tǒng)工作的時候,帶寬壓力平均到各個節(jié)點之間的鏈路上,從而避免了帶寬壓力的集中,帶寬均衡可以使服務器的故障率得以降低。(3)受存儲故障牽連的I/O板卡減少。I/O板卡的分散使得在某個節(jié)點完全由于故障停止的情況下,受到影響的I/O板卡只是總量的1/N(N為節(jié)點數(shù)),從而進一步降低了受到故障影響的I/O板卡比例。如果采用合理的控制方式,在一個節(jié)點僅僅發(fā)生存儲陣列故障的情況下,實現(xiàn)該節(jié)點編解碼板繼續(xù)工作是完全可能的。(4)系統(tǒng)升級成本低。這種方式的構建的服務器,可以通過增加節(jié)點的方式實現(xiàn)服務器的升級——增加存儲、增加負載頻道的數(shù)量。從而擺脫了以往升級時必須購買一套主備存儲設備的弊端。
這種結構的視頻服務器目前只有SeaChange公司的BMC系列,該項技術尚處于專利保護期內(nèi)。這種服務器對于多頻道播出系統(tǒng)有不錯的性價比,而對于三個以下頻道的播出則顯得有些昂貴。筆者認為,這種服務器是多頻道播出的首選,目前該系列產(chǎn)品已經(jīng)服務于國內(nèi)許多多頻道播出的電視臺。
5 結 論
通過以上幾點比較可以看到,存儲子系統(tǒng)結構的不同和存儲技術的差異,對于存儲容量、容錯能力、存儲系統(tǒng)的升級性、負載能力以及性價比有著極其重要的影響。目前市場上基于各種存儲結構的硬盤播出視頻服務器都可以找到,這就需要正準備進行播出系統(tǒng)數(shù)字化改造的電視臺,根據(jù)自己的實際情況,選擇適合本臺的硬盤播出視頻服務器。
參考文獻
1 張琦.數(shù)字電視中心技術.北京:北京廣播學院出版社,2000
2 杜百川.數(shù)字電視.北京:中國電子學會廣播電視技術分會,1998
3 史品智.網(wǎng)絡多頻道硬盤自動播控系統(tǒng)與數(shù)字中心存儲.合肥:安徽省廣播電視局,2003