本發(fā)明涉及管理系統(tǒng),具體是一種分布式數(shù)字資源存儲處理與管理的方法及系統(tǒng)。
背景技術(shù):
隨著社會的發(fā)展,越來越多的信息被數(shù)據(jù)化,互聯(lián)網(wǎng)中的數(shù)據(jù)呈爆炸式增長,如何存儲和管理這些數(shù)據(jù)化的信息就成為人們關(guān)注的焦點。七、八十年代,這些數(shù)據(jù)都被存放在昂貴的中小型機中,由管理員定期維護(hù),但這樣開銷較大,又容易出錯。
近年來,隨著硬件技術(shù)的迅猛發(fā)展、寬帶網(wǎng)絡(luò)的逐漸成熟、開放源碼的廣泛興起、以及對分布式系統(tǒng)的深入研究,出現(xiàn)了分布式文件系統(tǒng)的概念,并以此來存儲和管理這些數(shù)據(jù);這些系統(tǒng)可以由多臺普通的pc服務(wù)器通過網(wǎng)絡(luò)的方式連接而成,在分布式系統(tǒng)的統(tǒng)一管理下運行,以支持高可靠、高性能、以及大并發(fā)流的應(yīng)用需求。
人們在日常辦公中產(chǎn)生了大量的圖片、照片、視頻等非結(jié)構(gòu)化的數(shù)據(jù),這類數(shù)據(jù)以對象的形式組織,對象之間沒有關(guān)聯(lián),這樣的數(shù)據(jù)一般稱為blob(binarylargeobject,二進(jìn)制大對象)數(shù)據(jù)。
數(shù)字資源處理系統(tǒng)可用于存儲和處理blob數(shù)據(jù),建立企業(yè)公共資源中心,實現(xiàn)各類數(shù)字資源的數(shù)據(jù)存儲、管理與處理。
分布式文件系統(tǒng)是新型的文件存儲方式,它將大量普通的pc服務(wù)器通過internet互聯(lián),對外作為一個整體提供存儲服務(wù)。典型的系統(tǒng)有facebookhaystack以及taobaofilesystem(tfs)。
傳統(tǒng)的數(shù)字資源處理系統(tǒng)的技術(shù)方案如下:
1)首選用戶將需要存儲的資源上傳至數(shù)據(jù)加工與處理服務(wù)器,數(shù)據(jù)加工與處理服務(wù)器對圖片、視頻、音頻、文檔等數(shù)據(jù)進(jìn)行處理,如轉(zhuǎn)碼、添加備注信息,添加索引等形成標(biāo)準(zhǔn)化數(shù)據(jù)。
2)最后將已經(jīng)處理的標(biāo)準(zhǔn)化數(shù)據(jù)存儲至分布式文件系統(tǒng)中。
上述的數(shù)字資源處理系統(tǒng)的缺點主要有:
1)將數(shù)字資源的處理集中到一個服務(wù)器上,對數(shù)據(jù)加工與處理服務(wù)器的性能要求比較高,容災(zāi)性也不好,數(shù)字加工與處理服務(wù)器宕機后,整個系統(tǒng)將不能提供服務(wù)。
2)一般數(shù)字資源處理系統(tǒng)中的存儲部分僅僅做資源存儲的工作,不能進(jìn)行數(shù)字資源的處理。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種分布式數(shù)字資源存儲處理與管理的方法及系統(tǒng),以解決上述背景技術(shù)中提出的問題。
為實現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
一種分布式數(shù)字資源存儲處理與管理的系統(tǒng),包括客戶端、文件調(diào)配中心和資源存儲與服務(wù)系統(tǒng);所述客戶端連接至文件調(diào)配中心,文件調(diào)配中心連接至存儲于資源存儲與服務(wù)系統(tǒng),資源存儲與服務(wù)系統(tǒng)負(fù)責(zé)資源存儲與處理;所述文件調(diào)配中心對資源存儲與服務(wù)系統(tǒng)、任務(wù)計劃、資源上載進(jìn)行調(diào)度,它負(fù)責(zé)整個系統(tǒng)的全局控制;同時文件調(diào)配中心內(nèi)的服務(wù)監(jiān)控日志模塊連接至資源存儲與服務(wù)系統(tǒng)內(nèi)的心跳服務(wù)模塊,文件調(diào)配中心持續(xù)的接收資源存儲與服務(wù)系統(tǒng)內(nèi)心跳服務(wù)模塊提供的數(shù)據(jù),實現(xiàn)對資源存儲與服務(wù)系統(tǒng)實時監(jiān)控;資源存儲與服務(wù)系統(tǒng)為分布式數(shù)字資源管理系統(tǒng)的存儲單元與任務(wù)執(zhí)行單元,實現(xiàn)數(shù)據(jù)的本地化存儲、資源鏡像更新、文件資源保護(hù)、文件轉(zhuǎn)碼服務(wù)、文件動態(tài)回收,同時,實時監(jiān)控本機狀態(tài),并周期性的推送至文件調(diào)配中心,完成對本機狀態(tài)的維護(hù);所述資源存儲與服務(wù)系統(tǒng)數(shù)量設(shè)置在一個以上。
一種分布式數(shù)字資源存儲處理與管理的方法,其主要步驟如下:
1)用戶在客戶端選擇多個資源存儲與服務(wù)系統(tǒng),請求寫操作;
2)文件調(diào)配中心接受操作請求并基于資源存儲與服務(wù)系統(tǒng)本身記錄的負(fù)載排行,獲取負(fù)載最低的資源存儲與服務(wù)系統(tǒng);
3)客戶端向步驟2獲取的負(fù)載最低的資源存儲與服務(wù)系統(tǒng)提交寫入數(shù)據(jù);
4)寫入成功后,提交更新申請到文件調(diào)配中心,文件調(diào)配中心寫入文件上傳信息;
5)文件調(diào)配中心基于用戶選擇形成鏡像更新的任務(wù)隊列;
6)資源存儲與服務(wù)系統(tǒng)基于文件更新隊列進(jìn)行文件鏡像更新;
7)更新完成后,將更新結(jié)果反饋至文件調(diào)配中心,文件調(diào)配中心做出更新記錄,鏡像更新完成。
作為本發(fā)明再進(jìn)一步的方案:所述獲取負(fù)載最低的資源存儲與服務(wù)系統(tǒng)的主要步驟如下:
1)選取代表服務(wù)器性能水平的指標(biāo),包括cpu平均使用率、物理內(nèi)存使用率、磁盤讀寫速率使用率和網(wǎng)絡(luò)帶寬使用率;
2)分別取資源存儲與服務(wù)系統(tǒng)中四個性能指標(biāo)的最大值;
3)將資源存儲與服務(wù)系統(tǒng)中,每個資源存儲與服務(wù)系統(tǒng)相應(yīng)的性能指標(biāo)除以性能指標(biāo)最大值,得到一個介于0到1之間的性能比值;
4)根據(jù)資源存儲與服務(wù)系統(tǒng)四個性能對服務(wù)器整體數(shù)據(jù)處理性能的影響程度,為每個資源存儲與服務(wù)系統(tǒng)性能比值賦予一個用戶進(jìn)行加權(quán)平均的系數(shù)q1、q2、q3、q4;
5)計算每個資源存儲與服務(wù)系統(tǒng)的節(jié)點物理負(fù)載;
6)計算每個資源存儲與服務(wù)系統(tǒng)權(quán)重值;
7)計算每個資源存儲與服務(wù)系統(tǒng)的節(jié)點業(yè)務(wù)負(fù)載;
8)根據(jù)每個資源存儲與服務(wù)系統(tǒng)的節(jié)點物理負(fù)載和業(yè)務(wù)負(fù)載計算出資源存儲與服務(wù)系統(tǒng)的綜合負(fù)載信息。
一種分布式數(shù)字資源存儲處理與管理的系統(tǒng)的任務(wù)計劃的執(zhí)行步驟,其主要步驟如下:
1)生成任務(wù)隊列文件,文件調(diào)配中心基于數(shù)據(jù)庫數(shù)據(jù)生成需要執(zhí)行的任務(wù)隊列并保存為xml文件;
2)通知資源存儲與服務(wù)系統(tǒng)執(zhí)行相關(guān)任務(wù)操作,資源存儲與服務(wù)系統(tǒng)下載與本機相關(guān)任務(wù)的xml文件,并依據(jù)xml文件進(jìn)行資源處理,每個資源處理開始之前和處理之后均標(biāo)記狀態(tài);
3)任務(wù)執(zhí)行結(jié)束或者執(zhí)行時間結(jié)束,提交更新后的xml文件到文件調(diào)配中心,文件調(diào)配中心分析xml文件,更新數(shù)據(jù)庫記錄。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
1)本發(fā)明可基于用戶設(shè)置進(jìn)行資源彈性鏡像,使有限的硬件資源更好的服務(wù)于繁忙的業(yè)務(wù)。
2)本發(fā)明提供了完整的數(shù)字資源處理與存儲的流程,可以輕松的實現(xiàn)數(shù)字資源的傳輸、存儲、保護(hù)、轉(zhuǎn)碼、鏡像、回收、刪除等。
3)本發(fā)明包含多種資源存儲與處理,可自行擴展資源類型,滿足不同的資源存儲需求。
4)本發(fā)明對資源處理的性能進(jìn)行優(yōu)化,將轉(zhuǎn)碼、保護(hù)、鏡像更新等任務(wù)分散至多個資源存儲與服務(wù)系統(tǒng)中,提高整個系統(tǒng)的應(yīng)用性能,降低單個資源存儲與服務(wù)系統(tǒng)的負(fù)載,確保系統(tǒng)穩(wěn)定可靠。
5)本發(fā)明基于任務(wù)調(diào)度實現(xiàn)資源的存儲與處理,所有資源可實現(xiàn)無值守處理,簡化資源處理流程。
附圖說明
圖1為一種分布式數(shù)字資源存儲處理與管理的系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施方式
下面結(jié)合具體實施方式對本發(fā)明的技術(shù)方案作進(jìn)一步詳細(xì)地說明。
請參閱圖1,一種分布式數(shù)字資源存儲處理與管理的系統(tǒng),包括客戶端、文件調(diào)配中心和資源存儲與服務(wù)系統(tǒng);所述客戶端負(fù)責(zé)資源的上傳及存儲決策,主要用于上傳blob文件,客戶端連接至文件調(diào)配中心,文件調(diào)配中心負(fù)責(zé)消息控制與任務(wù)調(diào)度,文件調(diào)配中心連接至存儲于資源存儲與服務(wù)系統(tǒng),資源存儲與服務(wù)系統(tǒng)負(fù)責(zé)資源存儲與處理;經(jīng)客戶端上傳到的blob文件經(jīng)文件調(diào)配中心調(diào)度后存儲于資源存儲與服務(wù)系統(tǒng)中;所述客戶端連接至資源存儲與服務(wù)系統(tǒng);
blob文件的個數(shù)由上傳的用戶決定,每個原始資源(包括轉(zhuǎn)碼任務(wù)生成的轉(zhuǎn)碼資源、資源保護(hù)任務(wù)生成的已保護(hù)資源)僅能存儲于一個資源存儲與服務(wù)系統(tǒng)上(該系統(tǒng)為此資源的主備服務(wù)器),其他文件副本由鏡像任務(wù)進(jìn)行分發(fā)。
所述文件調(diào)配中心對資源存儲與服務(wù)系統(tǒng)、任務(wù)計劃、資源上載進(jìn)行調(diào)度,它負(fù)責(zé)整個系統(tǒng)的全局控制。同時文件調(diào)配中心內(nèi)的服務(wù)監(jiān)控日志模塊連接至資源存儲與服務(wù)系統(tǒng)內(nèi)的心跳服務(wù)模塊,文件調(diào)配中心持續(xù)的接收資源存儲與服務(wù)系統(tǒng)內(nèi)心跳服務(wù)模塊提供的數(shù)據(jù),實現(xiàn)對資源存儲與服務(wù)系統(tǒng)實時監(jiān)控。
所述資源存儲與服務(wù)系統(tǒng)為該發(fā)明的存儲單元與任務(wù)執(zhí)行單元,實現(xiàn)數(shù)據(jù)的本地化存儲、資源鏡像更新、文件資源保護(hù)、文件轉(zhuǎn)碼服務(wù)、文件動態(tài)回收等,同時,實時監(jiān)控本機狀態(tài),并周期性的推送至文件調(diào)配中心,完成對本機狀態(tài)的維護(hù)。所述資源存儲與服務(wù)系統(tǒng)數(shù)量設(shè)置在一個以上,多個資源存儲與服務(wù)系統(tǒng)并列連接。
一種分布式數(shù)字資源存儲處理與管理的方法如下:
1)用戶在客戶端選擇多個資源存儲與服務(wù)系統(tǒng),請求寫操作;
2)文件調(diào)配中心接受操作請求并基于資源存儲與服務(wù)系統(tǒng)本身記錄的負(fù)載排行,獲取負(fù)載最低的資源存儲與服務(wù)系統(tǒng);
3)客戶端向步驟2獲取的負(fù)載最低的資源存儲與服務(wù)系統(tǒng)提交寫入數(shù)據(jù);
4)寫入成功后,提交更新申請到文件調(diào)配中心,文件調(diào)配中心寫入文件上傳信息;
5)文件調(diào)配中心基于用戶選擇形成鏡像更新的任務(wù)隊列;
6)資源存儲與服務(wù)系統(tǒng)基于文件更新隊列進(jìn)行文件鏡像更新;
7)更新完成后,將更新結(jié)果反饋至文件調(diào)配中心,文件調(diào)配中心做出更新記錄,鏡像更新完成,此時,文件同步完成。
所述獲取負(fù)載最低的資源存儲與服務(wù)系統(tǒng)的計算方法如下:
(1)計算各節(jié)點物理負(fù)載
首先選取一些能夠代表服務(wù)器性能水平的指標(biāo),并通過一定的方法,將這些指標(biāo)綜合起來得到服務(wù)器的綜合負(fù)載參數(shù)。為了避免獲取計算較多的負(fù)載指標(biāo)對整個系統(tǒng)的性能或者相應(yīng)速度產(chǎn)生影響,所選取的指標(biāo)種類和數(shù)量不易過多,應(yīng)該盡可能做到少而精。
所述代表服務(wù)器性能水平的指標(biāo)包括cpu平均使用率、物理內(nèi)存使用率、磁盤讀寫速率使用率和網(wǎng)絡(luò)帶寬使用率。
假定該發(fā)明中的文件存儲系統(tǒng)中存在著n個資源存儲與服務(wù)系統(tǒng)(s1,s2,s3...sn),第i臺資源存儲與服務(wù)系統(tǒng)的cpu主頻與邏輯cpu個數(shù)的乘積為ci,內(nèi)存大小為mi,io平均速率為ii,網(wǎng)絡(luò)平均速率為ni。
第一步,分別取資源存儲與服務(wù)系統(tǒng)中四個性能指標(biāo)的最大值,計算方式如下所示:
第二步,將資源存儲與服務(wù)系統(tǒng)中每個資源存儲與服務(wù)系統(tǒng)相應(yīng)的性能指標(biāo)除以性能指標(biāo)最大值,得到一個介于0到1之間的性能比值,計算方式如下所示:
第三步,根據(jù)資源存儲與服務(wù)系統(tǒng)四個性能對服務(wù)器整體數(shù)據(jù)處理性能的影響程度,為每個資源存儲與服務(wù)系統(tǒng)性能比值賦予一個用戶進(jìn)行加權(quán)平均的系數(shù)q1、q2、q3、q4。
要求q1,q2,q3,q4均大于0小于1,且q1+q2+q3+q4=1。
據(jù)此我們得到每個資源存儲與服務(wù)系統(tǒng)性能指標(biāo)xpi的具體計算公式為
xpi=(q1*cpi+q2*mpi+q3*ipi+q4*npi)/4
具體q1,q2,q3,q4的設(shè)置方案管理員在實際運行的環(huán)境中進(jìn)行設(shè)置。
第四步,計算每個資源存儲與服務(wù)系統(tǒng)的負(fù)載
假定每個資源存儲與服務(wù)系統(tǒng)的cpu使用率,內(nèi)存使用率、磁盤讀寫速度使用率及網(wǎng)絡(luò)帶寬使用率分別用cui,mui,iui,nui表示,則第1臺資源存儲與服務(wù)系統(tǒng)在任意時刻的綜合負(fù)載均衡ti可以表示為:
ti=(q1*cpi*cui+q2*mpi*mui+q3*ipi*iui+q4*npi*nui)/4
第五步,每個資源存儲與服務(wù)系統(tǒng)權(quán)重值計算
每個資源存儲與服務(wù)系統(tǒng)總體性能減去實時負(fù)載,即為相應(yīng)資源存儲與服務(wù)系統(tǒng)的剩余數(shù)據(jù)處理性能,每個資源存儲與服務(wù)系統(tǒng)剩余性能占所有資源存儲與服務(wù)系統(tǒng)剩余性能之和的比例,即為相應(yīng)資源存儲與服務(wù)系統(tǒng)在的權(quán)重值。
第i臺資源存儲與服務(wù)系統(tǒng)的權(quán)重值wi的計算公式為
(2)計算各節(jié)點業(yè)務(wù)負(fù)載
本發(fā)明與常見的資源存儲與服務(wù)系統(tǒng)的不同之處在于資源存儲與服務(wù)系統(tǒng)(工作節(jié)點)不僅僅的進(jìn)行資源的存儲,還需要進(jìn)行資源的轉(zhuǎn)碼、鏡像更新、資源保護(hù)任務(wù),需要針對資源存儲與服務(wù)系統(tǒng)的業(yè)務(wù)做一次負(fù)載均衡。
設(shè)視頻轉(zhuǎn)碼任務(wù)大小為tt(vi)、音頻轉(zhuǎn)碼任務(wù)大小為tt(ai)、文檔轉(zhuǎn)碼任務(wù)大小為tt(di)、文檔資源保護(hù)任務(wù)大小為tp(di)、視頻資源保護(hù)任務(wù)大小為tp(vi)、圖片資源保護(hù)任務(wù)大小為tp(pi)、通用資源保護(hù)任務(wù)大小為tp(oi)、鏡像下載資源大小為tm(ai)。
同時原視頻時長為time(vi),音頻時長是time(ai),時長單位是小時。
轉(zhuǎn)碼后文件碼率為b;
第一步,計算第i臺資源存儲與服務(wù)系統(tǒng)需要處理的資源大小。
fi=tt(vi)*(time(vi)+b)+tt(ai)*(time(ai)+b)+tt(di)+tp(di)+tp(vi)+tp(pi)+tp(oi)+tm(ai)
time(vi)+b為視頻轉(zhuǎn)碼系數(shù);
time(ai)+b為音頻轉(zhuǎn)碼系數(shù);
b取低標(biāo)準(zhǔn):2.1053,中標(biāo)準(zhǔn):3.1579,高標(biāo)準(zhǔn):4.7368;
第二步,獲取所有資源存儲與服務(wù)系統(tǒng)中需要處理的資源大小。
fa=f1+f2+...+fn
第三步,計算第i個資源存儲與服務(wù)系統(tǒng)待處理資源大小的占比。
pi=fi/fa
第四步,計算第i個資源存儲與服務(wù)系統(tǒng)的性能占比。
第五步,每個資源存儲與服務(wù)系統(tǒng)的業(yè)務(wù)負(fù)載應(yīng)該為任務(wù)占比除以性能占比。計算方式為:
bi=pi/xi
(3)計算綜合負(fù)載計算
設(shè)定參數(shù)k,k1+k2=1,k1和k2分別用于調(diào)配物理負(fù)載與業(yè)務(wù)負(fù)載占用的比例,所以最終綜合負(fù)載為
load(i)=li*k1+bi*k2
如果需要精確的獲取各個節(jié)點的綜合負(fù)載信息,需要每次提交讀/寫請求時向所有的節(jié)點發(fā)送請求以獲取實時負(fù)載信息,但是,這會消耗極大的資源。通常會設(shè)置一個時間周期t,獲取時間周期內(nèi)的負(fù)載數(shù)據(jù)。
使用時間周期進(jìn)行負(fù)載計算的話會造成系統(tǒng)請求分配的群聚效應(yīng),此時需要按照節(jié)點負(fù)載進(jìn)行升序排列,獲取時間周期內(nèi)的負(fù)載最小的前兩個工作節(jié)點,進(jìn)行輪詢分配。
一種分布式數(shù)字資源存儲處理與管理的系統(tǒng)的資源的處理方法如下:
分布式數(shù)字資源管理系統(tǒng)對資源的處理采用任務(wù)調(diào)度的方式,由文件調(diào)配中心進(jìn)行統(tǒng)一的任務(wù)調(diào)度。
首先對資源進(jìn)行劃分,不同的資源采用不同的處理方法,按照資源類型,將其劃分為文檔、圖片、音頻、視頻、通用文件,每種資源類型下邊包括不同的資源格式,如文檔資源可以是word文檔、wps文檔、pdf文檔等。
分布式數(shù)字資源管理系統(tǒng)可對不同的類型的文件不同的資源操作,將不同類型和規(guī)格的資源,采用相應(yīng)的轉(zhuǎn)碼技術(shù),轉(zhuǎn)換為適用于html5標(biāo)準(zhǔn)的資源;html5是新一代的html技術(shù),支持音視頻資源的在線播放,將會是未來音視頻播放的主流方式。因此,此發(fā)明提供音視頻的轉(zhuǎn)碼任務(wù),支持音視頻的web瀏覽,同時也支持文檔的轉(zhuǎn)碼。
分布式數(shù)字資源管理系統(tǒng)同時針對不同類型資源,采用時間戳和水印保護(hù)技術(shù)進(jìn)行統(tǒng)一保護(hù);注重對資源的保護(hù),可由用戶設(shè)置資源保護(hù)的方式,提供圖片的水印保護(hù)與時間戳保護(hù);提供文檔的水印保護(hù)與時間戳保護(hù);提供音頻的時間戳保護(hù);提供視頻的水印保護(hù)與時間戳保護(hù);提供通用文件的時間戳保護(hù)與壓縮保護(hù)。
此發(fā)明需要合理分配存儲資源,并對存儲資源的正確性進(jìn)行校驗。因此會對資源存儲與服務(wù)系統(tǒng)上的資源進(jìn)行md5校驗,校驗失敗的資源,將被標(biāo)記為刪除狀態(tài)。
分布式數(shù)字資源管理系統(tǒng)在進(jìn)行任務(wù)處理過程中均需要文件調(diào)配中心進(jìn)行任務(wù)計劃調(diào)度,文件調(diào)配中心進(jìn)行任務(wù)調(diào)度的任務(wù)計劃可以劃分為四類,分別是鏡像更新任務(wù)計劃、資源轉(zhuǎn)碼任務(wù)計劃、資源保護(hù)任務(wù)計劃和資源回收任務(wù)計劃。
一種分布式數(shù)字資源存儲處理與管理的系統(tǒng)任務(wù)計劃的執(zhí)行均分為三步:
第一步:任務(wù)隊列文件生成,文件調(diào)配中心基于數(shù)據(jù)庫數(shù)據(jù)生成需要執(zhí)行的任務(wù)隊列并保存為xml文件。
第二步:通知資源存儲與服務(wù)系統(tǒng)執(zhí)行相關(guān)任務(wù)操作,資源存儲與服務(wù)系統(tǒng)下載與本機相關(guān)任務(wù)的xml文件,并依據(jù)xml文件進(jìn)行資源處理,每個資源處理開始之前和處理之后均標(biāo)記狀態(tài),如開始轉(zhuǎn)碼時間、轉(zhuǎn)碼結(jié)束時間、轉(zhuǎn)碼結(jié)束狀態(tài)等。
第三步:任務(wù)執(zhí)行結(jié)束或者執(zhí)行時間結(jié)束,提交更新后的xml文件到文件調(diào)配中心,文件調(diào)配中心分析xml文件,更新數(shù)據(jù)庫記錄并提交錯誤日志等。
上面對本發(fā)明的較佳實施方式作了詳細(xì)說明,但是本發(fā)明并不限于上述實施方式,在本領(lǐng)域的普通技術(shù)人員所具備的知識范圍內(nèi),還可以在不脫離本發(fā)明宗旨的前提下作出各種變化。