一種基于sla的多租戶虛擬機(jī)資源分配方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及云計(jì)算技術(shù)領(lǐng)域,特別是一種基于SLA的多租戶虛擬機(jī)資源分配方法。
【背景技術(shù)】
[0002] 在私有云環(huán)境下,由于資源的有限性W及需要同時(shí)滿足與多租戶簽訂的SLA的強(qiáng) 制性要求,一個(gè)新的應(yīng)用請(qǐng)求部署到云平臺(tái)前,應(yīng)該對(duì)私有云環(huán)境的空閑資源進(jìn)行檢查。如 果空閑資源無(wú)法滿足應(yīng)用的需求,那么應(yīng)該暫緩給運(yùn)個(gè)應(yīng)用分配資源,同時(shí)把請(qǐng)求放入等 待隊(duì)列,等到私有云平臺(tái)能夠?yàn)槠涮峁┳銐虻馁Y源時(shí)再?gòu)恼?qǐng)求等待隊(duì)列中將該請(qǐng)求取出并 分配相應(yīng)的虛擬機(jī)資源。
[0003] 傳統(tǒng)方法采用先進(jìn)先出的方法對(duì)請(qǐng)求隊(duì)列進(jìn)行管理,存在如下不足:
[0004] 1、某些應(yīng)用的部署請(qǐng)求可能由于資源需求量較大,導(dǎo)致等待時(shí)間過(guò)長(zhǎng),應(yīng)用遲遲 無(wú)法部署而影響用戶體驗(yàn)。
[0005] 2、虛擬機(jī)資源的有限性與應(yīng)用規(guī)模的可擴(kuò)展性存在矛盾的情況下,無(wú)法根據(jù)與用 戶簽訂的SLA既保證服務(wù)水平又合理分配虛擬機(jī)資源。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明解決的技術(shù)問(wèn)題在于一種基于SLA的多租戶虛擬機(jī)資源分配方法;解決前 述現(xiàn)有技術(shù)的問(wèn)題。
[0007] 本發(fā)明解決上述技術(shù)問(wèn)題的技術(shù)方案是:
[000引所述的方法包括W下步驟:
[0009] 步驟1:應(yīng)用發(fā)出資源請(qǐng)求后,根據(jù)請(qǐng)求中虛擬機(jī)的數(shù)量和配置,計(jì)算出整個(gè)應(yīng)用 對(duì)每種資源類別的使用量;
[0010] 步驟2:按照每種資源的類別對(duì)應(yīng)用的資源使用量W及物理機(jī)的空閑資源量逐一 比較;
[0011] 步驟3:如果應(yīng)用請(qǐng)求的任意一項(xiàng)資源無(wú)法滿足則將請(qǐng)求放入等待隊(duì)列中,等待隊(duì) 列的調(diào)度機(jī)制進(jìn)行資源分配;
[0012] 步驟4:否則為請(qǐng)求分配資源創(chuàng)建虛擬機(jī)。
[0013] 所述資源類別指的是租戶SLA中用于描述虛擬機(jī)配置的參數(shù),包括CPU核數(shù)、內(nèi)存 大小及硬盤大??;物理機(jī)空閑資源指的是物理機(jī)中剩余可供虛擬機(jī)使用的物理資源,也包 括CPU核數(shù)、內(nèi)存大小及硬盤大小;資源類別中的參數(shù)與物理機(jī)空閑資源為一一對(duì)應(yīng)關(guān)系。
[0014] 所述隊(duì)列調(diào)度機(jī)制的步驟包括:
[0015] 步驟1:有應(yīng)用撤銷而刪除虛擬機(jī)時(shí),計(jì)算物理機(jī)的空閑資源;
[0016] 步驟2:判斷等待隊(duì)列隊(duì)頭的請(qǐng)求是否等待輪次超標(biāo);如果是,執(zhí)行步驟3,否則執(zhí) 行步驟4;
[0017] 步驟3:取出隊(duì)頭的請(qǐng)求,判斷該請(qǐng)求是否與物理機(jī)的空閑資源匹配,如果是,執(zhí)行 步驟6,否則,執(zhí)行步驟7;
[0018] 步驟4:取出隊(duì)頭請(qǐng)求的后一個(gè)請(qǐng)求,判斷該請(qǐng)求是否與物理機(jī)的空閑資源匹配, 如果是,執(zhí)行步驟5;否則,檢查隊(duì)列中后一個(gè)請(qǐng)求是否已達(dá)到隊(duì)尾,如果是,那么執(zhí)行步驟 7,否則,執(zhí)行步驟4;
[0019] 步驟5:將隊(duì)列中此請(qǐng)求前的所有請(qǐng)求的等待輪次加1;
[0020] 步驟6:為請(qǐng)求分配資源用于創(chuàng)建虛擬機(jī);
[0021] 步驟7:繼續(xù)等待應(yīng)用撤銷釋放空閑資源。
[0022] 所述等待輪次指的是等待隊(duì)列中請(qǐng)求等待空閑資源的次數(shù),等到輪次超標(biāo)指的是 等待輪次超過(guò)某一個(gè)闊值,該闊值由用戶指定,超過(guò)該闊值表示應(yīng)用等待部署的時(shí)間過(guò)長(zhǎng)。
[0023] 本發(fā)明的方法能產(chǎn)生如下的有益效果:
[0024] 1、本發(fā)明方法能在滿足SLA承諾與合理分配資源之間獲得平衡;
[0025] 2、本發(fā)明方法在資源不足是具有較好的用戶體驗(yàn),既可W在短時(shí)間內(nèi)響應(yīng)小需求 用戶的請(qǐng)求,又不會(huì)使大需求用戶的請(qǐng)求等待時(shí)間過(guò)長(zhǎng)。
【附圖說(shuō)明】
[0026] 下面結(jié)合附圖對(duì)本發(fā)明進(jìn)一步說(shuō)明:
[0027] 圖1為本發(fā)明的流程圖;
[0028] 圖2為本發(fā)明的隊(duì)列調(diào)度流程圖。
【具體實(shí)施方式】
[0029] 下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整的描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0030] 見(jiàn)圖1、2所示,本發(fā)明首先實(shí)現(xiàn)對(duì)請(qǐng)求的初次處理:
[0031] 輸入?yún)?shù):應(yīng)用資源請(qǐng)求App Request,應(yīng)用請(qǐng)求包括兩個(gè)內(nèi)容分別為,應(yīng)用所屬 用戶user,所需資源數(shù)組Res Array。
[0032] 輸出值:true為可W為其分配資源,false為不能。
[003;3 ] 及 equest Judge.ment(App Request,, type)
[0034]
[0035] 主機(jī)監(jiān)控函數(shù)來(lái)獲得數(shù)據(jù)。對(duì)應(yīng)用請(qǐng)求的每項(xiàng)資源指標(biāo)和空閑資源的每項(xiàng)資源數(shù) 據(jù)進(jìn)行比較后如果能夠滿足就返回true,如果不能滿足根據(jù)type來(lái)放入相應(yīng)的請(qǐng)求等待隊(duì) 列。
[0036] 然后實(shí)現(xiàn)隊(duì)列中請(qǐng)求的調(diào)度:
[0037] 輸入?yún)?shù):type為已經(jīng)釋放資源來(lái)自于何種類型的資源池,flag為隊(duì)列中等待
[0038] 最長(zhǎng)輪次的闊值
[0039] 輸出值:true為分配了一個(gè)新的資源請(qǐng)求,false為繼續(xù)等待。
[0040]
[0041] flag為等待輪次的闊值。當(dāng)響應(yīng)應(yīng)用退出事件的時(shí)候?qū)?huì)使用到本算法。首先在 等待隊(duì)列
[0042] Queue中遍歷,App Request.wait為某個(gè)請(qǐng)求的等待輪次,如果等待輪次超過(guò)了 flag則此時(shí)必須要為運(yùn)個(gè)請(qǐng)求分配資源,對(duì)運(yùn)個(gè)請(qǐng)求運(yùn)行請(qǐng)求鑒別算法即可算出運(yùn)個(gè)請(qǐng)求 所需的資源是否可W被滿足,如果不能滿足則算法結(jié)束,繼續(xù)等待新的空閑資源。如果沒(méi)有 應(yīng)用的等待輪次超過(guò)flag,逐個(gè)對(duì)Queue中的App Request運(yùn)行請(qǐng)求鑒別算法,如果可W分 配資源則分配相應(yīng)的虛擬機(jī)資源,如果不能則將當(dāng)前的App Request.wait加一,再遍歷下 一個(gè)請(qǐng)求。
【主權(quán)項(xiàng)】
1. 一種基于SLA的多租戶虛擬機(jī)資源分配方法,其特征在于,所述的方法包括以下步 驟: 步驟1:應(yīng)用發(fā)出資源請(qǐng)求后,根據(jù)請(qǐng)求中虛擬機(jī)的數(shù)量和配置,計(jì)算出整個(gè)應(yīng)用對(duì)每 種資源類別的使用量; 步驟2:按照每種資源的類別對(duì)應(yīng)用的資源使用量以及物理機(jī)的空閑資源量逐一比較; 步驟3:如果應(yīng)用請(qǐng)求的任意一項(xiàng)資源無(wú)法滿足則將請(qǐng)求放入等待隊(duì)列中,等待隊(duì)列的 調(diào)度機(jī)制進(jìn)行資源分配; 步驟4:否則為請(qǐng)求分配資源創(chuàng)建虛擬機(jī)。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述資源類別指的是租戶SLA中用于描述 虛擬機(jī)配置的參數(shù),包括CPU核數(shù)、內(nèi)存大小及硬盤大小;物理機(jī)空閑資源指的是物理機(jī)中 剩余可供虛擬機(jī)使用的物理資源,也包括CHJ核數(shù)、內(nèi)存大小及硬盤大?。毁Y源類別中的參 數(shù)與物理機(jī)空閑資源為一一對(duì)應(yīng)關(guān)系。3. 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述隊(duì)列調(diào)度機(jī)制的步驟包括: 步驟1:有應(yīng)用撤銷而刪除虛擬機(jī)時(shí),計(jì)算物理機(jī)的空閑資源; 步驟2:判斷等待隊(duì)列隊(duì)頭的請(qǐng)求是否等待輪次超標(biāo);如果是,執(zhí)行步驟3,否則執(zhí)行步 驟4; 步驟3:取出隊(duì)頭的請(qǐng)求,判斷該請(qǐng)求是否與物理機(jī)的空閑資源匹配,如果是,執(zhí)行步驟 6,否則,執(zhí)行步驟7; 步驟4:取出隊(duì)頭請(qǐng)求的后一個(gè)請(qǐng)求,判斷該請(qǐng)求是否與物理機(jī)的空閑資源匹配,如果 是,執(zhí)行步驟5;否則,檢查隊(duì)列中后一個(gè)請(qǐng)求是否已達(dá)到隊(duì)尾,如果是,那么執(zhí)行步驟7,否 貝1J,執(zhí)行步驟4; 步驟5:將隊(duì)列中此請(qǐng)求前的所有請(qǐng)求的等待輪次加1; 步驟6:為請(qǐng)求分配資源用于創(chuàng)建虛擬機(jī); 步驟7:繼續(xù)等待應(yīng)用撤銷釋放空閑資源。4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述等待輪次指的是等待隊(duì)列中請(qǐng)求等待 空閑資源的次數(shù),等到輪次超標(biāo)指的是等待輪次超過(guò)某一個(gè)閾值,該閾值由用戶指定,超過(guò) 該閾值表示應(yīng)用等待部署的時(shí)間過(guò)長(zhǎng)。
【專利摘要】本發(fā)明涉及云計(jì)算技術(shù)領(lǐng)域,特別是一種基于SLA的多租戶虛擬機(jī)資源分配方法。本發(fā)明首先在應(yīng)用發(fā)出資源請(qǐng)求后,根據(jù)請(qǐng)求中虛擬機(jī)的數(shù)量和配置,計(jì)算出整個(gè)應(yīng)用對(duì)每種資源類別的使用量;然后按照每種資源的類別對(duì)應(yīng)用的資源使用量以及物理機(jī)的空閑資源量逐一比較;最后如果應(yīng)用請(qǐng)求的任意一項(xiàng)資源無(wú)法滿足則將請(qǐng)求放入等待隊(duì)列中,等待隊(duì)列的調(diào)度機(jī)制進(jìn)行資源分配;否則為請(qǐng)求分配資源創(chuàng)建虛擬機(jī)。本發(fā)明解決了虛擬機(jī)合理分配資源和快速響應(yīng)的問(wèn)題;可以用于多租戶虛擬機(jī)資源分配。
【IPC分類】G06F9/455, G06F9/50, G06F9/48
【公開號(hào)】CN105630604
【申請(qǐng)?zhí)枴緾N201510963639
【發(fā)明人】莫展鵬, 楊松, 季統(tǒng)凱
【申請(qǐng)人】國(guó)云科技股份有限公司
【公開日】2016年6月1日
【申請(qǐng)日】2015年12月18日