視頻服務(wù)器的存儲(chǔ)結(jié)構(gòu)
大的流媒體服務(wù)系統(tǒng)應(yīng)具備1,000~10,000小時(shí)的節(jié)目存儲(chǔ)量,某些應(yīng)用,如nCUBE公司最近推出個(gè)人錄像機(jī)(PVR)服務(wù),則要求服務(wù)器能達(dá)到100,000小時(shí)存儲(chǔ)能力,若系統(tǒng)容量為100,000小時(shí),不考慮差錯(cuò)控制產(chǎn)生的存儲(chǔ)開(kāi)銷(xiāo),采用MPEG-2方式以3M流存儲(chǔ),則凈存儲(chǔ)數(shù)據(jù)為140TB ,這是相當(dāng)大的數(shù)據(jù)量,截止到2001年6月,還沒(méi)有一家數(shù)據(jù)存儲(chǔ)廠(chǎng)商能解決如此海量的數(shù)據(jù)存儲(chǔ)問(wèn)題。這也說(shuō)明了超大規(guī)模流媒體應(yīng)用也將帶動(dòng)數(shù)據(jù)存儲(chǔ)技術(shù)向前迅猛發(fā)展。
對(duì)于數(shù)據(jù)存儲(chǔ)問(wèn)題的解決,有兩種可選的方式:分布存儲(chǔ)方式和集中存儲(chǔ)方式,以下分別介紹。
數(shù)據(jù)分布式存儲(chǔ)方式
流媒體數(shù)據(jù)分布式存儲(chǔ)是采用磁盤(pán)陣列在多個(gè)節(jié)點(diǎn)間分布的方式來(lái)存儲(chǔ)媒體數(shù)據(jù),如圖7所示,由于節(jié)點(diǎn)之間可以通過(guò)互連I/O來(lái)進(jìn)行相互通信,因此,這些磁盤(pán)陣列中存儲(chǔ)的數(shù)據(jù)從物理上來(lái)看雖然掛接在某個(gè)特定的節(jié)點(diǎn),但是對(duì)所有的節(jié)點(diǎn)來(lái)說(shuō),這些數(shù)據(jù)都是可以訪(fǎng)問(wèn)的,也就是說(shuō),數(shù)據(jù)是可以完全共享的。在邏輯上,系統(tǒng)通過(guò)數(shù)據(jù)管理屏蔽層的實(shí)現(xiàn),整個(gè)系統(tǒng)的所有媒體數(shù)據(jù)存儲(chǔ)設(shè)備就相當(dāng)于一個(gè)巨大的存儲(chǔ)池,這就是單一存儲(chǔ)映像(Single Storage Image)的技術(shù)。
圖1.7:分布式數(shù)據(jù)存儲(chǔ)模型
可以看到,圖1.7給出的視頻服務(wù)器就是采用的這種方式,這種方式的視頻服務(wù)器由于采用了緊耦合節(jié)點(diǎn)互連方式,內(nèi)部高速互聯(lián)網(wǎng)絡(luò)具有很高的帶寬,可以實(shí)現(xiàn)對(duì)遠(yuǎn)程節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行直接存取和訪(fǎng)問(wèn),所有的數(shù)據(jù)對(duì)所有的節(jié)點(diǎn)來(lái)說(shuō)都是可以訪(fǎng)問(wèn)的,因此,可以實(shí)現(xiàn)所有的節(jié)點(diǎn)可以“同時(shí)”訪(fǎng)問(wèn)同一數(shù)據(jù)內(nèi)容。
集中式數(shù)據(jù)存儲(chǔ)方式
流媒體數(shù)據(jù)集中存儲(chǔ)是將現(xiàn)有的SAN或NAS系統(tǒng)作為視頻服務(wù)器的存儲(chǔ)部分,如圖1.8所示的系統(tǒng)采用SAN作為存儲(chǔ)方案,和圖1.7不一樣,每個(gè)節(jié)點(diǎn)可以通過(guò)FC交換機(jī)直接訪(fǎng)問(wèn)所有的數(shù)據(jù)而不需要經(jīng)過(guò)其它節(jié)點(diǎn),因此,所有的數(shù)據(jù)對(duì)所有的節(jié)點(diǎn)來(lái)說(shuō)已經(jīng)是共享的了,數(shù)據(jù)的讀取可以不通過(guò)節(jié)點(diǎn)之間的內(nèi)部高速互聯(lián)網(wǎng)絡(luò),但是對(duì)所有的節(jié)點(diǎn)來(lái)說(shuō),這種數(shù)據(jù)共享必須是公平的,為了達(dá)到這一目的,必須采用一種均衡機(jī)制(如鎖機(jī)制、分時(shí)方式等)來(lái)協(xié)調(diào)節(jié)點(diǎn)對(duì)存儲(chǔ)設(shè)備的訪(fǎng)問(wèn)。這種方式的好處就是可以將節(jié)點(diǎn)從數(shù)據(jù)存儲(chǔ)管理的負(fù)擔(dān)中解脫出來(lái),實(shí)現(xiàn)數(shù)據(jù)處理和數(shù)據(jù)存儲(chǔ)的分離,同時(shí)對(duì)節(jié)點(diǎn)間的內(nèi)部通信帶寬可以不需要占用。
圖1.8:集中式存儲(chǔ)模型
目前基于這種結(jié)構(gòu)的視頻服務(wù)器也有相應(yīng)的產(chǎn)品,或者提供了對(duì)這種存儲(chǔ)方式的支持,從網(wǎng)絡(luò)吞吐型應(yīng)用的特性上說(shuō),采用這種方式的視頻服務(wù)器體系結(jié)構(gòu)更加合理,這種結(jié)構(gòu)的好處就是系統(tǒng)可以在線(xiàn)升級(jí)和加入新的存儲(chǔ)設(shè)備。但由于運(yùn)營(yíng)級(jí)視頻服務(wù)是網(wǎng)絡(luò)吞吐型應(yīng)用,對(duì)帶寬的要求很高,因此要求存儲(chǔ)系統(tǒng)有很高的吞吐性能(100GB/s),而目前單個(gè)大型存儲(chǔ)系統(tǒng)的帶寬標(biāo)稱(chēng)值一般為1.6GB,3.2GB(16或32個(gè)FC通道),這對(duì)大型運(yùn)營(yíng)級(jí)視頻服務(wù)器來(lái)說(shuō)遠(yuǎn)遠(yuǎn)不夠,如果非要這樣做,還必須增加FC交換機(jī),并掛接多個(gè)分布式的RAID存儲(chǔ)子系統(tǒng),但這樣問(wèn)題又暴露出來(lái)了,數(shù)據(jù)又出現(xiàn)了共享問(wèn)題。最要命的是,由于FC設(shè)備的價(jià)格原因,這樣做代價(jià)很高。因此,目前少有大型視頻服務(wù)器采用這種存儲(chǔ)結(jié)構(gòu)。
存儲(chǔ)還可以采用NAS方式,由于NAS技術(shù)用于視頻應(yīng)用還不夠成熟,目前還沒(méi)有視頻服務(wù)器采用,這里就不再介紹
數(shù)據(jù)存儲(chǔ)帶寬問(wèn)題
對(duì)于視頻服務(wù)器來(lái)說(shuō),數(shù)據(jù)存儲(chǔ)得帶寬是一個(gè)很重要的指標(biāo),由于目前節(jié)點(diǎn)內(nèi)部的內(nèi)存和互連I/O帶寬已經(jīng)不再是瓶頸,目前的技術(shù)均可以達(dá)到1~2GB/s,而目前計(jì)算機(jī)的網(wǎng)絡(luò)I/O和存儲(chǔ)I/O接口的帶寬一般都在1Gbps以?xún)?nèi)。因此視頻服務(wù)器的吞吐性能主要取決于存儲(chǔ)I/O和網(wǎng)絡(luò)接口速率,集中式存儲(chǔ)和分布式存儲(chǔ)有著對(duì)數(shù)據(jù)的不同的訪(fǎng)問(wèn)方式:
對(duì)于分布式存儲(chǔ)訪(fǎng)問(wèn),其系統(tǒng)內(nèi)數(shù)據(jù)的處理路徑如下:
讀取數(shù)據(jù)路徑:節(jié)點(diǎn)(請(qǐng)求)->中轉(zhuǎn)節(jié)點(diǎn)(路由)->存儲(chǔ)設(shè)備 #p#page_title#e#
輸出數(shù)據(jù)路徑:存儲(chǔ)設(shè)備->中轉(zhuǎn)節(jié)點(diǎn)(路由)->節(jié)點(diǎn)(處理)->網(wǎng)絡(luò)接口(輸出)
對(duì)于集中式存儲(chǔ)訪(fǎng)問(wèn),其系統(tǒng)內(nèi)數(shù)據(jù)的處理路徑如下:
讀取數(shù)據(jù)路徑:節(jié)點(diǎn)(請(qǐng)求)->FC交換->存儲(chǔ)設(shè)備
輸出數(shù)據(jù)路徑:存儲(chǔ)設(shè)備->FC交換->節(jié)點(diǎn)(處理)->網(wǎng)絡(luò)接口(輸出)
從數(shù)據(jù)的搬移路徑可以看出,無(wú)論是分布式存儲(chǔ)還是集中是存儲(chǔ),必須保證存儲(chǔ)I/O的速度遠(yuǎn)遠(yuǎn)大于網(wǎng)絡(luò)接口I/O的速度,即消除存儲(chǔ)瓶頸,才能使網(wǎng)絡(luò)接口以全速向外吐出數(shù)據(jù)。從經(jīng)驗(yàn)來(lái)看,存儲(chǔ)I/O速度的標(biāo)稱(chēng)值必須配置成網(wǎng)絡(luò)I/O接口速度的3倍以上。如配置2塊100M網(wǎng)卡,則應(yīng)該配置一個(gè)80MB/s的U2SCSI或100MB/s的FC存儲(chǔ)接口。如nCUBE公司的視頻服務(wù)器n4每個(gè)節(jié)點(diǎn)的輸出能力為500Mbps,對(duì)應(yīng)的每節(jié)點(diǎn)存儲(chǔ)I/O配置了4條80MB/s的U2SCSI總線(xiàn)。
媒體數(shù)據(jù)存儲(chǔ)技術(shù)
媒體數(shù)據(jù)的存儲(chǔ)主要用到了數(shù)據(jù)分條(Striping)和校驗(yàn)(parity)技術(shù)。數(shù)據(jù)校驗(yàn)和分條是實(shí)現(xiàn)各種RAID技術(shù)的基礎(chǔ),其基本原理可簡(jiǎn)單描述如下:若采用n個(gè)stripe存儲(chǔ)數(shù)據(jù),則存儲(chǔ)方法為,每存儲(chǔ)n-1 個(gè)stripe,就生成一個(gè)stripe存放前n-1個(gè)stripe的校驗(yàn)(parity)數(shù)據(jù),如此循環(huán)往復(fù),如圖1.9:
圖 1.9:數(shù)據(jù)分條方式
計(jì)算校驗(yàn)(parity)的算法如下:
parity = stripe1⊕stripe2⊕stripe3⊕... ⊕stripe(n-1)
其中“⊕”是邏輯異或(XOR)運(yùn)算、或稱(chēng)為模2加運(yùn)算
若發(fā)生數(shù)據(jù)差錯(cuò),如stripe3發(fā)生錯(cuò)誤或無(wú)法讀取,則用同樣的算法來(lái)恢復(fù):
stripe3 = stripe1⊕stripe2⊕stripe4⊕... ⊕stripe(n-1)⊕parity
對(duì)于校驗(yàn)除了XOR操作之外,還有其它的新技術(shù),這里不再介紹。
stripe技術(shù)是數(shù)據(jù)分布式存儲(chǔ)技術(shù)的基礎(chǔ),可以采用硬件方式,也可以采用軟件方式實(shí)現(xiàn),將一個(gè)大的文件均勻分條以后,就可以將其均勻的存放到到所有的存儲(chǔ)設(shè)備中。