本發(fā)明具體涉及一種云計算環(huán)境下虛擬機資源的分配方法及分配系統(tǒng)。
背景技術:
隨著經濟技術的發(fā)展和人們生活水平的提高,云計算環(huán)境下的虛擬機已經得到了廣泛的應用,給人們的生產和生活帶來了許多便利。
依托虛擬機化技術,云服務商能夠以虛擬機的形式向用戶提供基礎設施類服務(infrastructure-as-a-service,iaas),用戶按照實際使用情況向服務商支付費用。因此,在云計算環(huán)境中,虛擬機資源的高效分配與定價已成為云服務商當前急需解決的挑戰(zhàn)之一。相對于固定價格模式,基于拍賣的虛擬機資源分配與定價模式可以更好的動態(tài)平衡供需雙方的利益,激勵用戶根據供需情況去規(guī)劃自己的消費行為。拍賣機制的設計一般需要涉及幾個關鍵屬性,如可信性,無妒性,經濟效用等。可信性指拍賣的售價與用戶出價無關,用戶的支配策略為報告自己的真實出價??尚判詫傩允欠丈汤孀畲蠡谋WC,但在組合拍賣中,可信性與無妒性一般不能同時取得。無妒性指拍賣結果對所有用戶都是公平的,用戶不妒忌其他用戶的結果。無妒性屬性是拍賣機制穩(wěn)定可行的保證,但無妒性下的定價不一定是用戶出價無關的,因此不保證可信性。無論哪一種分配定價機制,追求經濟效用的最大化,是云服務商提供服務資源的內在原始動力。
vcg拍賣方法(vickrey-clarke-groves拍賣方法)是目前被證明唯一能夠同時取得可信性與經濟高效性的方法,它的基本原理是使面向用戶的售價與用戶的出價無關,以此保證機制的可信性。目前云服務商在基于此類方法的運行環(huán)境中,常常假設云服務商可提供的資源少于用戶的需求,虛擬機資源的以靜態(tài)或者動態(tài)的方式供給,虛擬機的種類為單一形式或者多種類型(不同類型之間資源的差異以倍乘的方式表示)。此類方法決定資源分配與定價的一般過程如下:首先設定一個不包含當前用戶的用戶集,計算在該用戶集下的最大化社會效用,然后計算在當前用戶參與但不包含該用戶效用的最大化社會效用,以兩者之差為當前用戶的支付費用。該方法需要為每個用戶重復上述計算過程來確定用戶的售價。如果一個用戶在該方法下的支付費用為零,則該用戶在此次競拍中失敗,不會被分配任何資源,否則該用戶被收取計算出的費用并獲得請求的虛擬機。
由于vcg模型能夠兼容可信性與社會經濟效用最大化,現有的虛擬機資源拍賣方法大多基于vcg模型進行演化或改良?;诖祟惸P偷姆椒ㄐ枰獮槊總€用戶計算最終售價,因此需要多次重復計算,其計算代價很大,特別在系統(tǒng)規(guī)模龐大時,方法的實現變得非常困難。在演化或改良的模型中,各種近似算法被提出以減少系統(tǒng)計算的復雜度,但是近似算法的引入,使得可信性屬性無法得到保證。此外,目前的技術應用環(huán)境也只考慮供少于求的情況,在這種情況下,社會經濟效用與服務商的效用是一致的,但是當供大于求的情況出現時,應用此類方法兩者的目標就不一致,服務商所取得經濟效用可能會變得很低,這是服務商不能容忍的。除了上述不足,目前的技術少有考慮機制的無妒性,這些應用產生的結果不一定是無妒性,用戶有可能更偏好其他用戶的結果,這使得機制在運行中并不是穩(wěn)定的。
技術實現要素:
本發(fā)明的目的之一在于提供一種在實現虛擬機資源分配與定價時能夠無視市場的供求狀況,在尋求云服務商利益最大化的同時也保證系統(tǒng)的無妒性和高概率可信性的云計算環(huán)境下虛擬機資源的分配方法。
本發(fā)明的目的之二在于提供一種用于實現所述云計算環(huán)境下虛擬機資源的分配方法的分配系統(tǒng)。
本發(fā)明提供的這種云計算環(huán)境下虛擬機資源的分配方法,包括如下步驟:
s1.對系統(tǒng)所提供的虛擬機資源進行分類量化;
s2.當進入實際拍賣流程時,收集用戶的訂單信息,根據步驟s1的分類量化結果計算各個用戶的出價密度;
s3.根據步驟s2得到的出價密度,計算系統(tǒng)的總收益作為目標收益的上限;
s4.根據步驟s3得到的目標收益上限,提取出服務商的最終目標收益;
s5.根據步驟s4得到的最終目標收益,確定競得資源的用戶及其應支付的費用。
步驟s1所述的對虛擬機資源進行分類量化,具體為采用如下步驟進行分類量化:
a.采用如下公式計算第j類虛擬機的第k類資源數量的量化結果:
其中
b.采用如下公式計算虛擬機提供的各類資源的加權價格:
式中σk為第k類資源的加權價格,vk表示第k類資源
c.根據步驟a得到的量化結果和步驟b得到的加權價格,采用如下公式計算每一類虛擬機占用各類資源的統(tǒng)一量化結果:
式中nj為第j類虛擬機占用各類資源的統(tǒng)一量化結果。
步驟s3所述的計算系統(tǒng)的總收益,為采用最優(yōu)單價方法計算與出價相關的總收益,具體為采用如下步驟計算總收益:
a.刪除出價密度低于虛擬機服務商的保留價格或請求數量大于預設值的用戶,并將剩余的用戶歸入有效用戶集,并以出價密度為基準對有效用戶集進行降序排序;
b.以虛擬機系統(tǒng)能夠提供的有效資源確定可接納的用戶訂單集;
c.尋找一個l值,使得步驟b中降序排序的可接納用戶集中的第1個用戶至第l個用戶的訂單總數與第l個用戶的出價密度的乘積最大;從而得到系統(tǒng)目標收益上限p、第1到第l個用戶的虛擬機訂單總數s,所述l為正整數。
步驟s4所述的提取出服務商的最終目標收益,為設計一個概率函數并計算服務商的最終目標收益,具體為采用如下步驟計算最終目標收益:
1)從[0,1]區(qū)間隨機選取一個實數作為參數u的值;
2)從可接納的用戶訂單集中選取最大的用戶訂單數量ξ;
3)采用如下公式計算中間變量α:
式中s為訂單總數,τ為調整參數;τ的取值越大,則可信概率越高但目標受益越低,τ的取值越小,則可信概率越低但目標受益越高。
4)采用如下公式計算中間變量θ:
式中p為目標受益上限,計算符號
5)采用如下算式計算服務商的最終目標收益:
f=αθ+u
式中f為服務商的最終目標收益。
步驟s5所述的確定競得資源的用戶及其應支付的費用,具體為采用如下步驟確定競得資源的用戶并計算相應的支付費用:
(1)根據步驟s4得到的服務商的最終目標收益f,在可接納用戶集中尋找最大的m值,并計算從第1個用戶到第m個用戶所請求的總虛擬機數量sum,并使得第m個用戶的出價密度不低于f/sum,所述m為正整數;
(2)確定第m+1個用戶及其后面的用戶競價失敗,不對該類用戶分配資源,也不收取費用;
(3)確定第1個用戶至第m個用戶為競價勝出者,為各個用戶分配各自所請求的虛擬機資源,并對各個用戶收取費用,所述各個用戶收取的費用等于該用戶的虛擬機資源請求量與f/sum的乘積。
本發(fā)明還提供了一種實現所述云計算環(huán)境下虛擬機資源的分配方法的分配系統(tǒng),包括依次串接的資源分類量化模塊,用戶訂單收集與計算模塊,系統(tǒng)目標收益計算模塊,最終目標收益計算模塊和資源分配與計費模塊;資源分類量化模塊用于對系統(tǒng)所提供的虛擬機資源進行分類量化,用戶訂單收集與計算模塊用于收集用戶的訂單信息并計算各個用戶的出價密度,系統(tǒng)目標收益計算模塊用于駕駛員系統(tǒng)的總收益,最終目標收益計算模塊用于提取服務商的最終目標收益,資源分配與計費模塊用于確定競得資源的用戶及其應支付的費用。
本發(fā)明提供的這種云計算環(huán)境下虛擬機資源的分配方法及其分配系統(tǒng),是在虛擬機統(tǒng)一量化的前提下執(zhí)行的,這使得機制能夠適用于異構虛擬機資源的組合拍賣;在計算目標收益上限時采用屬于貪心算法的最優(yōu)單價計算方法,因此本發(fā)明的方法能夠無視市場的供求狀況,即使在市場供大于求的情況下(這是云服務商常面對的情況),也能夠為服務商提供接近于最優(yōu)的收益;本發(fā)明中采用松弛約束條件的策略,借由概率函數實現拍賣價格與用戶出價高概率無關,使機制的可信性由完全可信轉變?yōu)樵谝粋€可接受的高概率范圍內,保證了用戶不妒嫉其他用戶的拍賣結果,用戶的支配策略就是報告自己的真實評估,因此本發(fā)明實現的機制具有很好的穩(wěn)定性能夠保證服務商利益的最大化。
附圖說明
圖1為本發(fā)明的方法流程圖。
圖2為本發(fā)明的分配系統(tǒng)的功能模塊圖。
具體實施方式
如圖1所示為本發(fā)明的方法流程圖:本發(fā)明提供的這種云計算環(huán)境下虛擬機資源的分配方法,包括如下步驟:
s1.對系統(tǒng)所提供的虛擬機資源進行分類量化;
首先對各類虛擬機資源的組成成份進行量化,計算其與服務商所提供的虛擬機占用對應類型資源(cpu,內存,存儲等)最大值的比值;因此,具體為采用如下步驟進行分類量化:
a.采用如下公式計算第j類虛擬機的第k類資源數量的量化結果:
其中
b.由于不同類型的資源在價格方面也是不同的,如cpu,內存等的價格是不一樣的,因此采用如下公式計算虛擬機提供的各類資源的加權價格:
式中σk為第k類資源的加權價格,vk表示第k類資源
c.根據步驟a得到的量化結果和步驟b得到的加權價格,采用如下公式計算每一類虛擬機占用各類資源的統(tǒng)一量化結果:
式中nj為第j類虛擬機占用各類資源的統(tǒng)一量化結果
s2.當進入實際拍賣流程時,收集用戶的訂單信息,根據步驟s1的分類量化結果計算各個用戶的出價密度:先收集用戶的訂單信息(訂單包含用戶的虛擬機需求包及總出價),然后以存儲的虛擬機量化信息計算各個用戶的出價密度,并以它們的降序形式對用戶訂單執(zhí)行排序;
s3.根據步驟s2得到的出價密度,以最優(yōu)單價方法(屬于貪心算法的一種)計算系統(tǒng)的目標收益上限;
最優(yōu)單價計算方法首先刪除那些出價密度低于服務商保留價格或者請求數量大于預設值的用戶,然后將剩余的用戶歸入有效用戶集o中,并以他們的出價密度對集合o進行降序排序;接著以系統(tǒng)可提供的有效資源確定可接納的用戶訂單集a;最后尋找最大的l,使得第1個用戶到第l個用戶的訂單總數s與第l個用戶的出價密度乘積p(目標收益上限)最大,最后返回a,p,s的值給系統(tǒng)作為下一步方案的輸入數據;
具體的,定義如下變量:
qi,表示第i個用戶的資源量化值;
cres,云服務商為單位虛擬機設置的保留價格;
n,云服務商允許單個用戶可申請的虛擬機數量上限;
bi,表示第i個用戶的出價;
di,表示第i個用戶的出價密度;
o,有效用戶訂單集合;
oi,第i個用戶的訂單;
a,可接納用戶訂單集合;
p,目標收益上限;
s,產生目標收益上限的最大資源請求數量;
最優(yōu)單價算法實現流程表示如下:
1.可接受用戶集a設置為空:
2.設置保留價格cres
3.計算各個用戶資源需求的量化值:
4.計算各個用戶的出價密度:
5.移除出價密度低于保留價格cres或者請求數量大于最大預設值n的用戶,獲得有效用戶訂單集o;
6.以用戶出價密度di對訂單集合o降序排序;
7.foralloi∈odo
if系統(tǒng)有足夠的資源分配給用戶i
用戶i的訂單歸入集合a中:a=a∪{oi}
endif
8.endfor
9.在集合a中尋找最大的l,使得第1個用戶到第l個用戶的訂單總數與第l個用戶出價密度的乘積p最大,即
10.計算第1個用戶到第l個用戶的訂單總數s,即
11.向系統(tǒng)還回p,a,s的值;
s4.根據步驟s3得到的目標收益上限,為設計一個概率函數并計算服務商的最終目標受益;
概率函數設計的目標就是使用戶相信成交價與自身出價無關的概率在一個高的范圍之內,從而用戶的支配策略為出真實價格,最終達到服務商利益的最大化;
定義相關的變量:
p,為目標收益上限;
s,產生目標收益上限的最大資源請求數量;
τ,為一個取值大于1的實數,在本發(fā)明中,建議取值范圍[10,15];
ξ,可接納訂單集a中最大的單個用戶訂單數量;
f,云服務商的目標收益;
概率函數的設計方法如下:
設隨機變量u均勻分布在[0,1]區(qū)間,針對目標收益上限p,概率函數f(p)等于表達式αθ+u最接近于p的值,其中θ為滿足該條件下的最大整數,α的取值為
通過概率函數所取得值即為服務商的目標收益,實現過程如下:
1.從[0,1]區(qū)間隨機選取一個實數作為參數u的值;
2.從可接納用戶訂單集a選取最大的用戶訂單數量ξ;
3.計算α的值:
4.計算θ的值:
5.計算服務商的目標收益f:f←αθ+u;
6.向系統(tǒng)返回f;
s5.根據步驟s4得到的最終目標收益,確定競得資源的用戶及其應支付的費用;在獲得服務商的目標收益f之后,在有效用戶訂單集中尋找最大的l,計算從第1到第l個用戶所請求的總虛擬機數量sum,使得第l個用戶的出價密度不低于f/sum;確定第l+1之后的用戶競價失敗,不分配資源也不收取費用;第1到第l個用戶為競價勝出者,分配用戶請求的虛擬機資源,各個用戶收取的費用為其虛擬機請求量與f/sum的乘積;
定義相關變量:
l,表示第l個用戶;
|a|,表示系統(tǒng)可接納的用戶訂單集;
sum,表示從第1到第l個用戶所請求的總虛擬機數量;
p,表示單位虛擬機的售價;
具體實現步驟為:
1.計算可接納用戶訂單集a中總虛擬機請求數sum;
2.forl←|a|to1do
sum←sum-第l個用戶的虛擬機請求數
else
退出循環(huán)
endif
3.endfor
4.計算單位虛擬機的售價p:
5.if售價p低于第l+1用戶的出價密度;
p←第l+1用戶的出價密度
6.endif
7.第1到第l個用戶的費用為其虛擬機請求量與p的乘積;
8.為第1到第l個用戶分配虛擬機資源;
如圖2所示為本發(fā)明的分配系統(tǒng)的功能模塊圖:本發(fā)明提供的這種實現所述云計算環(huán)境下虛擬機資源的分配方法的分配系統(tǒng),包括依次串接的資源分類量化模塊,用戶訂單收集與計算模塊,系統(tǒng)目標收益計算模塊,最終目標收益計算模塊和資源分配與計費模塊;資源分類量化模塊用于對系統(tǒng)所提供的虛擬機資源進行分類量化,用戶訂單收集與計算模塊用于收集用戶的訂單信息并計算各個用戶的出價密度,系統(tǒng)目標收益計算模塊用于駕駛員系統(tǒng)的總收益,最終目標收益計算模塊用于提取服務商的最終目標收益,資源分配與計費模塊用于確定競得資源的用戶及其應支付的費用。