專利名稱:并行組播網(wǎng)絡(luò)文件系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種并行組播網(wǎng)絡(luò)文件系統(tǒng),用于改進(jìn)網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)的性能。該技術(shù)利用網(wǎng)絡(luò)文件系統(tǒng)(Nre)的通信協(xié)議和并行組播技術(shù)形成數(shù)據(jù)文件的批量分發(fā)和儲(chǔ)存機(jī)制,在批量數(shù)據(jù)存儲(chǔ)處理時(shí),可以改善網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)的性能,如視頻點(diǎn)播(VoD),網(wǎng)絡(luò)電視, 視頻會(huì)議和視頻監(jiān)控系統(tǒng)等。
背景技術(shù):
多媒體應(yīng)用常需要跨越不同的平臺(tái)和文件系統(tǒng)并可以快速、并發(fā)、安全地訪問(wèn)視頻文件,通常NFS分布式文件系統(tǒng)被用于實(shí)現(xiàn)該功能,但其性能只是導(dǎo)出存儲(chǔ)系統(tǒng)的文件系統(tǒng)性能的一部分,而且目前的NFS實(shí)現(xiàn)方案中,由于NFS服務(wù)器有限的網(wǎng)絡(luò)、CPU、內(nèi)存、磁盤I/O資源等多種因素的限制,NFS服務(wù)器所能提供的帶寬很有限。近年來(lái),隨著便宜而且易于擴(kuò)展的視頻分發(fā)服務(wù)器集群的廣泛采用,帶寬問(wèn)題已變得越來(lái)越嚴(yán)重,這種集群對(duì)總帶寬需求的增長(zhǎng)速度遠(yuǎn)遠(yuǎn)超過(guò)了服務(wù)器集群可提供的帶寬,特別是在VoD應(yīng)用中,經(jīng)常是多個(gè)用戶幾乎在同一時(shí)間請(qǐng)求訪問(wèn)相同的內(nèi)容。另外,NFS當(dāng)前的實(shí)現(xiàn)方案也不能很好的應(yīng)用于多媒體流服務(wù),因?yàn)樗鼈儾惶峁┤魏斡斜WC的時(shí)間延遲,因而難于提供令人滿意的用戶體驗(yàn)。NFS第4版相較于NFS的早期版本有多項(xiàng)改進(jìn),特別是提供了集成的安全性和鎖定框架以及遷移和復(fù)制功能,但是,單服務(wù)器性能上的瓶頸仍然存在。將文件集合分布在多個(gè) NFS服務(wù)器上有助于繞開這個(gè)局限,但會(huì)增加系統(tǒng)管理成本,而且沒(méi)有解決多個(gè)客戶端同時(shí)訪問(wèn)同一個(gè)文件或目錄的可擴(kuò)展性問(wèn)題,而后者是當(dāng)今高性能應(yīng)用的關(guān)鍵要求。近年來(lái),將分布的NFS服務(wù)器聚集到一個(gè)單一的文件系統(tǒng)影像的技術(shù)取得了一些進(jìn)展,但這些系統(tǒng)無(wú)法輸出一些常用的第三方文件系統(tǒng)。并行網(wǎng)絡(luò)文件系統(tǒng)(pNFQ通過(guò)擴(kuò)展NFS第4版的次要版本(minor version),試圖提供并行的文件服務(wù)方案。但它仍然沒(méi)有解決一些多媒體應(yīng)用中(如視頻點(diǎn)播)多個(gè)用戶在同一時(shí)間請(qǐng)求訪問(wèn)相同內(nèi)容等問(wèn)題。
發(fā)明內(nèi)容
針對(duì)當(dāng)前NFS的這些問(wèn)題,本發(fā)明公開了一種以網(wǎng)絡(luò)組播為基礎(chǔ)的并行組播網(wǎng)絡(luò)文件系統(tǒng)(parallel multicasting network file system,以下簡(jiǎn)稱 pmNFS),通過(guò)在當(dāng)前現(xiàn)有的網(wǎng)絡(luò)文件系統(tǒng)基礎(chǔ)上,引入并行組播技術(shù),來(lái)提高多媒體內(nèi)容的分發(fā)性能。本發(fā)明的任務(wù)是這樣來(lái)完成的,一種并行組播網(wǎng)絡(luò)文件系統(tǒng),其特征在于以一個(gè)標(biāo)準(zhǔn)網(wǎng)絡(luò)文件系統(tǒng)為基礎(chǔ),一個(gè)并行擴(kuò)展部分用于消除標(biāo)準(zhǔn)網(wǎng)絡(luò)文件系統(tǒng)的性能瓶頸,一個(gè)組播擴(kuò)展部分用于消除存儲(chǔ)磁盤I/O性能瓶頸;對(duì)控制數(shù)據(jù)和文件數(shù)據(jù)使用分離的傳輸通道以允許數(shù)據(jù)由多個(gè)客戶端并行地傳輸?shù)蕉鄠€(gè)服務(wù)器端;利用組播來(lái)合并多個(gè)服務(wù)的流媒體數(shù)據(jù)流,以整合和減少I/O調(diào)用,從而消除存儲(chǔ)磁盤I/O性能瓶頸;使用前向糾錯(cuò)機(jī)制用來(lái)提高組播的可靠性;校驗(yàn)值被計(jì)算后寫入到磁盤存儲(chǔ),實(shí)現(xiàn)文件存儲(chǔ)和傳輸誤差校正的集成;利用緩沖區(qū)管理和磁盤I/O調(diào)度來(lái)提供順序?qū)懭牒徒M播的內(nèi)存管理。在本發(fā)明的一個(gè)具體的實(shí)施例中,所述的并行組播網(wǎng)絡(luò)文件系統(tǒng)還包括一個(gè)媒體存儲(chǔ)子系統(tǒng)和一個(gè)媒體分發(fā)子系統(tǒng);所述的媒體存儲(chǔ)子系統(tǒng)包括一個(gè)導(dǎo)出本地文件系統(tǒng), 它專為批量數(shù)據(jù)存儲(chǔ)和分發(fā)應(yīng)用而優(yōu)化,一個(gè)NFS第4版服務(wù)器,但通過(guò)在并行和組播的擴(kuò)展以及相應(yīng)的客戶端一道來(lái)執(zhí)行控制和文件管理操作以實(shí)現(xiàn)數(shù)據(jù)批量寫入和組播分發(fā),一個(gè)存儲(chǔ)和分發(fā)管理器來(lái)管理數(shù)據(jù)批量寫入和組播分發(fā),以及一系列數(shù)據(jù)存儲(chǔ)硬盤用來(lái)存儲(chǔ)用戶數(shù)據(jù);所述的媒體分發(fā)系統(tǒng),包括一個(gè)NFS第4版客戶端,但通過(guò)在并行和組播的擴(kuò)展和相應(yīng)的服務(wù)器一道來(lái)執(zhí)行控制和文件管理操作以實(shí)現(xiàn)數(shù)據(jù)批量寫入和組播分發(fā),一個(gè)專為存儲(chǔ)定制的驅(qū)動(dòng)程序來(lái)支持?jǐn)?shù)據(jù)批量寫入和組播方式來(lái)實(shí)現(xiàn)可擴(kuò)展的存儲(chǔ)I/O吞吐量; 一個(gè)寫入和分發(fā)服務(wù)器用于整合批量數(shù)據(jù)的寫入或分發(fā)。在本發(fā)明的另一個(gè)具體的實(shí)施例中,對(duì)所述的控制數(shù)據(jù)的傳輸通道使用TCP協(xié)議,對(duì)文件數(shù)據(jù)的傳輸通道使用UDP協(xié)議。在本發(fā)明的又一個(gè)具體的實(shí)施例中,所述的導(dǎo)出本地文件系統(tǒng)提供一個(gè)文件系統(tǒng)接口,支持但不限于如下操作打開/關(guān)閉(Open/Close),刪除(Delete)、統(tǒng)計(jì)(Mat)、讀/ 寫 / 找(Read/Write/Seek)、打開會(huì)話 / 關(guān)閉會(huì)話(Oper^ession/Closekssion)、播放 / 錄音 / 定速 / 暫停(Play/Record/^etSpeed/Pause)、同步(Sync)。在本發(fā)明的還有一個(gè)具體的實(shí)施例中,所述的存儲(chǔ)和分發(fā)管理器具有一個(gè)傳輸誤差校正功能塊,包括將每個(gè)播放文件分為多個(gè)具有固定數(shù)據(jù)包數(shù)的組播組;每個(gè)小組都有固定的數(shù)據(jù)包數(shù)和編碼前向糾錯(cuò)數(shù)據(jù)包數(shù);每個(gè)數(shù)據(jù)包由組索引及包索引來(lái)識(shí)別;前向糾錯(cuò)校驗(yàn)值被計(jì)算后寫入到磁盤存儲(chǔ),編碼后的數(shù)據(jù)塊和文件數(shù)據(jù)一同存儲(chǔ);按文件發(fā)送的順序存儲(chǔ)編碼后的數(shù)據(jù)塊,發(fā)送時(shí)循環(huán)遍歷相關(guān)文件并發(fā)送相應(yīng)的數(shù)據(jù)塊。本發(fā)明由于采用上述技術(shù)方案后,具有的效果通過(guò)對(duì)控制數(shù)據(jù)和文件數(shù)據(jù)使用分離的傳輸通道,允許數(shù)據(jù)由多個(gè)客戶端并行地傳輸?shù)蕉鄠€(gè)服務(wù)器端,通過(guò)將1/0分布于跨越客戶端和存儲(chǔ)設(shè)備之間的存儲(chǔ)網(wǎng)絡(luò)帶寬,消除了單臺(tái)服務(wù)器的瓶頸。在并發(fā)訪問(wèn)相同文件時(shí),組播(multicast)技術(shù)被用來(lái)合并多個(gè)服務(wù)的數(shù)據(jù)流以增強(qiáng)文件分發(fā)性能,對(duì)流媒體應(yīng)用,文件發(fā)布的存儲(chǔ)1/0性能瓶頸被有效的去除。
圖1為本發(fā)明的并行組播網(wǎng)絡(luò)文件系統(tǒng)架構(gòu)圖。圖2為本發(fā)明的數(shù)據(jù)傳輸過(guò)程中使用前向糾錯(cuò)機(jī)制的示意圖。
具體實(shí)施例方式下面結(jié)合圖1、圖2和案例就軟件系統(tǒng)構(gòu)成和實(shí)現(xiàn)方法詳細(xì)說(shuō)明。構(gòu)架并行組播網(wǎng)絡(luò)文件系統(tǒng)(pmNFS)總體結(jié)構(gòu)如附圖1所示。特別是, 標(biāo)準(zhǔn)網(wǎng)絡(luò)文件系統(tǒng)(如當(dāng)前的NFS第4版),用于文件1/0。·并行NFS擴(kuò)展,用于消除NFS的性能瓶頸。 組播NFS擴(kuò)展,用于整合和減少1/0調(diào)用,消除存儲(chǔ)磁盤1/0性能瓶頸。 對(duì)控制數(shù)據(jù)和文件數(shù)據(jù)示意分離的傳輸通道。
控制數(shù)據(jù)傳輸通道使用TCP協(xié)議,文件數(shù)據(jù)傳輸通道使用UDP協(xié)議。 在數(shù)據(jù)傳輸中使用前向糾錯(cuò)機(jī)制(FEC)來(lái)提高組播的可靠性。播放頻道管理 多個(gè)播放頻道 每個(gè)頻道的播放帶寬可能會(huì)有所不同 每個(gè)播放頻道可以支持一個(gè)或多個(gè)視頻 用戶可以單獨(dú)訂閱每個(gè)播放頻道組播組管理·每個(gè)播放文件分為多個(gè)具有固定數(shù)據(jù)包數(shù)的組播組 每個(gè)小組都有固定的數(shù)據(jù)包數(shù)和FEC數(shù)據(jù)包數(shù) 每個(gè)數(shù)據(jù)包由組基指數(shù)(group index)及包基指數(shù)(packet index)來(lái)識(shí)別。播放會(huì)話管理 通過(guò)NFS的組播擴(kuò)展(pmNFS)提供控制機(jī)制。眷一旦收到文件的讀請(qǐng)求,每個(gè)播放會(huì)話的設(shè)置(包括會(huì)話和文件的元信息)將發(fā)送到NFS客戶端。 會(huì)話信息還可以由播放管理器通過(guò)會(huì)話公告協(xié)議(SAP)進(jìn)行宣布。 會(huì)議和文件信息包括如下屬性〇組播地址和端口號(hào)〇文件元數(shù)據(jù)(文件名,文件長(zhǎng)度,文件在存儲(chǔ)系統(tǒng)等布局)〇視頻特性(壓縮設(shè)置等)文件組播 組播操作如下〇發(fā)件者連續(xù)周期性地發(fā)送多組文件。接受者訂閱組播,獲得必要的文件數(shù)據(jù)塊來(lái)構(gòu)建文件,然后退出組播。〇接受者不斷地調(diào)整到一個(gè)組播地址。隨著時(shí)間的推移,發(fā)件者推送接受者感興趣的不同文件組,接收者丟棄任何不需要的文件。 所有頻道同時(shí)(同步)播放 對(duì)每個(gè)播放會(huì)話,每個(gè)頻道按順序播出文件 每個(gè)頻道周期性的開始播出會(huì)話集成的文件存儲(chǔ)和傳輸誤差校正文件數(shù)據(jù)的傳輸過(guò)程如附圖2所示。校驗(yàn)值被計(jì)算后寫入到磁盤存儲(chǔ)。如果預(yù)先計(jì)算和寫入這個(gè)文件的時(shí)間是可以接受的,編碼后的數(shù)據(jù)塊可以和文件數(shù)據(jù)一同存儲(chǔ)。 相對(duì)于傳統(tǒng)的從RAID類型的系統(tǒng)中讀取數(shù)據(jù)時(shí),其中的奇偶校驗(yàn)信息只有在磁盤發(fā)生錯(cuò)誤時(shí)才讀取,我們也會(huì)閱讀冗余錯(cuò)誤恢復(fù)信息并發(fā)送。這將節(jié)省重復(fù)計(jì)算和磁盤訪問(wèn)時(shí)間 (磁盤訪問(wèn)是主要因素)。對(duì)于最高性能要求,可以預(yù)先計(jì)算所有數(shù)據(jù)塊,并按文件發(fā)送的順序存儲(chǔ)它們。發(fā)送時(shí)只需循環(huán)遍歷相關(guān)文件并發(fā)送相應(yīng)的數(shù)據(jù)塊。但是,如果n>>k, 將FEC塊保持在內(nèi)存或磁盤上則可能會(huì)比原始文件占用更多的空間。數(shù)據(jù)包標(biāo)頭數(shù)據(jù)包標(biāo)頭包含以下信息序列號(hào),文件標(biāo)識(shí)符,文件長(zhǎng)度,F(xiàn)EC組標(biāo)識(shí)符,F(xiàn)EC組索引,和(n,k)的編碼k值。每個(gè)文件發(fā)送時(shí)被賦予一個(gè)唯一的ID。因此,每個(gè)傳輸塊是由一組唯一的〈文件ID,F(xiàn)EC組ID,F(xiàn)EC組索引〉參數(shù)來(lái)標(biāo)示。具有指數(shù)0到k_l的數(shù)據(jù)包是原始文件塊,而具有指數(shù)k到n-1的數(shù)據(jù)包則是編碼塊。序列號(hào)隨每個(gè)數(shù)據(jù)包發(fā)送遞增。 文件的長(zhǎng)度則包含在標(biāo)頭中,接收器一旦收到首包并讀取標(biāo)頭信息后可以配留相應(yīng)的內(nèi)存結(jié)構(gòu)以便跟蹤數(shù)據(jù)包的接收。同樣,k值也包含在標(biāo)頭中,接收器便可獲知本組的大小(文件長(zhǎng)度除以k)。相對(duì)于包括文件的長(zhǎng)度和k值在每一個(gè)數(shù)據(jù)包中,我們也可以通過(guò)波段外的其它方式送出這些值。然而,將它們通過(guò)波段內(nèi)傳送,并將元信息嵌入到數(shù)據(jù)包尾部,我們可以將接收器調(diào)到一個(gè)給定的組播地址和端口便可以開始接受數(shù)據(jù)而不需要更多知識(shí)。這樣的實(shí)施假設(shè)所有的數(shù)據(jù)包具有固定的大小。此大小值不必包括在數(shù)據(jù)包標(biāo)頭-接收器只需檢測(cè)它接收到的第一個(gè)數(shù)據(jù)包大小。(n,k)編解碼器中的η值也不用傳輸, 因?yàn)榻邮掌鞑⒉恍枰?。pmNFS API 功能pmNFS提供但不限于以下這些API功能 打開 / 關(guān)閉(Open/Close) 刪除(Delete) 統(tǒng)計(jì)(Stat) 讀 / 寫 / 找(Read/Write/^eek) 打開會(huì)話 / 關(guān)閉會(huì)話(Oper^ession/Clos必ession) 播放 / 錄音 / 定速 / 暫停(Play/Record/ktSpeed/Pause) 同步(Sync)pmNFS非播放操作· MSA的客戶端發(fā)送一個(gè)文件信息請(qǐng)求到服務(wù)器· MSA服務(wù)器獲得不透明的文件系統(tǒng)文件布局圖· MSA服務(wù)器將文件布局圖傳送到客戶端· MSA的客戶端將其傳送到布局驅(qū)動(dòng)程序· MSA便可以直接通過(guò)數(shù)據(jù)路徑訪問(wèn)數(shù)據(jù)了。pmNFS播放操作· MSA的客戶端發(fā)送一個(gè)文件信息請(qǐng)求到服務(wù)器· MSA服務(wù)器將信息發(fā)送到文件系統(tǒng)和播放管理器。 如果所要求信息在播放名單中,則進(jìn)入下一步驟。否則,播放管理器將決定是否應(yīng)當(dāng)為其安排播放。如果是這樣,將其放在未來(lái)的播放隊(duì)列中,否則進(jìn)行正常的NFS操作?!?MSA服務(wù)器從文件系統(tǒng)中獲得文件組播信息,包括文件名,文件大小,文件校驗(yàn),組播頻道,和播放時(shí)間表等· MSA文件服務(wù)器將組播信息傳輸?shù)娇蛻舳恕?MSA的客戶端將其傳送到布局驅(qū)動(dòng)程序· MSA客戶端準(zhǔn)備接收播放文件。pmNFS文件播放管理 根據(jù)文件受歡迎程度,確定將其通過(guò)單播或組播的方式進(jìn)行傳送。最受歡迎的 N個(gè)文件可定為最優(yōu)先的組播文件。
根據(jù)下列因素,將文件動(dòng)態(tài)地分配到不同的頻道〇人氣〇大小〇流速度要求〇用戶信息 不同的頻道將被分配有不同的帶寬和播放周期。 人氣的測(cè)量是實(shí)時(shí)進(jìn)行的。播放管理器收集從分發(fā)服務(wù)器的訪問(wèn)請(qǐng)求的統(tǒng)計(jì)信息。分發(fā)服務(wù)器將請(qǐng)求統(tǒng)計(jì)信息發(fā)送到NFS服務(wù)器。流型媒體內(nèi)容寫入方法本發(fā)明中,我們通過(guò)遞增方式寫入不同來(lái)源的會(huì)話數(shù)據(jù)流。應(yīng)用的場(chǎng)景包括監(jiān)控系統(tǒng),視頻會(huì)議,以及醫(yī)療影像的數(shù)據(jù)紀(jì)錄。通常將多個(gè)數(shù)據(jù)流同時(shí)攝入到存儲(chǔ)系統(tǒng)中。目的是為了有效地實(shí)時(shí)將多媒體內(nèi)容寫入到存儲(chǔ)系統(tǒng)。多媒體數(shù)據(jù)流 會(huì)話(session)—個(gè)寫入會(huì)話包括多個(gè)流的并發(fā)寫入。 數(shù)據(jù)流塊(streaming chunks)—個(gè)多媒體文件是由一個(gè)或多個(gè)流塊,每塊包括固定播放時(shí)間的內(nèi)容。 數(shù)據(jù)塊(data blocks)本地文件系統(tǒng)(比如SELF)可以使用大數(shù)據(jù)塊。每個(gè)流塊存放在多個(gè)連續(xù)的物理塊。 元數(shù)據(jù)(Matadata)具有適當(dāng)?shù)慕Y(jié)構(gòu)通用于會(huì)話,數(shù)據(jù)流,和數(shù)據(jù)塊,包括 會(huì)話 ID 會(huì)話到流的映射(流ID)參流ID 數(shù)據(jù)流到數(shù)據(jù)流塊的映射眷數(shù)據(jù)流塊播放時(shí)間 數(shù)據(jù)流塊的ID 數(shù)據(jù)流塊的長(zhǎng)度 數(shù)據(jù)流塊的位置和范圍(首塊和塊的數(shù)量) 訪問(wèn)控制眷媒體特性寫入的內(nèi)存管理內(nèi)存包括固定和非固定存儲(chǔ)。固定存儲(chǔ)(pag印ool),由配置參數(shù)決定,用于存放緩存數(shù)據(jù),非固定存儲(chǔ)(malloc池)則被本地文件系統(tǒng)用于元數(shù)據(jù)和i節(jié)點(diǎn)(inode)的緩存。 緩存允許本地文件系統(tǒng)實(shí)施后寫(和預(yù)讀)機(jī)制。一旦應(yīng)用程序的緩沖區(qū)被復(fù)制寫入到固定存儲(chǔ)時(shí),從應(yīng)用的角度來(lái)看寫入請(qǐng)求便完成了。本地文件系統(tǒng)然后通過(guò)發(fā)出I/O指令到磁盤設(shè)備驅(qū)動(dòng)程序(后寫)來(lái)將新緩存中的臟數(shù)據(jù)塊刷寫到磁盤,調(diào)度完成寫入請(qǐng)求。在此應(yīng)用中,磁盤I/O調(diào)度器只是保證周期性的寫入。每次從每個(gè)數(shù)據(jù)流寫入一個(gè)數(shù)據(jù)流塊。 時(shí)間周期決定了每個(gè)寫入的數(shù)據(jù)流的塊大小。在讀取一個(gè)大文件時(shí),為了利用磁盤讀寫的并行性,本地文件系統(tǒng)預(yù)先讀取數(shù)據(jù)到其緩沖區(qū),必要時(shí)同時(shí)并行地發(fā)出I/O請(qǐng)求到盡可能多的磁盤來(lái)達(dá)到存儲(chǔ)交換器所允許的帶寬。同樣,不再訪問(wèn)的臟數(shù)據(jù)緩存區(qū)中的數(shù)據(jù),也可并行寫入磁盤。這種方法允許用磁盤子系統(tǒng)所支持的統(tǒng)合速率來(lái)讀取或?qū)懭霐?shù)據(jù)從/到單一文件。最好本地文件系統(tǒng)能識(shí)別順序,反順,以及各種形式的條帶訪問(wèn)模式。應(yīng)用場(chǎng)景方案1 監(jiān)控系統(tǒng)的數(shù)據(jù)存儲(chǔ)假設(shè) 案例一每個(gè)數(shù)據(jù)流存儲(chǔ)為一個(gè)獨(dú)立的文件。所支持的流的數(shù)量上取決于可用的寫入資源。以下是一個(gè)例子1. 100條流,每條流具有2Mb/s的數(shù)據(jù)速率;消耗2(ib/S的帶寬。2.如果以600秒長(zhǎng)度作為一個(gè)數(shù)據(jù)流塊,則塊大小=1. 2GB的或150MB。3.緩沖區(qū)大小>=600*2 = 120*100Mb = 120Gb = 15GB. ±夬越小則緩沖區(qū)越小。4.磁盤的I/O帶寬消耗=20/100*2 = 0. 4Gb/s的帶寬(包括鏡像寫入)。 案例二 交錯(cuò)式存儲(chǔ),即多個(gè)(N)的數(shù)據(jù)流存儲(chǔ)為一個(gè)文件。如果數(shù)據(jù)流塊的大小保持大致相同,緩沖區(qū)大小則可降低1/N。 如果沒(méi)有NFS的客戶端介入操作,視頻內(nèi)容可通過(guò)RTP寫入到存儲(chǔ)設(shè)備。 存儲(chǔ)設(shè)備怎樣了解有關(guān)會(huì)話信息則不在這個(gè)應(yīng)用程序考慮的范圍內(nèi)。操作 客戶端通過(guò)控制數(shù)據(jù)傳輸通道發(fā)送信息給服務(wù)器啟動(dòng)寫入會(huì)話。 服務(wù)器響應(yīng)并通過(guò)控制數(shù)據(jù)傳輸通道送回文件的元數(shù)據(jù)(文件布局信息等)。 客戶通過(guò)數(shù)據(jù)通道開始發(fā)送數(shù)據(jù)流到存儲(chǔ)設(shè)備。寫緩沖區(qū)分別攔截?cái)?shù)據(jù)流。 每600秒,每個(gè)寫緩沖區(qū)將被復(fù)制到固定存儲(chǔ)。 本地文件系統(tǒng)然后通過(guò)發(fā)出I/O指令到磁盤設(shè)備驅(qū)動(dòng)程序(后寫)來(lái)將新緩存中的臟數(shù)據(jù)塊刷寫到磁盤,調(diào)度完成寫入請(qǐng)求。 每個(gè)數(shù)據(jù)流塊包括600秒數(shù)據(jù)流的內(nèi)容。每個(gè)流塊是一個(gè)條帶,并寫入到磁盤上。它是作為一個(gè)連續(xù)的塊序列來(lái)寫入到磁盤的主體位置。隨后,存儲(chǔ)設(shè)備類似地將其寫入到輔助位置(鏡像)。 只有在主體位置寫入成功,那么該設(shè)備規(guī)劃下一個(gè)流塊的寫入。方案2 視頻會(huì)議的數(shù)據(jù)存儲(chǔ)假設(shè) 存儲(chǔ)設(shè)備是視頻組播節(jié)點(diǎn)的一部分。但它只是聽?!?一個(gè)會(huì)話內(nèi)容包括一個(gè)音頻流和多個(gè)視頻流。音頻流可以與每個(gè)視頻流交錯(cuò)。 如果沒(méi)有NFS的客戶端介入寫入操作,視頻內(nèi)容可通過(guò)RTP寫入到存儲(chǔ)設(shè)備。 案例一每個(gè)數(shù)據(jù)流存儲(chǔ)為一個(gè)獨(dú)立的文件。所支持的流的數(shù)量上取決于可用的寫入資源。1. 100條流,每條流具有2Mb/s的數(shù)據(jù)速率;消耗2(ib/S的帶寬。2.如果以600秒長(zhǎng)度作為一個(gè)數(shù)據(jù)流塊,則塊大小=1. 2GB的或150MB。3.緩沖區(qū)大小>=600*2 = 120*100Mb = 120Gb = 15GB. ±夬越小則緩沖區(qū)越小。4.磁盤的I/O帶寬消耗=20/100*2 = 0. 4Gb/s的帶寬(包括鏡像寫入)。〇案例二 交錯(cuò)式存儲(chǔ),即多個(gè)(N)數(shù)據(jù)流存儲(chǔ)為一個(gè)文件。如果數(shù)據(jù)流塊的大小保持大致相同,緩沖區(qū)大小則可降低1/N。操作 存儲(chǔ)設(shè)備獲得對(duì)視頻會(huì)議的會(huì)話信息。 服務(wù)器通過(guò)控制數(shù)據(jù)傳輸通道發(fā)送文件的元數(shù)據(jù)(文件布局信息等)。(客戶端如不需要可以丟棄) 客戶通過(guò)文件數(shù)據(jù)傳輸通道開始發(fā)送數(shù)據(jù)流到存儲(chǔ)設(shè)備。存儲(chǔ)設(shè)備將數(shù)據(jù)流按需要存放到緩沖區(qū)?!っ?00秒,每個(gè)寫緩沖區(qū)將被復(fù)制到固定存儲(chǔ)。 本地文件系統(tǒng)然后通過(guò)發(fā)出I/O指令到磁盤設(shè)備驅(qū)動(dòng)程序(后寫)來(lái)將新緩存中的臟數(shù)據(jù)塊刷寫到磁盤,調(diào)度完成寫入請(qǐng)求。 每個(gè)數(shù)據(jù)流塊包括600秒數(shù)據(jù)流的內(nèi)容。每個(gè)流塊是一個(gè)條帶,并寫入到磁盤上。它是作為一個(gè)連續(xù)的塊序列來(lái)寫入到磁盤的主體位置。隨后,存儲(chǔ)設(shè)備類似地將其寫入到輔助位置(鏡像)。 只有在主體位置寫入成功,那么該設(shè)備規(guī)劃下一個(gè)流塊的寫入。磁盤I/O調(diào)度的讀取過(guò)程假設(shè) 基于人氣或SLA服務(wù)類別,例如,〇高100個(gè)文件㈧;保證最少延遲(比如< 100秒)〇中100個(gè)文件,保證次少延遲(< 200秒)。50 (Bi)-50 (B2)輪換。〇低其它延遲要求(< IOOn秒),每一次服務(wù)多達(dá)50個(gè)文件(Cl到Cn)·由數(shù)據(jù)流管理器來(lái)決定哪一個(gè)文件使用組播或單播來(lái)傳送。操作 閱讀過(guò)程通過(guò)多輪周期不同的方式來(lái)完成。對(duì)于上面的例子中所述的情況第一輪A-B1-C1第二輪A-B2_C2第三輪A-B1_C3第三輪A-B2_C4第η輪A-B2_Cn第n+1 輪A-Bl-Cl 對(duì)每個(gè)硬盤,訪問(wèn)調(diào)度器將使用掃描方法來(lái)訪問(wèn)相應(yīng)的流塊的A-Bi-Cj (在每一輪訪問(wèn)每個(gè)數(shù)據(jù)流塊的順序應(yīng)重新安排)。 盡可能保持順序閱讀。訪問(wèn)調(diào)度器將決定每個(gè)硬盤上數(shù)據(jù)流塊讀取序列。 所有硬盤并行讀取。磁盤I/O調(diào)度的寫入過(guò)程 如果讀操作出現(xiàn)的話,寫操作比讀操作具有較低的優(yōu)先級(jí)。 同時(shí)有m條不同數(shù)據(jù)速率的數(shù)據(jù)流。 每個(gè)流分為固定時(shí)間內(nèi)容(比如600秒)的數(shù)據(jù)流塊。因此,數(shù)據(jù)流塊大小則是不固定的。每個(gè)數(shù)據(jù)流塊將使用一定數(shù)量連續(xù)的物理塊,例如,Dl和D2,...,和Dm,來(lái)寫入。
寫入數(shù)據(jù)塊Di的寫入任務(wù)將比最低優(yōu)先級(jí)的讀取任務(wù)(比如Ci)優(yōu)先級(jí)還低, 如果有的話,它會(huì)蔓延到每一輪。 調(diào)度器將與閱讀任務(wù)(如有)一起安排寫入任務(wù),包括以下兩個(gè)子任務(wù)〇每個(gè)數(shù)據(jù)流塊包括600秒數(shù)據(jù)流的內(nèi)容。每個(gè)流塊是一個(gè)條帶,并寫入到磁盤上。它是作為一個(gè)連續(xù)的塊序列來(lái)寫入到磁盤的主體位置。〇隨后,存儲(chǔ)設(shè)備類似地將其寫入到輔助位置(鏡像)。
權(quán)利要求
1.一種并行組播網(wǎng)絡(luò)文件系統(tǒng),其特征在于以一個(gè)標(biāo)準(zhǔn)網(wǎng)絡(luò)文件系統(tǒng)為基礎(chǔ),一個(gè)并行擴(kuò)展部分用于消除標(biāo)準(zhǔn)網(wǎng)絡(luò)文件系統(tǒng)的性能瓶頸,一個(gè)組播擴(kuò)展部分用于消除存儲(chǔ)磁盤I/O性能瓶頸;對(duì)控制數(shù)據(jù)和文件數(shù)據(jù)使用分離的傳輸通道以允許數(shù)據(jù)由多個(gè)客戶端并行地傳輸?shù)蕉鄠€(gè)服務(wù)器端;利用組播來(lái)合并多個(gè)服務(wù)的流媒體數(shù)據(jù)流,以整合和減少I/O 調(diào)用,從而消除存儲(chǔ)磁盤I/O性能瓶頸;使用前向糾錯(cuò)機(jī)制來(lái)提高組播的可靠性;校驗(yàn)值被計(jì)算后寫入到磁盤存儲(chǔ),實(shí)現(xiàn)文件存儲(chǔ)和傳輸誤差校正的集成;利用緩沖區(qū)管理和磁盤I/ 0調(diào)度來(lái)提供順序?qū)懭牒徒M播的內(nèi)存管理。
2.根據(jù)權(quán)利要求1所述的并行組播網(wǎng)絡(luò)文件系統(tǒng),其特征在于還包括一個(gè)媒體存儲(chǔ)子系統(tǒng)和一個(gè)媒體分發(fā)子系統(tǒng);所述的媒體存儲(chǔ)子系統(tǒng)包括一個(gè)導(dǎo)出本地文件系統(tǒng),它專為批量數(shù)據(jù)存儲(chǔ)和分發(fā)應(yīng)用而優(yōu)化,一個(gè)NFS第4版服務(wù)器,但通過(guò)在并行和組播的擴(kuò)展以及相應(yīng)的客戶端一道執(zhí)行控制和文件管理操作以實(shí)現(xiàn)數(shù)據(jù)批量寫入和組播分發(fā),一個(gè)存儲(chǔ)和分發(fā)管理器來(lái)管理數(shù)據(jù)批量寫入和組播分發(fā),以及一系列數(shù)據(jù)存儲(chǔ)硬盤用來(lái)存儲(chǔ)用戶數(shù)據(jù);所述的媒體分發(fā)系統(tǒng),包括一個(gè)NFS第4版客戶端,但通過(guò)在并行和組播的擴(kuò)展以及相應(yīng)的服務(wù)器一道來(lái)執(zhí)行控制和文件管理操作以實(shí)現(xiàn)數(shù)據(jù)批量寫入和組播分發(fā),一個(gè)專為存儲(chǔ)定制的驅(qū)動(dòng)程序來(lái)支持?jǐn)?shù)據(jù)批量寫入和組播方式來(lái)實(shí)現(xiàn)可擴(kuò)展的存儲(chǔ)I/O吞吐量;一個(gè)寫入和分發(fā)服務(wù)器用于整合批量數(shù)據(jù)的寫入或分發(fā)。
3.根據(jù)權(quán)利要求1所述的并行組播網(wǎng)絡(luò)文件系統(tǒng),其特征在于對(duì)控制數(shù)據(jù)的傳輸通道使用TCP協(xié)議,對(duì)文件數(shù)據(jù)的傳輸通道使用UDP協(xié)議。
4.根據(jù)權(quán)利要求2所述的并行組播網(wǎng)絡(luò)文件系統(tǒng),其特征在于所述的導(dǎo)出本地文件系統(tǒng)提供一個(gè)文件系統(tǒng)接口,支持但不限于如下操作打開/關(guān)閉、刪除、統(tǒng)計(jì)、讀/寫/找、 打開會(huì)話/關(guān)閉會(huì)話、播放/錄音/定速/暫停、同步。
5.根據(jù)權(quán)利要求2所述的并行組播網(wǎng)絡(luò)文件系統(tǒng),其特征在于所述的存儲(chǔ)和分發(fā)管理器具有一個(gè)傳輸誤差校正功能塊,包括將每個(gè)播放文件分為多個(gè)具有固定數(shù)據(jù)包數(shù)的組播組;每個(gè)小組都有固定的數(shù)據(jù)包數(shù)和編碼前向糾錯(cuò)數(shù)據(jù)包數(shù);每個(gè)數(shù)據(jù)包由組索引及包索引來(lái)識(shí)別;前向糾錯(cuò)校驗(yàn)值被計(jì)算后寫入到磁盤存儲(chǔ),編碼后的數(shù)據(jù)塊和文件數(shù)據(jù)一同存儲(chǔ);按文件發(fā)送的順序存儲(chǔ)編碼后的數(shù)據(jù)塊,發(fā)送時(shí)循環(huán)遍歷相關(guān)文件并發(fā)送相應(yīng)的數(shù)據(jù)塊。
全文摘要
一種并行組播網(wǎng)絡(luò)文件系統(tǒng),用于改進(jìn)網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)的性能。以一個(gè)標(biāo)準(zhǔn)網(wǎng)絡(luò)文件系統(tǒng)為基礎(chǔ),一個(gè)并行擴(kuò)展部分用于消除標(biāo)準(zhǔn)網(wǎng)絡(luò)文件系統(tǒng)的性能瓶頸,一個(gè)組播擴(kuò)展部分用于消除存儲(chǔ)磁盤I/O性能瓶頸;對(duì)控制數(shù)據(jù)和文件數(shù)據(jù)使用分離的傳輸通道以允許數(shù)據(jù)由多個(gè)客戶端并行地傳輸?shù)蕉鄠€(gè)服務(wù)器端;利用組播來(lái)合并多個(gè)服務(wù)的流媒體數(shù)據(jù)流,以整合和減少I/O調(diào)用,從而消除存儲(chǔ)磁盤I/O性能瓶頸;使用前向糾錯(cuò)機(jī)制來(lái)提高組播的可靠性;校驗(yàn)值被計(jì)算后寫入到磁盤存儲(chǔ),實(shí)現(xiàn)文件存儲(chǔ)和傳輸誤差校正的集成;利用緩沖區(qū)管理和磁盤I/O調(diào)度來(lái)提供順序?qū)懭牒徒M播的內(nèi)存管理。優(yōu)點(diǎn)通過(guò)在當(dāng)前現(xiàn)有的網(wǎng)絡(luò)文件系統(tǒng)基礎(chǔ)上,引入并行組播技術(shù),來(lái)提高多媒體內(nèi)容的分發(fā)性能。
文檔編號(hào)H04L12/18GK102158344SQ201110131000
公開日2011年8月17日 申請(qǐng)日期2011年5月20日 優(yōu)先權(quán)日2011年5月20日
發(fā)明者魯為民 申請(qǐng)人:蘇州安源匯信軟件有限公司