一個(gè)基于云計(jì)算的視頻會議的轉(zhuǎn)碼分發(fā)系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一個(gè)基于云計(jì)算的視頻會議的轉(zhuǎn)碼分發(fā)系統(tǒng),包括控制模塊、調(diào)度模塊、轉(zhuǎn)碼模塊、數(shù)據(jù)收發(fā)模塊以及資源監(jiān)測模塊。系統(tǒng)部署于云端的虛擬機(jī)中。調(diào)度模塊將流水線中抽象節(jié)點(diǎn)部署到實(shí)際虛擬機(jī)當(dāng)中。數(shù)據(jù)收發(fā)、轉(zhuǎn)碼模塊在調(diào)度模塊的控制下實(shí)現(xiàn)對視頻流的實(shí)際轉(zhuǎn)碼、分發(fā)操作。與此同時(shí),資源監(jiān)測模塊實(shí)時(shí)監(jiān)測各虛擬機(jī)狀態(tài),供調(diào)度模塊進(jìn)行計(jì)算任務(wù)分配決策使用。本發(fā)明利用云計(jì)算服務(wù)有效解決了視頻會議中多種類客戶端導(dǎo)致的視頻轉(zhuǎn)碼問題。
【專利說明】一個(gè)基于云計(jì)算的視頻會議的轉(zhuǎn)碼分發(fā)系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于視頻會議領(lǐng)域,具體地說,是一個(gè)基于云計(jì)算的轉(zhuǎn)碼分發(fā)系統(tǒng),通過對每個(gè)任務(wù)單元和虛擬機(jī)的控制調(diào)度實(shí)現(xiàn)轉(zhuǎn)碼分發(fā)的低延遲并且降低功耗。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)硬件和網(wǎng)絡(luò)技術(shù)的高速發(fā)展,傳統(tǒng)的通訊方式如電話、傳真等已無法滿足人們深層次的交流需求,近年來以聲音和視頻作為主要傳輸對象的多媒體通信成為當(dāng)今通信領(lǐng)域研究的熱點(diǎn)。視頻會議系統(tǒng)作為一種現(xiàn)代化的辦公系統(tǒng),它可以將不同會場的實(shí)時(shí)場景和語音互連起來,使各與會者有“面對面”交談的感覺。伴隨著通信技術(shù)的進(jìn)一步提升,高質(zhì)量的多媒體視頻會議也成為一種發(fā)展趨勢,被越來越多的人們所需求,然而高質(zhì)量的視頻會議系統(tǒng)技術(shù)還不夠成熟,在一個(gè)會議中支持大量的參與者和多路高清的視頻十分困難。
[0003]與此同時(shí),云計(jì)算作為一種新興的事物,僅僅5年,就已經(jīng)成為了 IT行業(yè)最流行的技術(shù)和發(fā)展趨勢。Google、Amazon、IBM和微軟等IT巨頭們以前所未有的速度和規(guī)模推動云計(jì)算技術(shù)和產(chǎn)品的普及,一些學(xué)術(shù)活動也迅速將云計(jì)算提上日程。通常人們把云計(jì)算當(dāng)作一種商業(yè)計(jì)算模型,它將計(jì)算任務(wù)分布在大量計(jì)算機(jī)構(gòu)成的資源池上,使用戶能夠按需獲取計(jì)算力、存儲空間和信息服務(wù)。按照云計(jì)算的服務(wù)類型可分為三類:將基礎(chǔ)設(shè)施作為服務(wù)IaaS、將平臺作為服務(wù)PaaS和將軟件作為服務(wù)SaaS。
[0004]以往的視頻會議系統(tǒng)架構(gòu)往往是基于簡單的C/S結(jié)構(gòu),使用一個(gè)網(wǎng)關(guān)來進(jìn)行數(shù)據(jù)的轉(zhuǎn)發(fā),這種集中式結(jié)構(gòu)在性能和擴(kuò)展上存在很大的弊端。隨著云計(jì)算的火熱發(fā)展,基于云計(jì)算的視頻會議架構(gòu)成為視頻會議領(lǐng)域的研究熱點(diǎn),云計(jì)算在部署、負(fù)載均衡以及擴(kuò)展等方面存在很大的優(yōu)勢,同時(shí)軟件即服務(wù)的模式也可以將視頻會議中大量的計(jì)算負(fù)載集中到云計(jì)算平臺中去完成,從而大大降低了視頻會議中各個(gè)終端的多媒體處理壓力。在云平臺中實(shí)現(xiàn)多媒體轉(zhuǎn)碼也是視頻會議的發(fā)展趨勢。
【發(fā)明內(nèi)容】
[0005]本發(fā)明要解決的技術(shù)問題為:克服現(xiàn)有技術(shù)的不足,針對視頻會議中多類客戶端的轉(zhuǎn)碼分發(fā)問題,提出一個(gè)基于云計(jì)算的視頻會議轉(zhuǎn)碼分發(fā)系統(tǒng),該系統(tǒng)支持在視頻會議中,根據(jù)客戶端不同的種類和地域選擇合適的轉(zhuǎn)碼分發(fā)策略,解決了視頻會議中多種類客戶端導(dǎo)致的視頻轉(zhuǎn)碼問題。
[0006]本發(fā)明解決上述技術(shù)問題采用的技術(shù)方案為:一個(gè)基于云計(jì)算的視頻會議的轉(zhuǎn)碼分發(fā)系統(tǒng),其特點(diǎn)在于:它包括資源監(jiān)測模塊、數(shù)據(jù)收發(fā)模塊、轉(zhuǎn)碼模塊、控制模塊、調(diào)度模塊。
[0007]所述的資源監(jiān)測模塊負(fù)責(zé)對系統(tǒng)中的資源進(jìn)行監(jiān)測,其資源監(jiān)測的層次分為兩個(gè),第一層為監(jiān)測云計(jì)算平臺中各虛擬機(jī)的整體資源使用情況,第二層為監(jiān)測各個(gè)計(jì)算任務(wù)的資源使用情況;所需監(jiān)測的資源包括CPU利用率、內(nèi)存使用情況和網(wǎng)絡(luò)帶寬使用情況;資源監(jiān)測模塊周期性的將這些資源信息進(jìn)行分析整理并匯報(bào)給調(diào)度模塊;
[0008]所描述的數(shù)據(jù)收發(fā)模塊由若干個(gè)數(shù)據(jù)收發(fā)網(wǎng)關(guān)單元組成,每個(gè)網(wǎng)關(guān)單元負(fù)責(zé)接收和分發(fā)若干路視頻流,所有網(wǎng)關(guān)單元均受控制模塊的統(tǒng)一管理和控制;每個(gè)客戶端在登陸時(shí),控制模塊根據(jù)調(diào)度模塊的調(diào)度結(jié)果為該客戶端指定一個(gè)網(wǎng)關(guān)單元;客戶端與該網(wǎng)關(guān)單元成功連接后,通過該網(wǎng)關(guān)單元向其他客戶端發(fā)送自身的視頻流及接收其他客戶端發(fā)送的視頻流;
[0009]所述的轉(zhuǎn)碼模塊,負(fù)責(zé)對視頻流參數(shù)進(jìn)行修改;轉(zhuǎn)碼模塊內(nèi)部按功能可分為如下基本轉(zhuǎn)碼單元,分別是:解碼單元、編碼單元、視頻縮放單元、ROI提取單元、幀率變更單元、多路視頻混合單元、傳輸協(xié)議打包單元、傳輸協(xié)議解包單元;
[0010]所述的控制模塊負(fù)責(zé)響應(yīng)客戶端發(fā)出的視頻接收指令,根據(jù)視頻流接收方客戶端所在網(wǎng)關(guān)、視頻流發(fā)送方客戶端所在網(wǎng)關(guān)以及接收方對視頻流的參數(shù)要求,生成一條轉(zhuǎn)碼分發(fā)流水線;該流水線的輸入端為視頻流發(fā)送方客戶端所連接的網(wǎng)關(guān)單元即發(fā)送網(wǎng)關(guān),輸出端為視頻流接收方客戶端所連接的網(wǎng)關(guān)單元即接收網(wǎng)關(guān),在輸入端和輸出端之間可以包括零個(gè)或多個(gè)基本轉(zhuǎn)碼單元;所述的接收方對視頻流的參數(shù)要求,是指接收方對視頻流的大小、幀率、布局、碼率的要求;
[0011]所述的調(diào)度模塊負(fù)責(zé)將轉(zhuǎn)發(fā)分發(fā)流水線上每一級任務(wù)單元分配到最合適的虛擬機(jī)中執(zhí)行。
[0012]進(jìn)一步的,所述的調(diào)度模塊擁有一個(gè)資源預(yù)測模型,該模型包含三個(gè)階段:學(xué)習(xí)階段、調(diào)度階段、聚合階段 。
[0013]進(jìn)一步的,所述調(diào)度模塊的學(xué)習(xí)階段通過對預(yù)先準(zhǔn)備好的學(xué)習(xí)數(shù)據(jù)集進(jìn)行學(xué)習(xí)獲取預(yù)測模型所需要的參數(shù),該學(xué)習(xí)過程進(jìn)一步包含以下步驟:
[0014]步驟1.對轉(zhuǎn)碼分發(fā)系統(tǒng)中提供的所有任務(wù)單元按照功能分類,并給出每類任務(wù)單元涉及的所有參數(shù);
[0015]步驟2.在虛擬機(jī)上運(yùn)行每種任務(wù)單元(Ti)來處理學(xué)習(xí)數(shù)據(jù)集,同時(shí)資源監(jiān)測模塊需同步監(jiān)測該任務(wù)單元占用的各項(xiàng)資源;
[0016]步驟3.對步驟2中運(yùn)行的任務(wù)單元枚舉其參數(shù)的所有子集,并對每個(gè)參數(shù)子集Pi=Ip1, P2, -PkI計(jì)算多元線性回歸,計(jì)算參數(shù)子集與資源監(jiān)測模塊監(jiān)測到的資源項(xiàng)Resi的線性相關(guān)性,得到每個(gè)參數(shù)子集對應(yīng)的回歸系數(shù)集合Ai={ai,a2…,ak,b}及相關(guān)系數(shù)Ri ;
[0017]步驟4.從步驟3中得到的所有回歸系數(shù)集合Ai和相關(guān)系數(shù)Ri中,選擇相關(guān)系數(shù)Ri最大的一對,其對應(yīng)的參數(shù)子集作為該任務(wù)單元的預(yù)測參數(shù)集合,回歸系數(shù)作為線性預(yù)測公式的各項(xiàng)系數(shù),即Ti類型任務(wù)單元對Resi資源的需求預(yù)測值為Pre (Resi, Ti) =a1*p1+a2*p2+...+ak氺pk+b0
[0018]進(jìn)一步的,所述調(diào)度模塊的調(diào)度階段根據(jù)資源按需調(diào)度算法對任務(wù)單元進(jìn)行調(diào)度,將任務(wù)單元按照其所需資源的多少分配到最適合的虛擬機(jī)上運(yùn)行,該資源按需調(diào)度算法進(jìn)一步包含如下步驟:
[0019]步驟1.調(diào)度模塊從控制模塊獲得需要調(diào)度的任務(wù)單元數(shù)量,以及每個(gè)任務(wù)單元的類型和參數(shù)值;
[0020]步驟2.調(diào)度模塊通過資源預(yù)測模型得到的預(yù)測公式對新增的任務(wù)單元所需的各項(xiàng)資源進(jìn)行預(yù)測,得到該任務(wù)單元所需的資源集合Res= {Pre (CPU),Pre (Memory),Pre (Network Bandwidth)};
[0021]步驟3.將現(xiàn)有的虛擬機(jī)按可用資源的多少降序排列形成列隊(duì)Q ;
[0022]步驟4.比較新增任務(wù)的所需資源Res是否超出隊(duì)首虛擬機(jī)Q(O)的可用資源;若未超過,則將新增的任務(wù)單元分配到該虛擬機(jī)中,轉(zhuǎn)步驟6 ;否則,按步驟5將Q(O)上的任務(wù)進(jìn)行遷移到隊(duì)列Q的其他虛擬機(jī)中,直到Q(O)有足夠的資源承擔(dān)新增任務(wù),并將新增任務(wù)分配到該虛擬機(jī)中,轉(zhuǎn)步驟6 ;若其他虛擬機(jī)沒有足夠的資源承擔(dān)遷移的任務(wù),則向系統(tǒng)申請新的虛擬機(jī)資源,將新增任務(wù)分配到新的虛擬機(jī)中,轉(zhuǎn)步驟6 ;
[0023]步驟5.遷移時(shí),每個(gè)待遷移的任務(wù)視為新增任務(wù),將除Q (O)以外的所有虛擬機(jī)按步驟3重新排列形成隊(duì)列Q’,并在該隊(duì)列上執(zhí)行步驟4 ;
[0024]步驟6.調(diào)度完成后對所有結(jié)點(diǎn)進(jìn)行檢查,若可用資源最多的虛擬機(jī)與可用資源最少的虛擬機(jī)的資源差值超過了 Threshold,則將可用資源最少的虛擬機(jī)上的任務(wù)按步驟5進(jìn)行遷移,直到兩者間可用資源的差值小于閾值。
[0025]進(jìn)一步的,所述調(diào)度模塊的聚合階段負(fù)責(zé)在所有虛擬機(jī)均處于輕負(fù)載的狀態(tài)下,將任務(wù)單元聚合到少數(shù)幾臺虛擬機(jī)中以降低能耗;該聚合步驟進(jìn)一步包括如下步驟:
[0026]步驟1.調(diào)度模塊根據(jù)資源監(jiān)測模塊返回參數(shù),得到當(dāng)前資源最多及負(fù)載最輕的虛擬機(jī);若滿足聚合條件,則執(zhí)行步驟2 ;
[0027]步驟2.針對負(fù)載最輕的虛擬機(jī)即源虛擬機(jī)中的每一個(gè)任務(wù)單元,根據(jù)調(diào)度步驟尋找另一臺合適的虛擬機(jī)即目標(biāo)虛擬機(jī)接收該任務(wù)單元;
[0028]步驟3.目標(biāo)虛擬機(jī)啟動該任務(wù)單元;
[0029]步驟4.源虛擬機(jī)終止該任務(wù)單元;
[0030]步驟5.關(guān)閉源虛擬機(jī);
[0031]步驟6.檢查當(dāng)如各虛擬機(jī)狀態(tài)是否仍滿足聚合條件,若是,則重復(fù)步驟1-5。
[0032]本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于:
[0033](I)、本發(fā)明提出的轉(zhuǎn)碼系統(tǒng)可實(shí)現(xiàn)用戶端到用戶端的雙向在線實(shí)時(shí)轉(zhuǎn)碼,特別適合于應(yīng)用在視頻會議等需要雙向?qū)崟r(shí)通信的場合中。
[0034](2)、本發(fā)明提出的調(diào)度模塊的資源預(yù)測模型可以將轉(zhuǎn)碼任務(wù)在云計(jì)算環(huán)境下進(jìn)行按需配置,從而實(shí)現(xiàn)對云計(jì)算資源的充分利用。
【專利附圖】
【附圖說明】
[0035]圖1為本發(fā)明所述系統(tǒng)的模塊結(jié)構(gòu)圖。
[0036]圖2為本發(fā)明的調(diào)度模塊的資源預(yù)測模型的學(xué)習(xí)階段流程圖。
[0037]圖3為本發(fā)明的調(diào)度模塊的資源預(yù)測模型的調(diào)度階段流程圖。
[0038]圖4為本發(fā)明的調(diào)度模塊的資源預(yù)測模型的聚合階段流程圖。
[0039]圖5為本發(fā)明的資源監(jiān)測模塊的結(jié)構(gòu)圖。
[0040]圖6為本發(fā)明的數(shù)據(jù)收發(fā)模塊的示意圖。
【具體實(shí)施方式】
[0041]下面結(jié)合附圖以及具體實(shí)施例進(jìn)一步說明本發(fā)明。
[0042]如圖1所示,本發(fā)明包括資源監(jiān)測模塊、數(shù)據(jù)收發(fā)模塊、轉(zhuǎn)碼模塊、控制模塊、調(diào)度模塊。資源監(jiān)測模塊是用于監(jiān)測云計(jì)算平臺中的資源使用情況,它分為兩個(gè)層次:第一層是物理資源層,負(fù)責(zé)監(jiān)測搭載云計(jì)算平臺的物理服務(wù)器集群的CPU和內(nèi)存等資源的使用情況,第二層是虛擬化資源層,監(jiān)測正在運(yùn)行的虛擬機(jī)內(nèi)部的CPU和內(nèi)存等資源的使用,資源監(jiān)測模塊周期性的將這些資源信息進(jìn)行分析整理并匯報(bào)給調(diào)度模塊;數(shù)據(jù)收發(fā)模塊負(fù)責(zé)接收轉(zhuǎn)發(fā)客戶端和其他收發(fā)模塊發(fā)送的視頻流,并根據(jù)配置信息將視頻流轉(zhuǎn)發(fā)到目標(biāo)單元,目標(biāo)單元包括轉(zhuǎn)碼模塊,客戶端,其他數(shù)據(jù)收發(fā)模塊;轉(zhuǎn)碼模塊負(fù)責(zé)對視頻流參數(shù)進(jìn)行修改,轉(zhuǎn)碼模塊采用Filter設(shè)計(jì)模式實(shí)現(xiàn)轉(zhuǎn)碼進(jìn)程??芍С值霓D(zhuǎn)碼內(nèi)容包括視頻縮放、ROI提取、幀率變更、多路視頻混合;控制模塊負(fù)責(zé)響應(yīng)客戶端發(fā)出的視頻接收指令,根據(jù)視頻流接收方客戶端所在網(wǎng)關(guān)、視頻流發(fā)送方客戶端所在網(wǎng)關(guān)以及接收方對視頻流的參數(shù)要求,生成一條轉(zhuǎn)碼分發(fā)流水線,將流水線發(fā)送給調(diào)度模塊;調(diào)度模塊負(fù)責(zé)根據(jù)資源預(yù)測模型將轉(zhuǎn)碼分發(fā)流水線上每一級任務(wù)單元分配到最合適的虛擬機(jī)中執(zhí)行。
[0043]如圖2所示,本發(fā)明的基于云計(jì)算的視頻會議資源預(yù)測模型的學(xué)習(xí)階段流程圖,進(jìn)一步包括以下步驟:
[0044]步驟1.對轉(zhuǎn)碼分發(fā)系統(tǒng)中提供的所有任務(wù)單元按照功能分類,并給出每類任務(wù)單元涉及的所有參數(shù);
[0045]步驟2.在虛擬機(jī)上運(yùn)行每種任務(wù)單元(Ti)來處理學(xué)習(xí)數(shù)據(jù)集,同時(shí)資源監(jiān)測模塊需同步監(jiān)測該任務(wù)單元占用的各項(xiàng)資源;
[0046]步驟3.對步驟2中運(yùn)行的任務(wù)單元枚舉其參數(shù)的所有子集,并對每個(gè)參數(shù)子集Pi=Ip1, P2, -PkI計(jì)算多元線性回歸,計(jì)算參數(shù)子集與資源監(jiān)測模塊監(jiān)測到的資源項(xiàng)Resi的線性相關(guān)性,得到每個(gè)參數(shù)子集對應(yīng)的回歸系數(shù)集合Ai={ai,a2…,ak,b}及相關(guān)系數(shù)Ri ;
[0047]步驟4.從步驟3中得到的所有回歸系數(shù)集合Ai和相關(guān)系數(shù)Ri中,選擇相關(guān)系數(shù)Ri最大的一對,其對應(yīng)的參數(shù)子集作為該任務(wù)單元的預(yù)測參數(shù)集合,回歸系數(shù)作為線性預(yù)測公式的各項(xiàng)系`數(shù),即Ti類型任務(wù)單元對Resi資源的需求預(yù)測值為Pre (Resi, Ti) =a1*p1+a2*p2+...+ak*pk+b ;
[0048]如圖3所示,本發(fā)明的基于云計(jì)算的視頻會議資源預(yù)測模型的調(diào)度階段流程圖,進(jìn)一步包括以下步驟:
[0049]步驟1.調(diào)度模塊從控制模塊獲得需要調(diào)度的任務(wù)單元數(shù)量,以及每個(gè)任務(wù)單元的類型和參數(shù)值;
[0050]步驟2.調(diào)度模塊通過資源預(yù)測模型得到的預(yù)測公式對新增的任務(wù)單元所需的各項(xiàng)資源進(jìn)行預(yù)測,得到該任務(wù)單元所需的資源集合Res= {Pre (CPU),Pre (Memory),Pre (Network Bandwidth)};
[0051]步驟3.將現(xiàn)有的虛擬機(jī)按可用資源的多少降序排列形成列隊(duì)Q ;
[0052]步驟4.比較新增任務(wù)的所需資源Res是否超出隊(duì)首虛擬機(jī)Q(O)的可用資源;若未超過,則將新增的任務(wù)單元分配到該虛擬機(jī)中,轉(zhuǎn)步驟6 ;否則,按步驟5將Q(O)上的任務(wù)進(jìn)行遷移到隊(duì)列Q的其他虛擬機(jī)中,直到Q(O)有足夠的資源承擔(dān)新增任務(wù),并將新增任務(wù)分配到該虛擬機(jī)中,轉(zhuǎn)步驟6 ;若其他虛擬機(jī)沒有足夠的資源承擔(dān)遷移的任務(wù),則向系統(tǒng)申請新的虛擬機(jī)資源,將新增任務(wù)分配到新的虛擬機(jī)中,轉(zhuǎn)步驟6 ;
[0053]步驟5.遷移時(shí),每個(gè)待遷移的任務(wù)視為新增任務(wù),將除Q (O)以外的所有虛擬機(jī)按步驟3重新排列形成隊(duì)列Q’,并在該隊(duì)列上執(zhí)行步驟4 ;[0054]步驟6.調(diào)度完成后對所有結(jié)點(diǎn)進(jìn)行檢查,若可用資源最多的虛擬機(jī)與可用資源最少的虛擬機(jī)的資源差值超過了 Threshold,則將可用資源最少的虛擬機(jī)上的任務(wù)按步驟5進(jìn)行遷移,直到兩者間可用資源的差值小于閾值。
[0055]如圖4所示,本發(fā)明的基于云計(jì)算的視頻會議資源預(yù)測模型的聚合階段流程圖,進(jìn)一步包括以下步驟:
[0056]步驟1.調(diào)度模塊根據(jù)資源監(jiān)測模塊返回參數(shù),得到當(dāng)前資源最多及負(fù)載最輕的虛擬機(jī);若滿足聚合條件,則執(zhí)行步驟2 ;
[0057]步驟2.針對負(fù)載最輕的虛擬機(jī)即源虛擬機(jī)中的每一個(gè)任務(wù)單元,根據(jù)調(diào)度步驟尋找另一臺合適的虛擬機(jī)即目標(biāo)虛擬機(jī)接收該任務(wù)單元;
[0058]步驟3.目標(biāo)虛擬機(jī)啟動該任務(wù)單元;
[0059]步驟4.源虛擬機(jī)終止該任務(wù)單元;
[0060]步驟5.關(guān)閉源虛擬機(jī);
[0061]步驟6.檢查當(dāng)如各虛擬機(jī)狀態(tài)是否仍滿足聚合條件,若是,則重復(fù)步驟1-5。
[0062]如圖5所示,本發(fā)明的資源監(jiān)測模塊的結(jié)構(gòu)圖。資源監(jiān)測模塊是運(yùn)行在物理機(jī)和虛擬機(jī)中的監(jiān)測程序,負(fù)責(zé)各項(xiàng)計(jì)算資源狀態(tài)的收集與分析。資源監(jiān)測模塊不僅僅將對虛擬機(jī)上各項(xiàng)資源的整理狀況進(jìn)行監(jiān)測,還對轉(zhuǎn)碼服務(wù)進(jìn)程做更細(xì)致的信息收集。這些資源信息會被資源監(jiān)測模塊收集整理,這些資源的狀態(tài)信息將作為調(diào)度模塊調(diào)度的基礎(chǔ)。
[0063]如表1所示,為資源監(jiān)測模塊監(jiān)測的資源表,每一行對應(yīng)一項(xiàng)監(jiān)測參數(shù),包括“CPU使用率”,“內(nèi)存利用率”,“帶寬”等。
[0064]表1為本發(fā)明的資源監(jiān)測模塊的監(jiān)測資源表
[0065]
【權(quán)利要求】
1.一個(gè)基于云計(jì)算的視頻會議的轉(zhuǎn)碼分發(fā)系統(tǒng),其特征在于:包括資源監(jiān)測模塊、數(shù)據(jù)收發(fā)模塊、轉(zhuǎn)碼模塊、控制模塊和調(diào)度模塊,其中, 所述的資源監(jiān)測模塊負(fù)責(zé)對系統(tǒng)中的資源進(jìn)行監(jiān)測,其資源監(jiān)測的層次分為兩個(gè),第一層為監(jiān)測云計(jì)算平臺中各虛擬機(jī)的整體資源使用情況,第二層為監(jiān)測各個(gè)計(jì)算任務(wù)的資源使用情況;所需監(jiān)測的資源包括CPU利用率、內(nèi)存使用情況和網(wǎng)絡(luò)帶寬使用情況;資源監(jiān)測模塊周期性的將這些資源信息進(jìn)行分析整理并匯報(bào)給調(diào)度模塊; 所描述的數(shù)據(jù)收發(fā)模塊由若干個(gè)數(shù)據(jù)收發(fā)網(wǎng)關(guān)單元組成,每個(gè)網(wǎng)關(guān)單元負(fù)責(zé)接收和分發(fā)若干路視頻流,所有網(wǎng)關(guān)單元均受控制模塊的統(tǒng)一管理和控制;每個(gè)客戶端在登陸時(shí),控制模塊根據(jù)調(diào)度模塊的調(diào)度結(jié)果為該客戶端指定一個(gè)網(wǎng)關(guān)單元;客戶端與該網(wǎng)關(guān)單元成功連接后,通過該網(wǎng)關(guān)單元向其他客戶端發(fā)送自身的視頻流及接收其他客戶端發(fā)送的視頻流; 所述的轉(zhuǎn)碼模塊,負(fù)責(zé)對視頻流參數(shù)進(jìn)行修改;轉(zhuǎn)碼模塊內(nèi)部按功能可分為如下基本轉(zhuǎn)碼單元,分別是:解碼單元、編碼單元、視頻縮放單元、ROI提取單元、幀率變更單元、多路視頻混合單元、傳輸協(xié)議打包單元、傳輸協(xié)議解包單元; 所述的控制模塊負(fù)責(zé)響應(yīng)客戶端發(fā)出的視頻接收指令,根據(jù)視頻流接收方客戶端所在網(wǎng)關(guān)、視頻流發(fā)送方客戶端所在網(wǎng)關(guān)以及接收方對視頻流的參數(shù)要求,生成一條轉(zhuǎn)碼分發(fā)流水線;該流水線的輸入端為視頻流發(fā)送方客戶端所連接的網(wǎng)關(guān)單元即發(fā)送網(wǎng)關(guān),輸出端為視頻流接收方客戶端所連接的網(wǎng)關(guān)單元即接收網(wǎng)關(guān),在輸入端和輸出端之間可以包括零個(gè)或多個(gè)基本轉(zhuǎn)碼單 元;所述的接收方對視頻流的參數(shù)要求,是指接收方對視頻流的大小、幀率、布局、碼率的要求; 所述的調(diào)度模塊負(fù)責(zé)將轉(zhuǎn)碼分發(fā)流水線上每一級任務(wù)單元分配到最合適的虛擬機(jī)中執(zhí)行。
2.根據(jù)權(quán)利要求1所述的一個(gè)基于云計(jì)算的視頻會議的轉(zhuǎn)碼分發(fā)系統(tǒng),其特征在于:所述的調(diào)度模塊擁有一個(gè)資源預(yù)測模型,該模型包含三個(gè)階段:學(xué)習(xí)階段、調(diào)度階段、聚合階段。
3.根據(jù)權(quán)利要求2所述的一個(gè)基于云計(jì)算的視頻會議的轉(zhuǎn)碼分發(fā)系統(tǒng),其特征在于:所述調(diào)度模塊的學(xué)習(xí)階段通過對預(yù)先準(zhǔn)備好的學(xué)習(xí)數(shù)據(jù)集進(jìn)行學(xué)習(xí)獲取預(yù)測模型所需要的參數(shù),該學(xué)習(xí)過程進(jìn)一步包含以下步驟: 步驟1.對轉(zhuǎn)碼分發(fā)系統(tǒng)中提供的所有任務(wù)單元按照功能分類,并給出每類任務(wù)單元涉及的所有參數(shù); 步驟2.在虛擬機(jī)上運(yùn)行每種任務(wù)單元(Ti)來處理學(xué)習(xí)數(shù)據(jù)集,同時(shí)資源監(jiān)測模塊需同步監(jiān)測該任務(wù)單元占用的各項(xiàng)資源; 步驟3.對步驟2中運(yùn)行的任務(wù)單元枚舉其參數(shù)的所有子集,并對每個(gè)參數(shù)子集Pi=Ip1, P2, -PkI計(jì)算多元線性回歸,計(jì)算參數(shù)子集與資源監(jiān)測模塊監(jiān)測到的資源項(xiàng)Resi的線性相關(guān)性,得到每個(gè)參數(shù)子集對應(yīng)的回歸系數(shù)集合Ai={ai,a2…,ak,b}及相關(guān)系數(shù)Ri ; 步驟4.從步驟3中得到的所有回歸系數(shù)集合Ai和相關(guān)系數(shù)Ri中,選擇相關(guān)系數(shù)民最大的一對,其對應(yīng)的參數(shù)子集作為該任務(wù)單元的預(yù)測參數(shù)集合,回歸系數(shù)作為線性預(yù)測公式的各項(xiàng)系數(shù),即Ti類型任務(wù)單元對Resi資源的需求預(yù)測值為Pre (Resi, Ti) =BfpJai^p2+…+ak*pk+b。
4.根據(jù)權(quán)利要求2所述的一個(gè)基于云計(jì)算的視頻會議的轉(zhuǎn)碼分發(fā)系統(tǒng),其特征在于:所述調(diào)度模塊的調(diào)度階段根據(jù)資源按需調(diào)度算法對任務(wù)單元進(jìn)行調(diào)度,將任務(wù)單元按照其所需資源的多少分配到最適合的虛擬機(jī)上運(yùn)行,該資源按需調(diào)度算法進(jìn)一步包含如下步驟: 步驟1.調(diào)度模塊從控制模塊獲得需要調(diào)度的任務(wù)單元數(shù)量,以及每個(gè)任務(wù)單元的類型和參數(shù)值; 步驟2.調(diào)度模塊通過資源預(yù)測模型得到的預(yù)測公式對新增的任務(wù)單元所需的各項(xiàng)資源進(jìn)行預(yù)測,得到該任務(wù)單元所需的資源集合Res= {Pre (CPU), Pre (Memory), Pre (NetworkBandwidth)}; 步驟3.將現(xiàn)有的虛擬機(jī)按可用資源的多少降序排列形成列隊(duì)Q ; 步驟4.比較新增任務(wù)的所需資源Res是否超出隊(duì)首虛擬機(jī)Q(O)的可用資源;若未超過,則將新增的任務(wù)單元分配到該虛擬機(jī)中,轉(zhuǎn)步驟6 ;否則,按步驟5將Q(O)上的任務(wù)進(jìn)行遷移到隊(duì)列Q的其他虛擬機(jī)中,直到Q(O)有足夠的資源承擔(dān)新增任務(wù),并將新增任務(wù)分配到該虛擬機(jī)中,轉(zhuǎn)步驟6 ;若其他虛擬機(jī)沒有足夠的資源承擔(dān)遷移的任務(wù),則向系統(tǒng)申請新的虛擬機(jī)資源,將新增任務(wù)分配到新的虛擬機(jī)中,轉(zhuǎn)步驟6 ; 步驟5.遷移時(shí),每個(gè)待遷移的任務(wù)視為新增任務(wù),將除Q (O)以外的所有虛擬機(jī)按步驟3重新排列形成隊(duì)列Q’,并在該隊(duì)列上執(zhí)行步驟4 ; 步驟6.調(diào)度完成后對所有結(jié)點(diǎn)進(jìn)行檢查,若可用資源最多的虛擬機(jī)與可用資源最少的虛擬機(jī)的資源差值超過 了 Threshold,則將可用資源最少的虛擬機(jī)上的任務(wù)按步驟5進(jìn)行遷移,直到兩者間可用資源的差值小于閾值。
5.根據(jù)權(quán)利要求2所述的一個(gè)基于云計(jì)算的視頻會議的轉(zhuǎn)碼分發(fā)系統(tǒng),其特征在于:所述調(diào)度模塊的聚合階段負(fù)責(zé)在所有虛擬機(jī)均處于輕負(fù)載的狀態(tài)下,將任務(wù)單元聚合到少數(shù)幾臺虛擬機(jī)中以降低能耗;該聚合步驟進(jìn)一步包括如下步驟: 步驟1.調(diào)度模塊根據(jù)資源監(jiān)測模塊返回參數(shù),得到當(dāng)前資源最多及負(fù)載最輕的虛擬機(jī);若滿足聚合條件,則執(zhí)行步驟2 ; 步驟2.針對負(fù)載最輕的虛擬機(jī)即源虛擬機(jī)中的每一個(gè)任務(wù)單元,根據(jù)調(diào)度步驟尋找另一臺合適的虛擬機(jī)即目標(biāo)虛擬機(jī)接收該任務(wù)單元; 步驟3.目標(biāo)虛擬機(jī)啟動該任務(wù)單元; 步驟4.源虛擬機(jī)終止該任務(wù)單元; 步驟5.關(guān)閉源虛擬機(jī); 步驟6.檢查當(dāng)前各虛擬機(jī)狀態(tài)是否仍滿足聚合條件,若是,則重復(fù)步驟1-5。
【文檔編號】G06F11/30GK103699447SQ201410007678
【公開日】2014年4月2日 申請日期:2014年1月8日 優(yōu)先權(quán)日:2014年1月8日
【發(fā)明者】樓奕華, 成睿, 陳永全, 吳文峻 申請人:北京航空航天大學(xué)