本發(fā)明涉及計(jì)算機(jī)云存儲(chǔ)領(lǐng)域,特別涉及一種視頻云存儲(chǔ)的存儲(chǔ)資源分配方法和裝置。
背景技術(shù):
大多數(shù)的視頻云存儲(chǔ)系統(tǒng)中,管理服務(wù)器對(duì)各個(gè)存儲(chǔ)節(jié)點(diǎn)進(jìn)行數(shù)據(jù)寫入分配時(shí),通常根據(jù)存儲(chǔ)節(jié)點(diǎn)當(dāng)前的讀寫路數(shù)、cpu、內(nèi)存、磁盤io訪問率等負(fù)載情況進(jìn)行綜合比較,分配一個(gè)當(dāng)前壓力最小的存儲(chǔ)節(jié)點(diǎn)。現(xiàn)有的這種分配方法,對(duì)于并發(fā)存儲(chǔ)量小的資源分配請(qǐng)求,還可以應(yīng)付,但是對(duì)于管理服務(wù)器采用集群方式并且存儲(chǔ)量瞬時(shí)很大的情況,就無法滿足,存在如下問題:某個(gè)存儲(chǔ)節(jié)點(diǎn)瞬間被分配了過多的寫入路數(shù),壓力瞬間增大,丟包情況不可避免。
同時(shí),視頻云存儲(chǔ)系統(tǒng)中每個(gè)存儲(chǔ)節(jié)點(diǎn)的存儲(chǔ)能力可能不同,如果采用現(xiàn)有的單一的負(fù)載均衡策略,只考慮存儲(chǔ)節(jié)點(diǎn)的負(fù)載壓力,不利于視頻云存儲(chǔ)系統(tǒng)的整體統(tǒng)籌,會(huì)出現(xiàn)系統(tǒng)運(yùn)行一段時(shí)間后,有的存儲(chǔ)節(jié)點(diǎn)已經(jīng)沒有剩余空間,而有的存儲(chǔ)節(jié)點(diǎn)上還有較多的剩余容量,管理服務(wù)器根據(jù)現(xiàn)有的資源分配策略,存在剩余容量的存儲(chǔ)節(jié)點(diǎn)的寫入壓力會(huì)加大的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例公開了一種視頻云存儲(chǔ)的存儲(chǔ)資源分配方法和裝置,可以實(shí)現(xiàn)對(duì)存儲(chǔ)集群的存儲(chǔ)壓力負(fù)載的均衡分配。具體方案如下:
一方面,本發(fā)明實(shí)施例提供了一種視頻云存儲(chǔ)的存儲(chǔ)資源分配方法,應(yīng)用于存儲(chǔ)集群中的管理節(jié)點(diǎn),所述存儲(chǔ)集群中包括至少一個(gè)管理節(jié)點(diǎn)和至少一個(gè)存儲(chǔ)節(jié)點(diǎn),所述方法包括:
接收客戶端基于編碼器發(fā)送的視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求,所述視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求攜帶待寫入資源池的資源池標(biāo)識(shí)和所基于編碼器的編碼器標(biāo)識(shí);
從所述資源池標(biāo)識(shí)所對(duì)應(yīng)的多個(gè)存儲(chǔ)節(jié)點(diǎn)中,篩選得到所述視頻數(shù)據(jù)存儲(chǔ) 請(qǐng)求所對(duì)應(yīng)的可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列,其中,資源池標(biāo)識(shí)與存儲(chǔ)節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系被預(yù)先設(shè)置;
判斷所述編碼器標(biāo)識(shí)是否被記錄于編碼器分配軌跡表中,如果是,從所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中,結(jié)合預(yù)先記錄的節(jié)點(diǎn)同步信息中的存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù)和壓力預(yù)估算法,篩選能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn);否則,從所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中,根據(jù)所述壓力預(yù)估算法,篩選能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn);其中,所述編碼器分配軌跡表記錄有被分配過存儲(chǔ)節(jié)點(diǎn)的編碼器的編碼器標(biāo)識(shí)與所分配存儲(chǔ)節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系,所述壓力預(yù)估算法為:根據(jù)所述節(jié)點(diǎn)同步信息對(duì)存儲(chǔ)節(jié)點(diǎn)進(jìn)行壓力預(yù)估的算法;
如果從所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中篩選得到能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn),將所述目標(biāo)存儲(chǔ)節(jié)點(diǎn)的地址信息基于所述編碼器反饋給所述客戶端,以使得所述客戶端在所述目標(biāo)存儲(chǔ)節(jié)點(diǎn)中寫入所述視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求所對(duì)應(yīng)的視頻數(shù)據(jù)。
較佳的,所述預(yù)先記錄的節(jié)點(diǎn)同步信息還包括:存儲(chǔ)節(jié)點(diǎn)的cpu占用率、讀取視頻數(shù)據(jù)已占用的帶寬以及當(dāng)前讀取路數(shù)、寫入視頻數(shù)據(jù)已占用的帶寬、磁盤i/o占用率和內(nèi)存占用率;
所述壓力預(yù)估算法,包括:
根據(jù)存儲(chǔ)節(jié)點(diǎn)的所述寫入視頻數(shù)據(jù)已占用的帶寬以及當(dāng)前寫入路數(shù),計(jì)算該存儲(chǔ)節(jié)點(diǎn)的寫壓力預(yù)估值;
根據(jù)該存儲(chǔ)節(jié)點(diǎn)的所述讀取視頻數(shù)據(jù)已占用的帶寬以及當(dāng)前讀取路數(shù),計(jì)算該存儲(chǔ)節(jié)點(diǎn)的讀壓力;
根據(jù)該存儲(chǔ)節(jié)點(diǎn)的所述cpu占用率、所述內(nèi)存占用率、所述磁盤io占用率、所述寫壓力預(yù)估值和所述讀壓力,計(jì)算該存儲(chǔ)節(jié)點(diǎn)的壓力預(yù)估值。
較佳的,所述計(jì)算該存儲(chǔ)節(jié)點(diǎn)的寫壓力預(yù)估值所利用的計(jì)算方式為:
存儲(chǔ)節(jié)點(diǎn)的寫壓力預(yù)估值=所述存儲(chǔ)集群中所有存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù)的總數(shù)*(該存儲(chǔ)節(jié)點(diǎn)的寫入視頻數(shù)據(jù)已占用的帶寬/該存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù));
所述計(jì)算該存儲(chǔ)節(jié)點(diǎn)的讀壓力所利用的計(jì)算方式為:
存儲(chǔ)節(jié)點(diǎn)的讀壓力=所述存儲(chǔ)集群所有存儲(chǔ)節(jié)點(diǎn)的當(dāng)前讀取路數(shù)的總數(shù)*(該存儲(chǔ)節(jié)點(diǎn)的讀取視頻數(shù)據(jù)已占用的帶寬/該存儲(chǔ)節(jié)點(diǎn)的當(dāng)前讀取路數(shù))。
較佳的,本發(fā)明實(shí)施例所提供的一種視頻云存儲(chǔ)的存儲(chǔ)資源分配方法還包括:
如果從所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中未篩選得到能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn),從所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中隨機(jī)選擇一個(gè)存儲(chǔ)節(jié)點(diǎn)作為目標(biāo)存儲(chǔ)節(jié)點(diǎn),將所述目標(biāo)存儲(chǔ)節(jié)點(diǎn)的地址信息基于所述編碼器反饋給所述客戶端,以使得所述客戶端在所述目標(biāo)存儲(chǔ)節(jié)點(diǎn)中寫入所述視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求所對(duì)應(yīng)的視頻數(shù)據(jù)。
較佳的,所述視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求還包括:所述客戶端的網(wǎng)絡(luò)地址;
所述從所述資源池標(biāo)識(shí)所對(duì)應(yīng)的多個(gè)存儲(chǔ)節(jié)點(diǎn)中,篩選得到所述視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求所對(duì)應(yīng)的可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列,包括:
從所述資源池標(biāo)識(shí)所對(duì)應(yīng)的多個(gè)存儲(chǔ)節(jié)點(diǎn)中,確定所述客戶端的網(wǎng)絡(luò)地址所對(duì)應(yīng)的存儲(chǔ)節(jié)點(diǎn);其中,預(yù)先設(shè)置有網(wǎng)絡(luò)地址段與存儲(chǔ)節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系;
從所確定出的所述客戶端的網(wǎng)絡(luò)地址所對(duì)應(yīng)的存儲(chǔ)節(jié)點(diǎn)中,篩選得到所述視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求所對(duì)應(yīng)的可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列。
較佳的,本發(fā)明實(shí)施例所提供的一種視頻云存儲(chǔ)的存儲(chǔ)資源分配方法還包括:
將所述目標(biāo)存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù)加一,以更新所述目標(biāo)存儲(chǔ)節(jié)點(diǎn)的節(jié)點(diǎn)同步信息。
較佳的,所述從所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中,結(jié)合預(yù)先記錄的節(jié)點(diǎn)同步信息中的存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù)和壓力預(yù)估算法,篩選能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn),包括:
依據(jù)所述編碼器分配軌跡表,從所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中,確定所述編碼器上一次被分配的存儲(chǔ)節(jié)點(diǎn);
將所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中該上一次被分配的存儲(chǔ)節(jié)點(diǎn)的下一存儲(chǔ)節(jié)點(diǎn)作為待判斷的當(dāng)前存儲(chǔ)節(jié)點(diǎn),并執(zhí)行如下篩選操作:
從預(yù)先記錄的各個(gè)存儲(chǔ)節(jié)點(diǎn)的節(jié)點(diǎn)同步信息中,得到當(dāng)前存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù);
計(jì)算當(dāng)前存儲(chǔ)節(jié)點(diǎn)的建議寫入路數(shù);
判斷當(dāng)前寫入路數(shù)是否小于該建議寫入路數(shù),如果小于該建議寫入路數(shù),根據(jù)所述壓力預(yù)估算法,計(jì)算該存儲(chǔ)節(jié)點(diǎn)的壓力預(yù)估值,如果壓力預(yù)估值小于預(yù)定閾值,則將該當(dāng)前存儲(chǔ)節(jié)點(diǎn)作為能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn),結(jié)束篩選流程,如果壓力預(yù)估值不小于預(yù)定閾值,繼續(xù)將所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中該當(dāng)前存儲(chǔ)節(jié)點(diǎn)的下一存儲(chǔ)節(jié)點(diǎn)作為待判斷的當(dāng)前存儲(chǔ)節(jié)點(diǎn)并執(zhí)行該篩選操作,直至所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中所有存儲(chǔ)節(jié)點(diǎn)均被作為過待判斷的當(dāng)前存儲(chǔ)節(jié)點(diǎn);
如果大于等于該建議寫入路數(shù),繼續(xù)將所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中該當(dāng)前存儲(chǔ)節(jié)點(diǎn)的下一存儲(chǔ)節(jié)點(diǎn)作為待判斷的當(dāng)前存儲(chǔ)節(jié)點(diǎn)并執(zhí)行該篩選操作,直至所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中所有存儲(chǔ)節(jié)點(diǎn)均被作為過待判斷的當(dāng)前存儲(chǔ)節(jié)點(diǎn)。
較佳的,所述計(jì)算當(dāng)前存儲(chǔ)節(jié)點(diǎn)的建議寫入路數(shù)所利用的計(jì)算方式為:
當(dāng)前存儲(chǔ)節(jié)點(diǎn)的建議寫入路數(shù)=所述存儲(chǔ)集群中所有存儲(chǔ)節(jié)點(diǎn)的寫入路數(shù)總數(shù)*(該當(dāng)前存儲(chǔ)節(jié)點(diǎn)的總存儲(chǔ)空間/所有存儲(chǔ)節(jié)點(diǎn)的總存儲(chǔ)空間)。
較佳的,所述從所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中,根據(jù)壓力預(yù)估算法,篩選能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn),包括:
根據(jù)所述節(jié)點(diǎn)同步信息按照所述壓力預(yù)估算法,計(jì)算所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列的各個(gè)存儲(chǔ)節(jié)點(diǎn)的壓力預(yù)估值;
從壓力預(yù)估值小于預(yù)定閾值的存儲(chǔ)節(jié)點(diǎn)中隨機(jī)選擇一存儲(chǔ)節(jié)點(diǎn)作為能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn)。
較佳的,本發(fā)明實(shí)施例所提供的一種視頻云存儲(chǔ)的存儲(chǔ)資源分配方法還包括:
將所記錄的各個(gè)存儲(chǔ)節(jié)點(diǎn)的節(jié)點(diǎn)同步信息中,所確定出的所述編碼器上一次被分配的存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù)減一。
較佳的,所述從所述資源池標(biāo)識(shí)所對(duì)應(yīng)的多個(gè)存儲(chǔ)節(jié)點(diǎn)中,篩選得到所述 視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求所對(duì)應(yīng)的可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列,包括:
從所述資源池標(biāo)識(shí)所對(duì)應(yīng)的多個(gè)存儲(chǔ)節(jié)點(diǎn)中,根據(jù)預(yù)先記錄的各個(gè)存儲(chǔ)節(jié)點(diǎn)的節(jié)點(diǎn)同步信息,確定符合可分配條件的至少一個(gè)存儲(chǔ)節(jié)點(diǎn);
將符合可分配條件的至少一個(gè)存儲(chǔ)節(jié)點(diǎn)構(gòu)建為所述視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求所對(duì)應(yīng)的可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列。
較佳的,所述節(jié)點(diǎn)同步信息還包括:存儲(chǔ)節(jié)點(diǎn)的是否在線信息、運(yùn)行狀態(tài)是否正常信息以及剩余存儲(chǔ)空間信息;
所述可分配條件為:同步信息表明存儲(chǔ)節(jié)點(diǎn)在線、運(yùn)行狀態(tài)正常以及存在剩余存儲(chǔ)空間;
或者,
所述節(jié)點(diǎn)同步信息包括:存儲(chǔ)節(jié)點(diǎn)的是否在線信息、運(yùn)行狀態(tài)是否正常信息、剩余存儲(chǔ)空間信息、是否正在格式化信息、當(dāng)前寫入路數(shù)以及最大寫入路數(shù);
所述可分配條件為:同步信息表明存儲(chǔ)節(jié)點(diǎn)在線、運(yùn)行狀態(tài)正常、存在剩余存儲(chǔ)空間、未處于格式化以及當(dāng)前寫入路數(shù)小于最大寫入路數(shù)。
較佳的,所述視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求由所述客戶端基于至少一個(gè)編碼器按預(yù)設(shè)時(shí)間間隔發(fā)送。
另一方面,本發(fā)明實(shí)施例還提供了一種視頻云存儲(chǔ)的存儲(chǔ)資源分配裝置,應(yīng)用存儲(chǔ)集群中的管理節(jié)點(diǎn),所述存儲(chǔ)集群中包括至少一個(gè)管理節(jié)點(diǎn)和至少一個(gè)存儲(chǔ)節(jié)點(diǎn),所述裝置包括:
視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求接收模塊:用于接收客戶端基于編碼器發(fā)送的視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求,所述視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求攜帶待寫入資源池的資源池標(biāo)識(shí)和所基于編碼器的編碼器標(biāo)識(shí);
可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列獲取模塊:用于從所述資源池標(biāo)識(shí)所對(duì)應(yīng)的多個(gè)存儲(chǔ)節(jié)點(diǎn)中,篩選得到所述視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求所對(duì)應(yīng)的可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列,其中,資源池標(biāo)識(shí)與存儲(chǔ)節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系被預(yù)先設(shè)置;
判斷模塊:用于判斷所述編碼器標(biāo)識(shí)是否被記錄于編碼器分配軌跡表中,如果是,觸發(fā)第一目標(biāo)存儲(chǔ)節(jié)點(diǎn)確定模塊,否則,觸發(fā)第二目標(biāo)存儲(chǔ)節(jié)點(diǎn)確定模塊,其中,所述編碼器分配軌跡表記錄有被分配過存儲(chǔ)節(jié)點(diǎn)的編碼器的編碼器標(biāo)識(shí)與所分配存儲(chǔ)節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系;
所述第一目標(biāo)存儲(chǔ)節(jié)點(diǎn)確定模塊:用于從所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中,結(jié)合預(yù)先記錄的節(jié)點(diǎn)同步信息中的存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù)和壓力預(yù)估算法,篩選能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn),其中,所述壓力預(yù)估算法為:根據(jù)所述節(jié)點(diǎn)同步信息對(duì)存儲(chǔ)節(jié)點(diǎn)進(jìn)行壓力預(yù)估的算法;
所述第二目標(biāo)存儲(chǔ)節(jié)點(diǎn)確定模塊:從所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中,根據(jù)所述壓力預(yù)估算法,篩選能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn);
第一目標(biāo)存儲(chǔ)節(jié)點(diǎn)地址信息返回模塊:用于如果從所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中篩選得到能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn),將所述目標(biāo)存儲(chǔ)節(jié)點(diǎn)的地址信息基于所述編碼器反饋給所述客戶端,以使得所述客戶端在所述目標(biāo)存儲(chǔ)節(jié)點(diǎn)中寫入所述視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求所對(duì)應(yīng)的視頻數(shù)據(jù)。
較佳的,所述預(yù)先記錄的節(jié)點(diǎn)同步信息還包括:存儲(chǔ)節(jié)點(diǎn)的cpu占用率、讀取視頻數(shù)據(jù)已占用的帶寬以及當(dāng)前讀取路數(shù)、寫入視頻數(shù)據(jù)已占用的帶寬、磁盤i/o占用率和內(nèi)存占用率;
所述第一目標(biāo)存儲(chǔ)節(jié)點(diǎn)確定模塊和所述第二目標(biāo)存儲(chǔ)節(jié)點(diǎn)確定模塊所利用的所述壓力預(yù)估算法,包括:
根據(jù)存儲(chǔ)節(jié)點(diǎn)的所述寫入視頻數(shù)據(jù)已占用的帶寬以及當(dāng)前寫入路數(shù),計(jì)算該存儲(chǔ)節(jié)點(diǎn)的寫壓力預(yù)估值;
根據(jù)該存儲(chǔ)節(jié)點(diǎn)的所述讀取視頻數(shù)據(jù)已占用的帶寬以及當(dāng)前讀取路數(shù),計(jì)算該存儲(chǔ)節(jié)點(diǎn)的讀壓力;
根據(jù)該存儲(chǔ)節(jié)點(diǎn)的所述cpu占用率、所述內(nèi)存占用率、所述磁盤io占用率、所述寫壓力預(yù)估值和所述讀壓力,計(jì)算該存儲(chǔ)節(jié)點(diǎn)的壓力預(yù)估值。
較佳的,所述計(jì)算該存儲(chǔ)節(jié)點(diǎn)的寫壓力預(yù)估值所利用的計(jì)算方式為:
存儲(chǔ)節(jié)點(diǎn)的寫壓力預(yù)估值=所述存儲(chǔ)集群中所有存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù)的總數(shù)*(該存儲(chǔ)節(jié)點(diǎn)的寫入視頻數(shù)據(jù)已占用的帶寬/該存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路 數(shù));
所述計(jì)算該存儲(chǔ)節(jié)點(diǎn)的讀壓力所利用的計(jì)算方式為:
存儲(chǔ)節(jié)點(diǎn)的讀壓力=所述存儲(chǔ)集群所有存儲(chǔ)節(jié)點(diǎn)的當(dāng)前讀取路數(shù)的總數(shù)*(該存儲(chǔ)節(jié)點(diǎn)的讀取視頻數(shù)據(jù)已占用的帶寬/該存儲(chǔ)節(jié)點(diǎn)的當(dāng)前讀取路數(shù))。
較佳的,本發(fā)明實(shí)施例所提供的一種視頻云存儲(chǔ)的存儲(chǔ)資源分配裝置,還包括第二目標(biāo)存儲(chǔ)節(jié)點(diǎn)地址信息返回模塊;
所述第二目標(biāo)存儲(chǔ)節(jié)點(diǎn)地址信息返回模塊:用于如果從所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中未篩選得到能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn),從所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中隨機(jī)選擇一個(gè)存儲(chǔ)節(jié)點(diǎn)作為目標(biāo)存儲(chǔ)節(jié)點(diǎn),將所述目標(biāo)存儲(chǔ)節(jié)點(diǎn)的地址信息基于所述編碼器反饋給所述客戶端,以使得所述客戶端在所述目標(biāo)存儲(chǔ)節(jié)點(diǎn)中寫入所述視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求所對(duì)應(yīng)的視頻數(shù)據(jù)。
較佳的,所述視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求還包括:所述客戶端的網(wǎng)絡(luò)地址;
所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列獲取模塊包括第一存儲(chǔ)節(jié)點(diǎn)確定子模塊和第一可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列獲取子模塊;
所述第一存儲(chǔ)節(jié)點(diǎn)確定子模塊:用于從所述資源池標(biāo)識(shí)所對(duì)應(yīng)的多個(gè)存儲(chǔ)節(jié)點(diǎn)中,確定所述客戶端的網(wǎng)絡(luò)地址所對(duì)應(yīng)的存儲(chǔ)節(jié)點(diǎn);其中,預(yù)先設(shè)置有網(wǎng)絡(luò)地址段與存儲(chǔ)節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系;
所述第一可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列獲取子模塊:用于從所確定出的所述客戶端的網(wǎng)絡(luò)地址所對(duì)應(yīng)的存儲(chǔ)節(jié)點(diǎn)中,篩選得到所述視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求所對(duì)應(yīng)的可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列。
較佳的,本發(fā)明實(shí)施例所提供的一種視頻云存儲(chǔ)的存儲(chǔ)資源分配裝置,還包括當(dāng)前路數(shù)加一模塊;
所述當(dāng)前路數(shù)加一模塊:用于將所述目標(biāo)存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù)加一,以更新所述目標(biāo)存儲(chǔ)節(jié)點(diǎn)的節(jié)點(diǎn)同步信息。
較佳的,所述第一目標(biāo)存儲(chǔ)節(jié)點(diǎn)確定模塊包括:
第二存儲(chǔ)節(jié)點(diǎn)確定子模塊:用于依據(jù)所述編碼器分配軌跡表,從所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中,確定所述編碼器上一次被分配的存儲(chǔ)節(jié)點(diǎn);
存儲(chǔ)節(jié)點(diǎn)處理子模塊:用于將所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中該上一次被分配的存儲(chǔ)節(jié)點(diǎn)的下一存儲(chǔ)節(jié)點(diǎn)作為待判斷的當(dāng)前存儲(chǔ)節(jié)點(diǎn),并執(zhí)行如下篩選操作:
從預(yù)先記錄的各個(gè)存儲(chǔ)節(jié)點(diǎn)的節(jié)點(diǎn)同步信息中,得到當(dāng)前存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù);
計(jì)算當(dāng)前存儲(chǔ)節(jié)點(diǎn)的建議寫入路數(shù);
判斷當(dāng)前寫入路數(shù)是否小于該建議寫入路數(shù),如果小于該建議寫入路數(shù),根據(jù)所述壓力預(yù)估算法,計(jì)算該存儲(chǔ)節(jié)點(diǎn)的壓力預(yù)估值,如果壓力預(yù)估值小于預(yù)定閾值,則將該當(dāng)前存儲(chǔ)節(jié)點(diǎn)作為能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn),結(jié)束篩選流程,如果壓力預(yù)估值不小于預(yù)定閾值,繼續(xù)將所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中該當(dāng)前存儲(chǔ)節(jié)點(diǎn)的下一存儲(chǔ)節(jié)點(diǎn)作為待判斷的當(dāng)前存儲(chǔ)節(jié)點(diǎn)并執(zhí)行該篩選操作,直至所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中所有存儲(chǔ)節(jié)點(diǎn)均被作為過待判斷的當(dāng)前存儲(chǔ)節(jié)點(diǎn);
如果大于等于該建議寫入路數(shù),繼續(xù)將所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中該當(dāng)前存儲(chǔ)節(jié)點(diǎn)的下一存儲(chǔ)節(jié)點(diǎn)作為待判斷的當(dāng)前存儲(chǔ)節(jié)點(diǎn)并執(zhí)行該篩選操作,直至所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中所有存儲(chǔ)節(jié)點(diǎn)均被作為過待判斷的當(dāng)前存儲(chǔ)節(jié)點(diǎn)。
較佳的,所述建議寫入路數(shù)計(jì)算模塊所利用的計(jì)算方式為:
當(dāng)前存儲(chǔ)節(jié)點(diǎn)的建議寫入路數(shù)=所述存儲(chǔ)集群中所有存儲(chǔ)節(jié)點(diǎn)的寫入路數(shù)總數(shù)*(該當(dāng)前存儲(chǔ)節(jié)點(diǎn)的總存儲(chǔ)空間/所有存儲(chǔ)節(jié)點(diǎn)的總存儲(chǔ)空間)。
較佳的,所述第二目標(biāo)存儲(chǔ)節(jié)點(diǎn)確定模塊包括:壓力預(yù)估值計(jì)算子模塊和目標(biāo)存儲(chǔ)節(jié)點(diǎn)確定子模塊;
所述壓力預(yù)估值計(jì)算子模塊:用于根據(jù)所述節(jié)點(diǎn)同步信息按照所述壓力預(yù)估算法,計(jì)算所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列的各個(gè)存儲(chǔ)節(jié)點(diǎn)的壓力預(yù)估值;
所述目標(biāo)存儲(chǔ)節(jié)點(diǎn)確定子模塊:用于從壓力預(yù)估值小于預(yù)定閾值的存儲(chǔ)節(jié)點(diǎn)中隨機(jī)選擇一存儲(chǔ)節(jié)點(diǎn)作為能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn)。
較佳的,本發(fā)明實(shí)施例所提供的一種視頻云存儲(chǔ)的存儲(chǔ)資源分配裝置,還包括當(dāng)前寫入路數(shù)減一模塊;
所述當(dāng)前寫入路數(shù)減一模塊:用于將所記錄的各個(gè)存儲(chǔ)節(jié)點(diǎn)的節(jié)點(diǎn)同步信 息中,所確定出的所述編碼器上一次被分配的存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù)減一。
較佳的,所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列獲取模塊,包括第三存儲(chǔ)節(jié)點(diǎn)確定子模塊和第二可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列確定子模塊;
所述第三存儲(chǔ)節(jié)點(diǎn)確定子模塊:用于從所述資源池標(biāo)識(shí)所對(duì)應(yīng)的多個(gè)存儲(chǔ)節(jié)點(diǎn)中,根據(jù)預(yù)先記錄的各個(gè)存儲(chǔ)節(jié)點(diǎn)的節(jié)點(diǎn)同步信息,確定符合可分配條件的至少一個(gè)存儲(chǔ)節(jié)點(diǎn);
所述第二可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列確定子模塊:用于將符合可分配條件的至少一個(gè)存儲(chǔ)節(jié)點(diǎn)構(gòu)建為所述視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求所對(duì)應(yīng)的可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列。
較佳的,所述節(jié)點(diǎn)同步信息還包括:存儲(chǔ)節(jié)點(diǎn)的是否在線信息、運(yùn)行狀態(tài)是否正常信息以及剩余存儲(chǔ)空間信息;
所述可分配條件為:同步信息表明存儲(chǔ)節(jié)點(diǎn)在線、運(yùn)行狀態(tài)正常以及存在剩余存儲(chǔ)空間;
或者,
所述節(jié)點(diǎn)同步信息包括:存儲(chǔ)節(jié)點(diǎn)的是否在線信息、運(yùn)行狀態(tài)是否正常信息、剩余存儲(chǔ)空間信息、是否正在格式化信息、當(dāng)前寫入路數(shù)以及最大寫入路數(shù);
所述可分配條件為:同步信息表明存儲(chǔ)節(jié)點(diǎn)在線、運(yùn)行狀態(tài)正常、存在剩余存儲(chǔ)空間、未處于格式化以及當(dāng)前寫入路數(shù)小于最大寫入路數(shù)。
較佳的,所述視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求由所述客戶端基于至少一個(gè)編碼器按預(yù)設(shè)時(shí)間間隔發(fā)送。
與現(xiàn)有技術(shù)相比,本方案中,先根據(jù)視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求,篩選得到與該視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求對(duì)應(yīng)的可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列,根據(jù)該視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求中攜帶的編碼器標(biāo)識(shí),確定該編碼器標(biāo)識(shí)是否被記錄于編碼器分配軌跡表中,如果是,從該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中,結(jié)合預(yù)先記錄的節(jié)點(diǎn)同步信息中的存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù)和壓力預(yù)估算法,篩選能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn);否則,從該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中,根據(jù)該壓力預(yù)估算法,篩選能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn);當(dāng)篩選得到可分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn)后,將該目標(biāo)存儲(chǔ)節(jié)點(diǎn)的地址信息基于該編碼器反饋給客戶端,客戶端寫入對(duì)應(yīng)的 視頻數(shù)據(jù)。
本方案中,在選擇寫入節(jié)點(diǎn)時(shí),不僅考慮了每個(gè)存儲(chǔ)節(jié)點(diǎn)的負(fù)載壓力,還考慮了每個(gè)存儲(chǔ)節(jié)點(diǎn)的存儲(chǔ)能力,從這兩方面考慮,以實(shí)現(xiàn)對(duì)云存儲(chǔ)系統(tǒng)的存儲(chǔ)壓力負(fù)載的均衡分配。當(dāng)然,實(shí)施本發(fā)明的任一產(chǎn)品或方法必不一定需要同時(shí)達(dá)到以上所述的所有優(yōu)點(diǎn)。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的一種視頻云存儲(chǔ)的存儲(chǔ)資源分配方法的流程示意圖;
圖2為本發(fā)明實(shí)施例提供的另一種視頻云存儲(chǔ)的存儲(chǔ)資源分配方法的流程示意圖;
圖3為本發(fā)明實(shí)施例提供的第三種視頻云存儲(chǔ)的存儲(chǔ)資源分配方法的流程示意圖;
圖4為本發(fā)明實(shí)施例提供的一種視頻云存儲(chǔ)的存儲(chǔ)資源分配裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
為實(shí)現(xiàn)對(duì)存儲(chǔ)集群的存儲(chǔ)壓力負(fù)載的均衡分配,提高存儲(chǔ)集群性能的穩(wěn)定性,本發(fā)明實(shí)施例提供了一種視頻云存儲(chǔ)的存儲(chǔ)資源分配方法和裝置。
下面首先對(duì)本發(fā)明實(shí)施例所提供的一種視頻云存儲(chǔ)的存儲(chǔ)資源分配方法進(jìn)行介紹。
需要說明的是本發(fā)明實(shí)施例所提供的一種視頻云存儲(chǔ)的存儲(chǔ)資源分配方法應(yīng)用于存儲(chǔ)集群中的管理節(jié)點(diǎn),該存儲(chǔ)集群中包括至少一個(gè)管理節(jié)點(diǎn)和至少一個(gè)存儲(chǔ)節(jié)點(diǎn);并且,該存儲(chǔ)集群中的每個(gè)管理節(jié)點(diǎn)都可以并發(fā)響應(yīng)客戶端所發(fā)送的視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求。
另外,由于本發(fā)明實(shí)施例所提供的一種視頻云存儲(chǔ)的存儲(chǔ)資源分配方法,每一個(gè)管理節(jié)點(diǎn)都實(shí)時(shí)維護(hù)每個(gè)存儲(chǔ)節(jié)點(diǎn)的節(jié)點(diǎn)同步信息,因此應(yīng)用本發(fā)明實(shí)施例所提供一種視頻云存儲(chǔ)的存儲(chǔ)資源分配方法的管理節(jié)點(diǎn)不受部署方式的限制。
如圖1所示,一種視頻云存儲(chǔ)的存儲(chǔ)資源分配方法,所述方法可以包括步驟:
s101:接收客戶端基于編碼器發(fā)送的視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求;
其中,該視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求中攜帶待寫入資源池的資源池標(biāo)識(shí)和所基于編碼器的編碼器標(biāo)識(shí),用以幫助后續(xù)的確定選擇相應(yīng)該視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求的存儲(chǔ)節(jié)點(diǎn)。該一個(gè)客戶端中可以包括至少一個(gè)編碼器,該客戶端可以為:終端這類能夠獲得并顯示視頻信號(hào)采集設(shè)備所采集視頻信號(hào)的設(shè)備,或,dvr(digitalvideorecorder,硬盤錄像機(jī))這類能夠獲得、存儲(chǔ)以及顯示視頻信號(hào)采集設(shè)備所采集視頻信號(hào)的設(shè)備,而編碼器用于標(biāo)識(shí)不同視頻采集設(shè)備所采集視頻采集信號(hào),具體的,該編碼器可以為:與視頻信號(hào)采集設(shè)備所對(duì)應(yīng)的視頻通道,每一視頻信號(hào)采集設(shè)備對(duì)應(yīng)有各自的視頻通道。
具體的,該視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求可以由該客戶端基于至少一個(gè)編碼器按預(yù)設(shè)時(shí)間間隔發(fā)送。
可以理解的是,客戶端并發(fā)多路向存儲(chǔ)系統(tǒng)發(fā)送視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求,其中,每個(gè)編碼器對(duì)應(yīng)一路視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求,客戶端會(huì)基于每個(gè)編碼器以一定時(shí)間間隔頻率性的發(fā)送視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求,該時(shí)間間隔可以預(yù)先設(shè)置,可以為等時(shí)間間隔也可以為不等時(shí)間間隔。舉例而言,時(shí)間間隔可以是2min,或者是2min與4min交替為時(shí)間間隔。
需要說明的是,該資源池標(biāo)識(shí)可以為資源池的名稱、編號(hào)、地址或者創(chuàng)建時(shí)間等信息,凡是能唯一確定資源池的信息都可以作為資源池標(biāo)識(shí);并且,該編碼器標(biāo)識(shí)可以為編碼器的名稱、編號(hào)或者網(wǎng)絡(luò)地址,凡是能唯一確定編碼器的信息都可以作為編碼器標(biāo)識(shí)。舉例而言:當(dāng)用戶希望通過客戶端在云盤中的某一虛擬區(qū)域(如預(yù)先為用戶所劃分的多個(gè)虛擬區(qū)域中的一個(gè),或用戶自己劃分的多個(gè)虛擬區(qū)域中的一個(gè))寫入視頻數(shù)據(jù)時(shí),該虛擬區(qū)域?qū)?yīng)于云盤提供商預(yù)先所分配的一個(gè)資源池,其中,一個(gè)虛擬區(qū)域可以對(duì)應(yīng)一個(gè)資源池,或者,多個(gè)虛擬區(qū)域均可以對(duì)應(yīng)一個(gè)資源池,這都合理的。
s102:從該資源池標(biāo)識(shí)所對(duì)應(yīng)的多個(gè)存儲(chǔ)節(jié)點(diǎn)中,篩選得到該視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求所對(duì)應(yīng)的可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列;
其中,每個(gè)資源池都預(yù)先設(shè)置了對(duì)應(yīng)的存儲(chǔ)節(jié)點(diǎn),即資源池標(biāo)識(shí)確定,其對(duì)應(yīng)的存儲(chǔ)節(jié)點(diǎn)也相對(duì)確定;對(duì)于資源池與存儲(chǔ)節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系可以為一對(duì)一的關(guān)系,也可以為一對(duì)多的關(guān)系,也可以為多對(duì)一的關(guān)系或者為多對(duì)多的關(guān)系,本發(fā)明實(shí)施例中并不對(duì)資源池與存儲(chǔ)節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系進(jìn)行限定。
需要說明的是,該篩選得到的可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中的存儲(chǔ)節(jié)點(diǎn)存在預(yù)設(shè)的固定的排列順序,該排列順序可以基于存儲(chǔ)節(jié)點(diǎn)的物理標(biāo)識(shí)所確定。
更進(jìn)一步的,在實(shí)際應(yīng)用中,可以利用某幾個(gè)存儲(chǔ)節(jié)點(diǎn)來寫入某一ip地址段的客戶端的視頻數(shù)據(jù),以進(jìn)一步提高存儲(chǔ)節(jié)點(diǎn)與客戶端的寫入關(guān)聯(lián)性,此時(shí),該視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求中還可以包括:該客戶端的網(wǎng)絡(luò)地址;
相應(yīng)的,所述從該資源池標(biāo)識(shí)所對(duì)應(yīng)的多個(gè)存儲(chǔ)節(jié)點(diǎn)中,篩選得到該視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求所對(duì)應(yīng)的可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列,可以包括:
從該資源池標(biāo)識(shí)所對(duì)應(yīng)的多個(gè)存儲(chǔ)節(jié)點(diǎn)中,確定該客戶端的網(wǎng)絡(luò)地址所對(duì)應(yīng)的存儲(chǔ)節(jié)點(diǎn);其中,預(yù)先設(shè)置有網(wǎng)絡(luò)地址段與存儲(chǔ)節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系;
從所確定出的該客戶端的網(wǎng)絡(luò)地址所對(duì)應(yīng)的存儲(chǔ)節(jié)點(diǎn)中,篩選得到該視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求所對(duì)應(yīng)的可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列。
可以理解的是,客戶端的網(wǎng)絡(luò)地址是唯一確定的,根據(jù)預(yù)先設(shè)置的網(wǎng)絡(luò)地址段與存儲(chǔ)節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系,該網(wǎng)絡(luò)地址確定,該網(wǎng)絡(luò)地址段也隨之確定,進(jìn)而與該網(wǎng)絡(luò)地址段相對(duì)應(yīng)的存儲(chǔ)節(jié)點(diǎn)也隨之確定。
舉例而言,該客戶端的網(wǎng)絡(luò)地址為190.118.0.0,與該資源池標(biāo)識(shí)所對(duì)應(yīng)的且該網(wǎng)絡(luò)地址相對(duì)應(yīng)的存儲(chǔ)節(jié)點(diǎn)為1、2、3、4,則從該四個(gè)存儲(chǔ)節(jié)點(diǎn)中篩選得到該視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求所對(duì)應(yīng)的可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列。
具體的,在實(shí)際應(yīng)用中,為保證所篩選的可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中的每一個(gè)存儲(chǔ)節(jié)點(diǎn)都是可用的,所述從該資源池標(biāo)識(shí)所對(duì)應(yīng)的多個(gè)存儲(chǔ)節(jié)點(diǎn)中,篩選得到該視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求所對(duì)應(yīng)的可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列,可以包括:
從該資源池標(biāo)識(shí)所對(duì)應(yīng)的多個(gè)存儲(chǔ)節(jié)點(diǎn)中,根據(jù)預(yù)先記錄的各個(gè)存儲(chǔ)節(jié)點(diǎn)的節(jié)點(diǎn)同步信息,確定符合可分配條件的至少一個(gè)存儲(chǔ)節(jié)點(diǎn);
將符合可分配條件的至少一個(gè)存儲(chǔ)節(jié)點(diǎn)構(gòu)建為該視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求所對(duì)應(yīng)的可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列。
進(jìn)一步的,該節(jié)點(diǎn)同步信息還可以包括:存儲(chǔ)節(jié)點(diǎn)的是否在線信息、運(yùn)行狀態(tài)是否正常信息以及剩余存儲(chǔ)空間信息;
該可分配條件為:同步信息表明存儲(chǔ)節(jié)點(diǎn)在線、運(yùn)行狀態(tài)正常以及存在剩余存儲(chǔ)空間;
或者,
該節(jié)點(diǎn)同步信息還可以包括:存儲(chǔ)節(jié)點(diǎn)的是否在線信息、運(yùn)行狀態(tài)是否正常信息、剩余存儲(chǔ)空間信息、是否正在格式化信息、當(dāng)前寫入路數(shù)以及最大寫入路數(shù);
該可分配條件為:同步信息表明存儲(chǔ)節(jié)點(diǎn)在線、運(yùn)行狀態(tài)正常、存在剩余存儲(chǔ)空間、未處于格式化以及當(dāng)前寫入路數(shù)小于最大寫入路數(shù)。
需要說明的是,通常情況下,存儲(chǔ)節(jié)點(diǎn)在線、運(yùn)行正常以及存在剩余存儲(chǔ)空間是該存儲(chǔ)節(jié)點(diǎn)可分配的基本條件,并且,上述的可分配條件僅僅作為示例,并不應(yīng)該構(gòu)成對(duì)本發(fā)明實(shí)施例的限定??梢岳斫獾氖牵瑥乃_定出的該客戶端的網(wǎng)絡(luò)地址所對(duì)應(yīng)的存儲(chǔ)節(jié)點(diǎn)中篩選得到該視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求所對(duì)應(yīng)的可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列的具體實(shí)現(xiàn)方式可以參照:上述的基于可分配條件從該資源池標(biāo)識(shí)所對(duì)應(yīng)的多個(gè)存儲(chǔ)節(jié)點(diǎn)中篩選得到該視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求所對(duì)應(yīng)的可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列的具體實(shí)現(xiàn)方式。
s103:判斷該編碼器標(biāo)識(shí)是否被記錄于編碼器分配軌跡表中;如果是,執(zhí) 行步驟s104,如果否,執(zhí)行步驟s105;
其中,如果客戶端基于某一編碼器發(fā)送過視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求,并且該編碼器被分配過存儲(chǔ)節(jié)點(diǎn),那么該編碼器所對(duì)應(yīng)的編碼器標(biāo)識(shí)則會(huì)被記錄在該編碼器分配軌跡表中,并且該編碼器分配軌跡表中記錄有被分配過存儲(chǔ)節(jié)點(diǎn)的編碼器的編碼器標(biāo)識(shí)與所分配存儲(chǔ)節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系。
需要說明的是,該編碼器分配軌跡表可以存儲(chǔ)于存儲(chǔ)集群中的所有管理節(jié)點(diǎn)中,也可以存儲(chǔ)于存儲(chǔ)集群中任一存儲(chǔ)節(jié)點(diǎn)中,由該存儲(chǔ)有該編碼器分配軌跡表的任一存儲(chǔ)節(jié)點(diǎn)反饋給每一個(gè)管理節(jié)點(diǎn),當(dāng)然該編碼器分配軌跡表也可以由客戶端存儲(chǔ),再由客戶端向存儲(chǔ)集群發(fā)送視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求時(shí),反饋給該存儲(chǔ)集群中的每一個(gè)管理節(jié)點(diǎn)即可,等等,這都是合理的。
s104:從該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中,結(jié)合預(yù)先記錄的節(jié)點(diǎn)同步信息中的存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù)和壓力預(yù)估算法,篩選能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn);
需要說明的是,在篩選能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn)時(shí),在該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中以輪轉(zhuǎn)的方式,對(duì)每一個(gè)存儲(chǔ)節(jié)點(diǎn)進(jìn)行篩選判斷。其中,該壓力預(yù)估算法為:根據(jù)該節(jié)點(diǎn)同步信息對(duì)存儲(chǔ)節(jié)點(diǎn)進(jìn)行壓力預(yù)估的算法。
其中,該節(jié)點(diǎn)同步信息可以由存儲(chǔ)集群中的存儲(chǔ)節(jié)點(diǎn)通過zookeeper服務(wù)向存儲(chǔ)集群中的每一個(gè)管理節(jié)點(diǎn)同步該存儲(chǔ)節(jié)點(diǎn)自身的負(fù)載情況,同時(shí),每個(gè)管理節(jié)點(diǎn)更新自身存儲(chǔ)的相應(yīng)的負(fù)載信息,其中,該zookeeper是一個(gè)分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是google的chubby一個(gè)開源的實(shí)現(xiàn),是hadoop和hbase的重要組件;zookeeper是一個(gè)為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護(hù)、名字服務(wù)、分布式同步、組服務(wù)等。
為了方案布局清晰,后續(xù)對(duì)從該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中,結(jié)合預(yù)先記錄的節(jié)點(diǎn)同步信息中的存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù)和壓力預(yù)估算法,篩選能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn)的具體實(shí)現(xiàn)方式,以及壓力預(yù)估算法的具體內(nèi)容進(jìn)行詳細(xì)介紹。
s105:從該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中,根據(jù)該壓力預(yù)估算法,篩選能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn);
其中,該壓力預(yù)估算法為:根據(jù)該節(jié)點(diǎn)同步信息對(duì)存儲(chǔ)節(jié)點(diǎn)進(jìn)行壓力預(yù)估的算法。
為了方案布局清晰,后續(xù)對(duì)從該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中,根據(jù)壓力預(yù)估算法,篩選能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn)的具體實(shí)現(xiàn)方式進(jìn)行介紹。
s106:如果從該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中篩選得到能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn),將該目標(biāo)存儲(chǔ)節(jié)點(diǎn)的地址信息基于該編碼器反饋給該客戶端,以使得該客戶端在該目標(biāo)存儲(chǔ)節(jié)點(diǎn)中寫入該視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求所對(duì)應(yīng)的視頻數(shù)據(jù)。
具體的,在實(shí)際應(yīng)用中,為了保證存儲(chǔ)節(jié)點(diǎn)的節(jié)點(diǎn)同步信息的準(zhǔn)確性,當(dāng)確定了能夠作為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn),本發(fā)明實(shí)施例提供的一種視頻云存儲(chǔ)的存儲(chǔ)資源分配方法還可以包括:
將該目標(biāo)存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù)加一,以更新該目標(biāo)存儲(chǔ)節(jié)點(diǎn)的節(jié)點(diǎn)同步信息。
更進(jìn)一步的,本發(fā)明實(shí)施例提供的一種視頻云存儲(chǔ)的存儲(chǔ)資源分配方法還可以包括:
如果從該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中未篩選得到能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn),從該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中隨機(jī)選擇一個(gè)存儲(chǔ)節(jié)點(diǎn)作為目標(biāo)存儲(chǔ)節(jié)點(diǎn),將該目標(biāo)存儲(chǔ)節(jié)點(diǎn)的地址信息基于該編碼器反饋給該客戶端,以使得該客戶端在該目標(biāo)存儲(chǔ)節(jié)點(diǎn)中寫入該視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求所對(duì)應(yīng)的視頻數(shù)據(jù)。
需要說明的是,存儲(chǔ)集群中的存儲(chǔ)節(jié)點(diǎn)的存儲(chǔ)區(qū)域內(nèi)部是以塊為單位,每個(gè)塊寫滿后,存儲(chǔ)節(jié)點(diǎn)會(huì)通過管理節(jié)點(diǎn)通知客戶端,若該客戶端的視頻數(shù)據(jù)未完全被存儲(chǔ),則客戶端會(huì)基于該編碼器重新向管理節(jié)點(diǎn)發(fā)送視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求。
應(yīng)用本發(fā)明實(shí)施例,在選擇能夠作為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn)時(shí),對(duì)于第一次和非第一次請(qǐng)求視頻數(shù)據(jù)存儲(chǔ)的編碼器進(jìn)行不同的分配方法;并且在進(jìn)行篩選目標(biāo)存儲(chǔ)節(jié)點(diǎn)時(shí),不僅考慮了每個(gè)存儲(chǔ)節(jié)點(diǎn)的負(fù)載壓力,還考慮了每個(gè)存儲(chǔ)節(jié)點(diǎn)的存儲(chǔ)能力,通過計(jì)算建議寫入路數(shù),對(duì)于存儲(chǔ)能力強(qiáng)的存儲(chǔ)節(jié)點(diǎn),分配的寫入路數(shù)較多,對(duì)于存儲(chǔ)能力弱的存儲(chǔ)節(jié)點(diǎn),分配的寫入路數(shù)較少,采用壓力預(yù)估值算法計(jì)算每個(gè)存儲(chǔ)節(jié)點(diǎn)的壓力預(yù)估值,防止每個(gè)存儲(chǔ)節(jié)點(diǎn)的負(fù)載壓 力過大的情況,真正地實(shí)現(xiàn)了存儲(chǔ)負(fù)載的均衡,使得存儲(chǔ)集群的性能更加穩(wěn)定。
具體的,實(shí)際應(yīng)用中,為了更好的篩選出能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn),所述從該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中,結(jié)合預(yù)先記錄的節(jié)點(diǎn)同步信息中的存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù)和壓力預(yù)估算法,篩選能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn),可以包括如下步驟,具體如圖2所示:
需要說明的是,該編碼器軌跡表記錄有被分配過存儲(chǔ)節(jié)點(diǎn)的編碼器的編碼器標(biāo)識(shí)與所分配存儲(chǔ)節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系,則依據(jù)該編碼器軌跡表可以獲知該編碼器在上一次進(jìn)行視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求時(shí),所被分配的存儲(chǔ)節(jié)點(diǎn)。
s201:依據(jù)該編碼器分配軌跡表,從該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中,確定該編碼器上一次被分配的存儲(chǔ)節(jié)點(diǎn);
s202:將該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中該上一次被分配的存儲(chǔ)節(jié)點(diǎn)的下一存儲(chǔ)節(jié)點(diǎn)作為待判斷的當(dāng)前存儲(chǔ)節(jié)點(diǎn);
執(zhí)行如下篩選操作:
s203:從預(yù)先記錄的各個(gè)存儲(chǔ)節(jié)點(diǎn)的節(jié)點(diǎn)同步信息中,得到當(dāng)前存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù);
s204:計(jì)算當(dāng)前存儲(chǔ)節(jié)點(diǎn)的建議寫入路數(shù);
需要說明的是,為了實(shí)時(shí)跟進(jìn)存儲(chǔ)集群中存儲(chǔ)節(jié)點(diǎn)的負(fù)載信息,管理節(jié)點(diǎn)會(huì)可以實(shí)時(shí)根據(jù)存儲(chǔ)集群中存儲(chǔ)節(jié)點(diǎn)的反饋的節(jié)點(diǎn)同步信息,計(jì)算存儲(chǔ)節(jié)點(diǎn)的建議寫入路數(shù);也可以按照預(yù)設(shè)時(shí)間間隔根據(jù)已知的存儲(chǔ)節(jié)點(diǎn)的節(jié)點(diǎn)同步信息計(jì)算存儲(chǔ)節(jié)點(diǎn)的建議寫入路數(shù)。舉例而言,該預(yù)設(shè)時(shí)間間隔可以為3min。
需要說明的是,將所記錄的各個(gè)存儲(chǔ)節(jié)點(diǎn)的節(jié)點(diǎn)同步信息中,所確定出的該編碼器上一次被分配的存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù)減一。
具體的,在實(shí)際應(yīng)用中,所述計(jì)算當(dāng)前存儲(chǔ)節(jié)點(diǎn)的建議寫入路數(shù)所利用的計(jì)算方式可以為:
當(dāng)前存儲(chǔ)節(jié)點(diǎn)的建議寫入路數(shù)=該存儲(chǔ)集群中所有存儲(chǔ)節(jié)點(diǎn)的寫入路數(shù)總數(shù)*(該當(dāng)前存儲(chǔ)節(jié)點(diǎn)的總存儲(chǔ)空間/所有存儲(chǔ)節(jié)點(diǎn)的總存儲(chǔ)空間)。
舉例而言,該存儲(chǔ)集群中有5個(gè)存儲(chǔ)節(jié)點(diǎn),分別為a、b、c、d、e,其中,a有3000g的存儲(chǔ)空間,b有2000g的存儲(chǔ)空間,c有1000g的存儲(chǔ)空間,d有1000g的存儲(chǔ)空間,e有3000g的存儲(chǔ)空間,那么該存儲(chǔ)集群的存儲(chǔ)空間,即所有存儲(chǔ)節(jié)點(diǎn)的總存儲(chǔ)空間為:3000+2000+1000+1000+3000=10000g,同時(shí),當(dāng)前時(shí)刻該存儲(chǔ)集群中一共并發(fā)有1000路客戶端向該存儲(chǔ)集群寫入視頻數(shù)據(jù),因此,根據(jù)每個(gè)存儲(chǔ)節(jié)點(diǎn)的存儲(chǔ)空間計(jì)算的建議寫入路數(shù)分別為:a的建議寫入路數(shù)=1000*(3000/10000)=300路;b的建議寫入路數(shù)=200,c的建議寫入路數(shù)=100,d的建議寫入路數(shù)=100,e的建議寫入路數(shù)=300;
s205:判斷當(dāng)前寫入路數(shù)是否小于該建議寫入路數(shù),如果小于該建議寫入路數(shù),執(zhí)行步驟s206,如果大于等于該建議寫入路數(shù),執(zhí)行步驟s207;
舉例而言,當(dāng)管理節(jié)點(diǎn)接收到客戶端基于編碼器發(fā)送的視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求時(shí),輪轉(zhuǎn)分配到c,如果發(fā)現(xiàn)c的當(dāng)前寫入路數(shù)已經(jīng)為100路了,則執(zhí)行步驟s207;如果c當(dāng)前寫入路數(shù)未達(dá)到100路,則繼續(xù)執(zhí)行步驟s206。
s206:根據(jù)該壓力預(yù)估算法,計(jì)算該存儲(chǔ)節(jié)點(diǎn)的壓力預(yù)估值,繼續(xù)執(zhí)行步驟s208;
s207:判斷該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中所有存儲(chǔ)節(jié)點(diǎn)是否均被作為過待判斷的當(dāng)前存儲(chǔ)節(jié)點(diǎn),如果是,結(jié)束流程,如果否,執(zhí)行步驟s210;
s208:判斷該存儲(chǔ)節(jié)點(diǎn)的壓力預(yù)估值與預(yù)定閾值的大小,如果壓力預(yù)估值小于預(yù)定閾值,執(zhí)行步驟s209,如果壓力預(yù)估值不小于預(yù)定閾值,執(zhí)行步驟s207;
s209:將該當(dāng)前存儲(chǔ)節(jié)點(diǎn)作為能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn),結(jié)束篩選流程;
s210:將該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中該當(dāng)前存儲(chǔ)節(jié)點(diǎn)的下一存儲(chǔ)節(jié)點(diǎn)作為待判斷的當(dāng)前存儲(chǔ)節(jié)點(diǎn),繼續(xù)執(zhí)行步驟s203。
需要說明的是,采用輪轉(zhuǎn)的方式對(duì)該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中所有存儲(chǔ)節(jié)點(diǎn)進(jìn)行篩選判斷,可以避免存儲(chǔ)節(jié)點(diǎn)的遺漏。
計(jì)算存儲(chǔ)節(jié)點(diǎn)的當(dāng)前的建議寫入路數(shù),將每個(gè)存儲(chǔ)節(jié)點(diǎn)不同的存儲(chǔ)能力考慮進(jìn)篩選寫入存儲(chǔ)節(jié)點(diǎn)中,對(duì)于存儲(chǔ)能力強(qiáng)的存儲(chǔ)節(jié)點(diǎn),分配的寫入路數(shù)相對(duì)較多,對(duì)于存儲(chǔ)能力較弱的分配的寫入路數(shù)較少,再結(jié)合存儲(chǔ)節(jié)點(diǎn)的壓力預(yù)估 算法,可以實(shí)現(xiàn)對(duì)存儲(chǔ)負(fù)載的均衡。
具體的,在實(shí)際應(yīng)用中,為了更好的篩選出能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn),所述從該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中,根據(jù)壓力預(yù)估算法,篩選能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn),如圖3所示,可以包括:
s301:根據(jù)該節(jié)點(diǎn)同步信息按照該壓力預(yù)估算法,計(jì)算該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列的各個(gè)存儲(chǔ)節(jié)點(diǎn)的壓力預(yù)估值;
s302:從壓力預(yù)估值小于預(yù)定閾值的存儲(chǔ)節(jié)點(diǎn)中隨機(jī)選擇一存儲(chǔ)節(jié)點(diǎn)作為能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn)。
可以理解的是,壓力預(yù)估值是對(duì)存儲(chǔ)節(jié)點(diǎn)的負(fù)載壓力的一個(gè)預(yù)估判斷,在實(shí)際情況中,每個(gè)存儲(chǔ)節(jié)點(diǎn)都會(huì)有自身的極限值,當(dāng)該存儲(chǔ)節(jié)點(diǎn)的負(fù)載壓力在該極限值的范圍內(nèi),則可以正常進(jìn)行工作,當(dāng)超過該極限值時(shí),該存儲(chǔ)節(jié)點(diǎn)可能會(huì)出現(xiàn)過負(fù)荷的情況,此時(shí)該存儲(chǔ)節(jié)點(diǎn)會(huì)出現(xiàn)不能正常工作的狀況,所以,可以根據(jù)每個(gè)存儲(chǔ)節(jié)點(diǎn)的存儲(chǔ)能力進(jìn)行計(jì)算判斷該極限值,也可以在該極限值范圍內(nèi),根據(jù)實(shí)際情況,預(yù)設(shè)一個(gè)閾值,保證該存儲(chǔ)節(jié)點(diǎn)可以正常工作。
更進(jìn)一步的,在實(shí)際應(yīng)用中,所述預(yù)先記錄的節(jié)點(diǎn)同步信息還可以包括:存儲(chǔ)節(jié)點(diǎn)的cpu占用率、讀取視頻數(shù)據(jù)已占用的帶寬以及當(dāng)前讀取路數(shù)、寫入視頻數(shù)據(jù)已占用的帶寬、磁盤i/o占用率和內(nèi)存占用率;
所述關(guān)于存儲(chǔ)節(jié)點(diǎn)的壓力預(yù)估算法,可以包括:
a、根據(jù)存儲(chǔ)節(jié)點(diǎn)的該寫入視頻數(shù)據(jù)已占用的帶寬以及當(dāng)前寫入路數(shù),計(jì)算該存儲(chǔ)節(jié)點(diǎn)的寫壓力預(yù)估值;
b、根據(jù)該存儲(chǔ)節(jié)點(diǎn)的該讀取視頻數(shù)據(jù)已占用的帶寬以及當(dāng)前讀取路數(shù),計(jì)算該存儲(chǔ)節(jié)點(diǎn)的讀壓力;
可以理解的是,當(dāng)進(jìn)行視頻數(shù)據(jù)讀取時(shí),由于該視頻數(shù)據(jù)的寫入位置已經(jīng)確定,所以讀取位置也是已經(jīng)確定的。
具體的,在實(shí)際應(yīng)用中,所述計(jì)算該存儲(chǔ)節(jié)點(diǎn)的寫壓力預(yù)估值所利用的計(jì) 算方式可以為:
存儲(chǔ)節(jié)點(diǎn)的寫壓力預(yù)估值=該存儲(chǔ)集群中所有存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù)的總數(shù)*(該存儲(chǔ)節(jié)點(diǎn)的寫入視頻數(shù)據(jù)已占用的帶寬/該存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù));
所述計(jì)算該存儲(chǔ)節(jié)點(diǎn)的讀壓力所利用的計(jì)算方式可以為:
存儲(chǔ)節(jié)點(diǎn)的讀壓力=該存儲(chǔ)集群所有存儲(chǔ)節(jié)點(diǎn)的當(dāng)前讀取路數(shù)的總數(shù)*(該存儲(chǔ)節(jié)點(diǎn)的讀取視頻數(shù)據(jù)已占用的帶寬/該存儲(chǔ)節(jié)點(diǎn)的當(dāng)前讀取路數(shù))。
需要說明的是,在存儲(chǔ)節(jié)點(diǎn)進(jìn)行節(jié)點(diǎn)同步信息的同步時(shí),可以在管理節(jié)點(diǎn)每接收一次視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求時(shí),就同步一次;或者在存儲(chǔ)節(jié)點(diǎn)每寫入或?qū)懭胪瓿梢宦芬曨l數(shù)據(jù)時(shí),就同步一次;或者兩者結(jié)合;或者設(shè)定時(shí)間間隔,按照設(shè)定的時(shí)間間隔,進(jìn)行節(jié)點(diǎn)同步信息的同步;等等,這都是合理的。
舉例而言,存儲(chǔ)節(jié)點(diǎn)a當(dāng)前同步的節(jié)點(diǎn)同步信息中寫壓力為80mb/s,寫入路數(shù)為40路,可以計(jì)算得到每路寫入視頻數(shù)據(jù)占用2mb/s,如果管理節(jié)點(diǎn)中記錄的該存儲(chǔ)節(jié)點(diǎn)的寫入路數(shù)為20路,則計(jì)算得到該存儲(chǔ)節(jié)點(diǎn)的寫壓力預(yù)估值為20*2mb/s=40mb/s。
c、根據(jù)該存儲(chǔ)節(jié)點(diǎn)的該cpu占用率、該內(nèi)存占用率、該磁盤io占用率、該寫壓力預(yù)估值和該讀壓力,計(jì)算該存儲(chǔ)節(jié)點(diǎn)的壓力預(yù)估值。
需要說明的是,每當(dāng)管理節(jié)點(diǎn)接收到一個(gè)視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求之后,該管理節(jié)點(diǎn)都會(huì)根據(jù)每個(gè)存儲(chǔ)節(jié)點(diǎn)的節(jié)點(diǎn)同步信息,計(jì)算每個(gè)存儲(chǔ)節(jié)點(diǎn)的壓力預(yù)估值。
舉例而言,在實(shí)際應(yīng)用中,
存儲(chǔ)節(jié)點(diǎn)的壓力預(yù)估值=寫壓力預(yù)估值+讀壓力+cpu使用率+內(nèi)存使用率+磁盤i/o占用率;
對(duì)于閾值的設(shè)定,需要將各項(xiàng)參數(shù)的單位進(jìn)行統(tǒng)一,定義各項(xiàng)的上限進(jìn)行累加,如將各項(xiàng)的單位統(tǒng)一為1000,讀壓力與寫壓力預(yù)估值的上限各占500,cpu使用率、內(nèi)存使用率、磁盤i/o占用率的上線均定義為900,其中,各項(xiàng)的上限可以根據(jù)實(shí)際情況進(jìn)行調(diào)整,但最大不能超過所設(shè)定的1000,則
閾值=500+500+900+900+900=3700;
如果當(dāng)前存儲(chǔ)節(jié)點(diǎn)的節(jié)點(diǎn)同步信息中顯示壓力預(yù)估值為500mbps,讀壓力 300mbps,cpu使用率50%,內(nèi)存使用率20%,磁盤i/o占用率40%,統(tǒng)一單位后,進(jìn)行累加,存儲(chǔ)節(jié)點(diǎn)的壓力預(yù)估值=500+300+500+200+400=1900,小于閾值3700,則認(rèn)為該存儲(chǔ)節(jié)點(diǎn)此時(shí)可用;
需要說明的是,在計(jì)算讀壓力和寫壓力預(yù)估值時(shí),讀寫占用帶寬也需要考慮網(wǎng)卡數(shù)以及網(wǎng)卡帶寬。
舉例而言,如果該存儲(chǔ)節(jié)點(diǎn)為雙網(wǎng)卡,每個(gè)網(wǎng)卡為1gbps帶寬,則存儲(chǔ)節(jié)點(diǎn)的壓力預(yù)估值=500/2+300/2+500+200+400=1500。
可見,通過包含步驟a、b和c的壓力預(yù)估算法能夠得到各存儲(chǔ)節(jié)點(diǎn)的壓力預(yù)估值。
需要強(qiáng)調(diào)的是,上述的從該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中,結(jié)合預(yù)先記錄的節(jié)點(diǎn)同步信息中的存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù)和壓力預(yù)估算法,篩選能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn)的具體實(shí)現(xiàn)方式僅僅作為示例,并不應(yīng)該構(gòu)成對(duì)本發(fā)明實(shí)施例的限定;上述的從該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中,根據(jù)壓力預(yù)估算法,篩選能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn)的具體實(shí)現(xiàn)方式僅僅作為示例,并不應(yīng)該構(gòu)成對(duì)本發(fā)明實(shí)施例的限定;同樣的,上述的壓力預(yù)估算法的具體實(shí)現(xiàn)方式僅僅作為示例,并不應(yīng)該構(gòu)成對(duì)本發(fā)明實(shí)施例的限定。
相應(yīng)于上述方法實(shí)施例,本發(fā)明實(shí)施例還提供了一種視頻云存儲(chǔ)的存儲(chǔ)資源分配裝置,應(yīng)用于儲(chǔ)集群中的管理節(jié)點(diǎn),該存儲(chǔ)集群中包括至少一個(gè)管理節(jié)點(diǎn)和至少一個(gè)存儲(chǔ)節(jié)點(diǎn),如圖4所示,該裝置可以包括:
視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求接收模塊401:用于接收客戶端基于編碼器發(fā)送的視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求,該視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求攜帶待寫入資源池的資源池標(biāo)識(shí)和所基于編碼器的編碼器標(biāo)識(shí);
可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列獲取模塊402:用于從該資源池標(biāo)識(shí)所對(duì)應(yīng)的多個(gè)存儲(chǔ)節(jié)點(diǎn)中,篩選得到該視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求所對(duì)應(yīng)的可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列,其中,資源池標(biāo)識(shí)與存儲(chǔ)節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系被預(yù)先設(shè)置;
判斷模塊403:用于判斷該編碼器標(biāo)識(shí)是否被記錄于編碼器分配軌跡表中,如果是,觸發(fā)第一目標(biāo)存儲(chǔ)節(jié)點(diǎn)確定模塊404,否則,觸發(fā)第二目標(biāo)存儲(chǔ)節(jié)點(diǎn)確 定模塊405,其中,該編碼器分配軌跡表記錄有被分配過存儲(chǔ)節(jié)點(diǎn)的編碼器的編碼器標(biāo)識(shí)與所分配存儲(chǔ)節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系;
該第一目標(biāo)存儲(chǔ)節(jié)點(diǎn)確定模塊404:用于從該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中,結(jié)合預(yù)先記錄的節(jié)點(diǎn)同步信息中的存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù)和壓力預(yù)估算法,篩選能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn),其中,該壓力預(yù)估算法為:根據(jù)該節(jié)點(diǎn)同步信息對(duì)存儲(chǔ)節(jié)點(diǎn)進(jìn)行壓力預(yù)估的算法;
該第二目標(biāo)存儲(chǔ)節(jié)點(diǎn)確定模塊405:從該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中,根據(jù)該壓力預(yù)估算法,篩選能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn);
第一目標(biāo)存儲(chǔ)節(jié)點(diǎn)地址信息返回模塊406:用于如果從該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中篩選得到能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn),將該目標(biāo)存儲(chǔ)節(jié)點(diǎn)的地址信息基于該編碼器反饋給該客戶端,以使得該客戶端在該目標(biāo)存儲(chǔ)節(jié)點(diǎn)中寫入該視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求所對(duì)應(yīng)的視頻數(shù)據(jù)。
應(yīng)用本發(fā)明實(shí)施例,在選擇能夠作為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn)時(shí),對(duì)于第一次和非第一次請(qǐng)求視頻數(shù)據(jù)存儲(chǔ)的編碼器進(jìn)行不同的分配方法;并且在進(jìn)行篩選目標(biāo)存儲(chǔ)節(jié)點(diǎn)時(shí),不僅考慮了每個(gè)存儲(chǔ)節(jié)點(diǎn)的負(fù)載壓力,還考慮了每個(gè)存儲(chǔ)節(jié)點(diǎn)的存儲(chǔ)能力,通過考慮存儲(chǔ)節(jié)點(diǎn)當(dāng)前寫入路數(shù)篩選,采用壓力預(yù)估值算法計(jì)算每個(gè)存儲(chǔ)節(jié)點(diǎn)的壓力預(yù)估值,防止每個(gè)存儲(chǔ)節(jié)點(diǎn)的負(fù)載壓力過大的情況,真正地實(shí)現(xiàn)了存儲(chǔ)負(fù)載的均衡,使得存儲(chǔ)集群的性能更加穩(wěn)定。
相應(yīng)于上述方法實(shí)施例,為了更好的篩選能夠作為寫入節(jié)點(diǎn)的存儲(chǔ)節(jié)點(diǎn),具體的,所述預(yù)先記錄的節(jié)點(diǎn)同步信息還可以包括:存儲(chǔ)節(jié)點(diǎn)的cpu占用率、讀取視頻數(shù)據(jù)已占用的帶寬以及當(dāng)前讀取路數(shù)、寫入視頻數(shù)據(jù)已占用的帶寬、磁盤i/o占用率和內(nèi)存占用率;
本發(fā)明實(shí)施例所提供的視頻云存儲(chǔ)的存儲(chǔ)資源分配裝置的所述第一目標(biāo)存儲(chǔ)節(jié)點(diǎn)確定模塊404和所述第二目標(biāo)存儲(chǔ)節(jié)點(diǎn)確定模塊405所利用的該關(guān)于存儲(chǔ)節(jié)點(diǎn)的壓力預(yù)估算法,可以包括:
根據(jù)存儲(chǔ)節(jié)點(diǎn)的該寫入視頻數(shù)據(jù)已占用的帶寬以及當(dāng)前寫入路數(shù),計(jì)算該存儲(chǔ)節(jié)點(diǎn)的寫壓力預(yù)估值;
根據(jù)該存儲(chǔ)節(jié)點(diǎn)的該讀取視頻數(shù)據(jù)已占用的帶寬以及當(dāng)前讀取路數(shù),計(jì)算 該存儲(chǔ)節(jié)點(diǎn)的讀壓力;
根據(jù)該存儲(chǔ)節(jié)點(diǎn)的該cpu占用率、該內(nèi)存占用率、該磁盤io占用率、該寫壓力預(yù)估值和該讀壓力,計(jì)算該存儲(chǔ)節(jié)點(diǎn)的壓力預(yù)估值。
具體的,所述計(jì)算該存儲(chǔ)節(jié)點(diǎn)的寫壓力預(yù)估值所利用的計(jì)算方式可以為:
存儲(chǔ)節(jié)點(diǎn)的寫壓力預(yù)估值=該存儲(chǔ)集群中所有存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù)的總數(shù)*(該存儲(chǔ)節(jié)點(diǎn)的寫入視頻數(shù)據(jù)已占用的帶寬/該存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù));
所述計(jì)算該存儲(chǔ)節(jié)點(diǎn)的讀壓力所利用的計(jì)算方式可以為:
存儲(chǔ)節(jié)點(diǎn)的讀壓力=該存儲(chǔ)集群所有存儲(chǔ)節(jié)點(diǎn)的當(dāng)前讀取路數(shù)的總數(shù)*(該存儲(chǔ)節(jié)點(diǎn)的讀取視頻數(shù)據(jù)已占用的帶寬/該存儲(chǔ)節(jié)點(diǎn)的當(dāng)前讀取路數(shù))。
更進(jìn)一步地,本發(fā)明實(shí)施例所提供的視頻云存儲(chǔ)的存儲(chǔ)資源分配裝置,還可以包括:第二目標(biāo)存儲(chǔ)節(jié)點(diǎn)地址信息返回模塊;
該第二目標(biāo)存儲(chǔ)節(jié)點(diǎn)地址信息返回模塊:用于如果從該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中未篩選得到能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn),從該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中隨機(jī)選擇一個(gè)存儲(chǔ)節(jié)點(diǎn)作為目標(biāo)存儲(chǔ)節(jié)點(diǎn),將該目標(biāo)存儲(chǔ)節(jié)點(diǎn)的地址信息基于該編碼器反饋給該客戶端,以使得該客戶端在該目標(biāo)存儲(chǔ)節(jié)點(diǎn)中寫入該視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求所對(duì)應(yīng)的視頻數(shù)據(jù)。
具體的,所述視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求還可以包括:該客戶端的網(wǎng)絡(luò)地址;
該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列獲取模塊可以包括第一存儲(chǔ)節(jié)點(diǎn)確定子模塊和第一可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列獲取子模塊;
該第一存儲(chǔ)節(jié)點(diǎn)確定子模塊:用于從該資源池標(biāo)識(shí)所對(duì)應(yīng)的多個(gè)存儲(chǔ)節(jié)點(diǎn)中,確定該客戶端的網(wǎng)絡(luò)地址所對(duì)應(yīng)的存儲(chǔ)節(jié)點(diǎn);其中,預(yù)先設(shè)置有網(wǎng)絡(luò)地址段與存儲(chǔ)節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系;
該第一可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列獲取子模塊:用于從所確定出的該客戶端的網(wǎng)絡(luò)地址所對(duì)應(yīng)的存儲(chǔ)節(jié)點(diǎn)中,篩選得到該視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求所對(duì)應(yīng)的可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列。
更進(jìn)一步地,本發(fā)明實(shí)施例所提供的視頻云存儲(chǔ)的存儲(chǔ)資源分配裝置,還 可以包括:當(dāng)前路數(shù)加一模塊;
該當(dāng)前路數(shù)加一模塊:用于將該目標(biāo)存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù)加一,以更新該目標(biāo)存儲(chǔ)節(jié)點(diǎn)的節(jié)點(diǎn)同步信息。
相應(yīng)于上述方法實(shí)施例,具體的,本發(fā)明實(shí)施例所提供的視頻云存儲(chǔ)的存儲(chǔ)資源分配裝置的所述第一目標(biāo)存儲(chǔ)節(jié)點(diǎn)確定模塊404可以包括:
第二存儲(chǔ)節(jié)點(diǎn)確定子模塊:用于依據(jù)該編碼器分配軌跡表,從該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中,確定該編碼器上一次被分配的存儲(chǔ)節(jié)點(diǎn);
存儲(chǔ)節(jié)點(diǎn)處理子模塊:用于將該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中該上一次被分配的存儲(chǔ)節(jié)點(diǎn)的下一存儲(chǔ)節(jié)點(diǎn)作為待判斷的當(dāng)前存儲(chǔ)節(jié)點(diǎn),并執(zhí)行如下篩選操作:
從預(yù)先記錄的各個(gè)存儲(chǔ)節(jié)點(diǎn)的節(jié)點(diǎn)同步信息中,得到當(dāng)前存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù);
計(jì)算當(dāng)前存儲(chǔ)節(jié)點(diǎn)的建議寫入路數(shù);
判斷當(dāng)前寫入路數(shù)是否小于該建議寫入路數(shù),如果小于該建議寫入路數(shù),根據(jù)所述壓力預(yù)估算法,計(jì)算該存儲(chǔ)節(jié)點(diǎn)的壓力預(yù)估值,如果壓力預(yù)估值小于預(yù)定閾值,則將該當(dāng)前存儲(chǔ)節(jié)點(diǎn)作為能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn),結(jié)束篩選流程,如果壓力預(yù)估值不小于預(yù)定閾值,繼續(xù)將該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中該當(dāng)前存儲(chǔ)節(jié)點(diǎn)的下一存儲(chǔ)節(jié)點(diǎn)作為待判斷的當(dāng)前存儲(chǔ)節(jié)點(diǎn)并執(zhí)行該篩選操作,直至該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中所有存儲(chǔ)節(jié)點(diǎn)均被作為過待判斷的當(dāng)前存儲(chǔ)節(jié)點(diǎn);
如果大于等于該建議寫入路數(shù),繼續(xù)將該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中該當(dāng)前存儲(chǔ)節(jié)點(diǎn)的下一存儲(chǔ)節(jié)點(diǎn)作為待判斷的當(dāng)前存儲(chǔ)節(jié)點(diǎn)并執(zhí)行該篩選操作,直至該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列中所有存儲(chǔ)節(jié)點(diǎn)均被作為過待判斷的當(dāng)前存儲(chǔ)節(jié)點(diǎn)。
具體的,所述建議寫入路數(shù)計(jì)算模塊所利用的計(jì)算方式可以為:
當(dāng)前存儲(chǔ)節(jié)點(diǎn)的建議寫入路數(shù)=該存儲(chǔ)集群中所有存儲(chǔ)節(jié)點(diǎn)的寫入路數(shù)總數(shù)*(該當(dāng)前存儲(chǔ)節(jié)點(diǎn)的總存儲(chǔ)空間/所有存儲(chǔ)節(jié)點(diǎn)的總存儲(chǔ)空間)。
具體的,所述第二目標(biāo)存儲(chǔ)節(jié)點(diǎn)確定模塊405包括:壓力預(yù)估值計(jì)算子模塊和目標(biāo)存儲(chǔ)節(jié)點(diǎn)確定子模塊;
該壓力預(yù)估值計(jì)算子模塊:用于根據(jù)該節(jié)點(diǎn)同步信息按照該壓力預(yù)估算法,計(jì)算該可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列的各個(gè)存儲(chǔ)節(jié)點(diǎn)的壓力預(yù)估值;
該目標(biāo)存儲(chǔ)節(jié)點(diǎn)確定子模塊:用于從壓力預(yù)估值小于預(yù)定閾值的存儲(chǔ)節(jié)點(diǎn)中隨機(jī)選擇一存儲(chǔ)節(jié)點(diǎn)作為能夠被分配為寫入節(jié)點(diǎn)的目標(biāo)存儲(chǔ)節(jié)點(diǎn)。
本發(fā)明實(shí)施例所提供的視頻云存儲(chǔ)的存儲(chǔ)資源分配裝置還可以包括:當(dāng)前寫入路數(shù)減一模塊;
該當(dāng)前寫入路數(shù)減一模塊:用于將所記錄的各個(gè)存儲(chǔ)節(jié)點(diǎn)的節(jié)點(diǎn)同步信息中,所確定出的該編碼器上一次被分配的存儲(chǔ)節(jié)點(diǎn)的當(dāng)前寫入路數(shù)減一。
具體的,所述可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列獲取模塊402,包括第三存儲(chǔ)節(jié)點(diǎn)確定子模塊和第二可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列確定子模塊;
該第三存儲(chǔ)節(jié)點(diǎn)確定子模塊:用于從該資源池標(biāo)識(shí)所對(duì)應(yīng)的多個(gè)存儲(chǔ)節(jié)點(diǎn)中,根據(jù)預(yù)先記錄的各個(gè)存儲(chǔ)節(jié)點(diǎn)的節(jié)點(diǎn)同步信息,確定符合可分配條件的至少一個(gè)存儲(chǔ)節(jié)點(diǎn);
該第二可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列確定子模塊:用于將符合可分配條件的至少一個(gè)存儲(chǔ)節(jié)點(diǎn)構(gòu)建為該視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求所對(duì)應(yīng)的可分配存儲(chǔ)節(jié)點(diǎn)隊(duì)列。
具體的,該節(jié)點(diǎn)同步信息還包括:存儲(chǔ)節(jié)點(diǎn)的是否在線信息、運(yùn)行狀態(tài)是否正常信息以及剩余存儲(chǔ)空間信息;
該可分配條件為:同步信息表明存儲(chǔ)節(jié)點(diǎn)在線、運(yùn)行狀態(tài)正常以及存在剩余存儲(chǔ)空間;
或者,
該節(jié)點(diǎn)同步信息包括可以:存儲(chǔ)節(jié)點(diǎn)的是否在線信息、運(yùn)行狀態(tài)是否正常信息、剩余存儲(chǔ)空間信息、是否正在格式化信息、當(dāng)前寫入路數(shù)以及最大寫入路數(shù);
該可分配條件可以為:同步信息表明存儲(chǔ)節(jié)點(diǎn)在線、運(yùn)行狀態(tài)正常、存在剩余存儲(chǔ)空間、未處于格式化以及當(dāng)前寫入路數(shù)小于最大寫入路數(shù)。
具體的,該視頻數(shù)據(jù)存儲(chǔ)請(qǐng)求由該客戶端基于至少一個(gè)編碼器按預(yù)設(shè)時(shí)間間隔發(fā)送。
對(duì)于系統(tǒng)/裝置實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施方式中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以存儲(chǔ)于計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,這里所稱得的存儲(chǔ)介質(zhì),如:rom/ram、磁碟、光盤等。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。