例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0041]圖1為一種云計(jì)算系統(tǒng)在調(diào)整前的虛擬機(jī)部署方案示意圖;
[0042]圖2為圖1所示系統(tǒng)的節(jié)點(diǎn)間通信代價(jià)矩陣示意圖;
[0043]圖3為根據(jù)現(xiàn)有技術(shù)對(duì)圖1所示系統(tǒng)的虛擬機(jī)部署方案調(diào)整結(jié)果示意圖;
[0044]圖4為本發(fā)明實(shí)施例提供的虛擬機(jī)部署位置調(diào)整方法的流程圖;
[0045]圖5為圖1所示系統(tǒng)的節(jié)點(diǎn)間修正通信代價(jià)矩陣示意圖;
[0046]圖6為根據(jù)本發(fā)明實(shí)施例對(duì)圖1所示系統(tǒng)的虛擬機(jī)部署方案調(diào)整結(jié)果示意圖;
[0047]圖7為本發(fā)明實(shí)施例提供的虛擬機(jī)部署位置調(diào)整裝置的一種結(jié)構(gòu)示意圖
[0048]圖8為本發(fā)明實(shí)施例提供的虛擬機(jī)部署位置調(diào)整裝置中的最小割計(jì)算模塊一種結(jié)構(gòu)示意圖;
[0049]圖9為本發(fā)明實(shí)施例提供的虛擬機(jī)部署位置調(diào)整裝置的硬件結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0050]針對(duì)TVMPP在實(shí)際應(yīng)用中存在的問(wèn)題,本發(fā)明實(shí)施例提供一種改進(jìn)的云計(jì)算系統(tǒng)虛擬機(jī)部署位置調(diào)整方法,為了更清楚地說(shuō)明本發(fā)明實(shí)施例所提供的技術(shù)方案,下面首先對(duì)TVMPP進(jìn)行簡(jiǎn)單介紹:
[0051]TVMPP定義任意兩個(gè)節(jié)點(diǎn)之間的鄰接度Aij為:
[0052]Aij=CijADij (I)
[0053]其中,Cij為節(jié)點(diǎn)i和節(jié)點(diǎn)j之間的通信代價(jià),D u為節(jié)點(diǎn)i和節(jié)點(diǎn)j之間的數(shù)據(jù)流量。
[0054]將系統(tǒng)中的每一臺(tái)虛擬機(jī)的部署位置看作一個(gè)虛擬機(jī)節(jié)點(diǎn),根據(jù)式(I),可以計(jì)算得到系統(tǒng)中任意兩個(gè)虛擬機(jī)節(jié)點(diǎn)的鄰接度,然后根據(jù)計(jì)算結(jié)果生成一幅以虛擬機(jī)節(jié)點(diǎn)為頂點(diǎn)、以節(jié)點(diǎn)鄰接度為邊權(quán)重值的圖,對(duì)該圖應(yīng)用最小割算法,得到建議的虛擬機(jī)部署方案,按照該方案對(duì)虛擬機(jī)進(jìn)行迀移即可。
[0055]下面結(jié)合一個(gè)實(shí)際應(yīng)用場(chǎng)景對(duì)TVMPP進(jìn)行說(shuō)明,圖1所示為一種云計(jì)算系統(tǒng)的結(jié)構(gòu)示意圖;該系統(tǒng)共有8臺(tái)服務(wù)器,每臺(tái)服務(wù)器對(duì)應(yīng)一臺(tái)物理機(jī),每臺(tái)物理機(jī)中部署兩臺(tái)虛擬機(jī),編號(hào)依次為1-16。物理機(jī)之間通過(guò)交換機(jī)構(gòu)成的中間網(wǎng)絡(luò)實(shí)現(xiàn)通信,圖中a、b、c......為交換機(jī)。
[0056]假設(shè)系統(tǒng)初始的虛擬機(jī)部署方案如圖1所示,根據(jù)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)確定Cu,可以得到如圖2所示之間的通信代價(jià)矩陣。
[0057]假設(shè)控制器監(jiān)測(cè)到在某段歷史時(shí)期內(nèi),圖1所示的初始部署方案的流量情況如下:
[0058]節(jié)點(diǎn)I與節(jié)點(diǎn)2之間流量:D12= 2G ;
[0059]節(jié)點(diǎn)I與節(jié)點(diǎn)3之間流量:D13= 2G ;
[0060]節(jié)點(diǎn)I與節(jié)點(diǎn)4之間流量:D14= 2G ;
[0061]節(jié)點(diǎn)I與節(jié)點(diǎn)5之間流量:D15= IG ;
[0062]節(jié)點(diǎn)I與節(jié)點(diǎn)13之間流量-D113= IG ;
[0063]那么,根據(jù)公式(I),可以計(jì)算得到,圖1所示的系統(tǒng)節(jié)點(diǎn)間鄰接度分別為:
[0064]節(jié)點(diǎn)I與節(jié)點(diǎn)2之間的鄰接度:A12= 2*1 = 2 ;
[0065]節(jié)點(diǎn)I與節(jié)點(diǎn)3之間的鄰接度:A13= 2*1 = 2 ;
[0066]節(jié)點(diǎn)I與節(jié)點(diǎn)4之間的鄰接度:A14= 2*1 = 2 ;
[0067]節(jié)點(diǎn)I與節(jié)點(diǎn)5之間的鄰接度:A15= 1*3 = 3 ;
[0068]節(jié)點(diǎn)I與節(jié)點(diǎn)13之間的鄰接度:A113= 1*5 = 5 ;
[0069]根據(jù)計(jì)算得到的鄰接度,生成鄰接度圖,然后采用最小割算法,得到調(diào)整后的虛擬機(jī)部署方案如圖3所示。
[0070]根據(jù)TVMPP的思想,將鄰接度最大的兩個(gè)虛擬機(jī)I和13之間的通信代價(jià)調(diào)整為最小、將虛擬機(jī)I和5之間的通信代價(jià)調(diào)整為次小。然而,根據(jù)系統(tǒng)的實(shí)際流量情況=D113 =D15< D 12= D 13= D 14,應(yīng)該優(yōu)先把流量較大虛擬機(jī)I和2、虛擬機(jī)I和3或虛擬機(jī)I和4之間的通信代價(jià)調(diào)整到最小,可見(jiàn),TVMPP的調(diào)整結(jié)果與實(shí)際期望的調(diào)整結(jié)果存在較大偏差。
[0071]通過(guò)對(duì)現(xiàn)有技術(shù)的分析發(fā)現(xiàn),TVMPP存在以上問(wèn)題的關(guān)鍵原因在于:在調(diào)整虛擬機(jī)位置的依據(jù)“節(jié)點(diǎn)間鄰接度”中,作為權(quán)值的“節(jié)點(diǎn)間通信代價(jià)”本來(lái)僅應(yīng)起到修正作用,然而“節(jié)點(diǎn)間通信代價(jià)”在TVMPP計(jì)算過(guò)程中卻起主導(dǎo)作用,最終導(dǎo)致結(jié)果與期望嚴(yán)重不符。
[0072]針對(duì)上述問(wèn)題,本發(fā)明實(shí)施例提出對(duì)節(jié)點(diǎn)鄰接度計(jì)算時(shí)所采用的權(quán)值進(jìn)行修正,在考慮到“節(jié)點(diǎn)間通信代價(jià)”影響的同時(shí),降低“節(jié)點(diǎn)間通信代價(jià)”對(duì)調(diào)整結(jié)果的影響,使得調(diào)整結(jié)果更為合理,具體技術(shù)方案如下:
[0073]首先,根據(jù)虛擬機(jī)所在網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),確定任意兩個(gè)虛擬機(jī)節(jié)點(diǎn)i和j之間的通信代價(jià)Cu,然后對(duì)Cu使用數(shù)據(jù)平滑算法,得到虛擬機(jī)節(jié)點(diǎn)i和j之間的通信代價(jià)的修正值
Cij 。
[0074]在本發(fā)明的實(shí)施例中,使用數(shù)據(jù)平滑算法的目的是:減小Cu中最大值和最小值的差距,減小Cij的數(shù)值范圍。例如,可以采用以下任一公式,對(duì)C ^進(jìn)行平滑處理,得到修正值
C..,.^ij.
[0075]Ci/ = Ci^Pij+CE* (1-Pij) (2.1)
[0076]其中,Pij為C u在網(wǎng)絡(luò)中所有C u取值中的統(tǒng)計(jì)概率,C E為所有C ^的算術(shù)平均值。
[0077]Ci/ = Cij^Pij+1 Cij-Ce I* (1-Pij) (2.2)
[0078]其中,Pij為C u在網(wǎng)絡(luò)中所有C u取值中的統(tǒng)計(jì)概率,C E為所有C ^的算術(shù)平均值。
[0079]Ci/ = a^Cjj+CE (2.3)
[0080]其中,a是預(yù)設(shè)的修正系數(shù),a e (0,I),Ce是所有C ^的算術(shù)平均值。
[0081]本領(lǐng)域技術(shù)人員可以根據(jù)實(shí)際需求選擇具體的數(shù)據(jù)平滑算法,本發(fā)明實(shí)施例對(duì)此并不需要進(jìn)行限定。
[0082]進(jìn)一步,根據(jù)Ci/計(jì)算修正后的節(jié)點(diǎn)鄰接度:
[0083]Ai/ = Cij^Dij (3)
[0084]最后利用Ai/生成網(wǎng)絡(luò)節(jié)點(diǎn)間的鄰接度圖,采用最小割算法,得到調(diào)整后的虛擬機(jī)部署方案。
[0085]上述方案中,由于使用了數(shù)據(jù)平滑算法對(duì)Cij進(jìn)行處理,降低了作為權(quán)重的“節(jié)點(diǎn)間通信代價(jià)”對(duì)虛擬機(jī)部署調(diào)整結(jié)果的影響,使調(diào)整結(jié)果更為合理。
[0086]下面結(jié)合具體的應(yīng)用實(shí)例,對(duì)本發(fā)明實(shí)施例所提供的虛擬機(jī)部署位置調(diào)整方法進(jìn)行說(shuō)明。
[0087]以圖1所示系統(tǒng)為例,該系統(tǒng)中共有8臺(tái)服務(wù)器,每臺(tái)服務(wù)器對(duì)應(yīng)一臺(tái)物理機(jī),每臺(tái)物理機(jī)中部署兩臺(tái)虛擬機(jī),編號(hào)依次為1-16。物理機(jī)之間通過(guò)交換機(jī)構(gòu)成的中間網(wǎng)絡(luò)實(shí)現(xiàn)通信,圖中a、b、c……為交換機(jī)。控制器是整個(gè)網(wǎng)絡(luò)的管理實(shí)體,具有統(tǒng)計(jì)網(wǎng)絡(luò)流量、計(jì)算虛擬機(jī)部署方案、對(duì)虛擬機(jī)進(jìn)行迀移等功能。
[0088]圖4所示,為本發(fā)明實(shí)施例所提供的虛擬機(jī)部署位置調(diào)整方法的流程圖,該方法可以由云計(jì)算系統(tǒng)中的控制器執(zhí)行,也可以由其他管理實(shí)體執(zhí)行,具體可以包括以下步驟:
[0089]S101,根據(jù)虛擬機(jī)所在網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),以及根據(jù)所述網(wǎng)絡(luò)中任意兩個(gè)虛擬機(jī)節(jié)點(diǎn)i和j所述屬的物理服務(wù)器情況確定所述節(jié)點(diǎn)i和j之間的通信代價(jià)Cij;
[0090]Cu為表示節(jié)點(diǎn)i和節(jié)點(diǎn)j之間的通信代價(jià),兩個(gè)節(jié)點(diǎn)之間的通信代價(jià)一般可以理解為兩個(gè)節(jié)點(diǎn)之間的通信距離,通信代價(jià)由網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)決定,也就是說(shuō),在一個(gè)確定的網(wǎng)絡(luò)中,任意兩個(gè)給定位置之間的通信代價(jià)是不會(huì)變化的。
[0091]為方便計(jì)算,兩個(gè)虛擬機(jī)節(jié)點(diǎn)之間的通信代價(jià)可以根據(jù)節(jié)點(diǎn)間的交換機(jī)數(shù)量確定,另外,同一臺(tái)物理服務(wù)器內(nèi)的虛擬機(jī)之間不需要經(jīng)過(guò)交換機(jī)即可通信,因此可以統(tǒng)一規(guī)定:同一臺(tái)物理服務(wù)器中的兩個(gè)節(jié)點(diǎn)通信代價(jià)為一個(gè)預(yù)設(shè)數(shù)值。也就是說(shuō):在i和j不屬于同一物理服務(wù)器的情況下,Cij為i和j之間的交換機(jī)數(shù)量,在i和j屬于同一物理服務(wù)器的情況下,Ci#預(yù)設(shè)的數(shù)值。一般而言,該預(yù)設(shè)數(shù)值可以在區(qū)間(0,1]中選取。
[0092]假設(shè)系統(tǒng)初始的虛擬機(jī)部署方案如圖1所示,并且規(guī)定:同一臺(tái)物理服務(wù)器中的兩個(gè)節(jié)點(diǎn)通信代價(jià)為I ;則按照?qǐng)D1的部署方案,虛擬機(jī)的總數(shù)N = 16,可以得到如圖2所示的大小為16*16通信代價(jià)矩陣。
[0093]根據(jù)圖2所示的通信代價(jià)矩陣,可以看出=Cij= C w即兩個(gè)節(jié)點(diǎn)間的正反向通信代價(jià)相同。另外,由于節(jié)點(diǎn)與其自身事實(shí)上并不存在通信代價(jià)的概念,因此當(dāng)i = j時(shí),Cij并無(wú)實(shí)際意義,圖2所示矩陣中,將主對(duì)角線上的值用表示,這些數(shù)值不需要參與后續(xù)計(jì)算。
[0094]S102,對(duì)所述Cu使用數(shù)據(jù)平滑算法,得到所述兩個(gè)虛擬機(jī)節(jié)點(diǎn)i和j之間的通信代價(jià)的修正值Ci/ ;
[0095]在本實(shí)施例中,使用公式(2.1)對(duì)Cij進(jìn)行平滑處理。
[0096]根據(jù)系統(tǒng)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),統(tǒng)計(jì)各種通信代價(jià)的取值可能出現(xiàn)的概率,例如:根據(jù)圖1所示系統(tǒng)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),統(tǒng)計(jì)結(jié)果如下:
[0097]通信代價(jià)取值I在網(wǎng)絡(luò)中的出現(xiàn)概率為1/4 ;
[0098]通信代價(jià)取值3在網(wǎng)絡(luò)中的出現(xiàn)概率為1/4 ;
[0099]通信代價(jià)取值5在網(wǎng)絡(luò)中的出現(xiàn)概率為1/2 ;
[0100]根據(jù)統(tǒng)計(jì)結(jié)果,計(jì)算出整個(gè)網(wǎng)絡(luò)中任意兩點(diǎn)之間的通信代價(jià)平均值Ce:
[0101]Ce= 1*1/4+3*1/4+5*1/2 = 3.5
[0102]根據(jù)Ci/ = Ci^Pij+C^(1-Pij)對(duì)節(jié)點(diǎn)之間的通信代價(jià)進(jìn)行修正,其中Pij是C。在網(wǎng)絡(luò)中的出現(xiàn)概率:
[0103]通信代價(jià)為I的節(jié)點(diǎn)對(duì),通信代價(jià)的修正值為:
[0104]l*l/4+CE*(l-l/4) = 2.875
[0105]通信代價(jià)為3的節(jié)點(diǎn)對(duì),通信代價(jià)的修正值為:
[0106]3*l/4+CE*(l-l/4) = 3.375
[0107]通信代價(jià)為5的節(jié)點(diǎn)對(duì),通信代價(jià)的修正值為:
[0108]5*l/2+CE* (1-1/2) = 4.25
[0109]進(jìn)而可以得到如圖5所示的修正后的通信代價(jià)矩陣。
[0110]S103,獲得所述兩個(gè)虛擬機(jī)節(jié)點(diǎn)i和j之間在預(yù)設(shè)歷史時(shí)段的流量統(tǒng)計(jì)值Dij;
[0111]Du為節(jié)點(diǎn)i和節(jié)點(diǎn)j之間的數(shù)據(jù)流量,該數(shù)據(jù)是通過(guò)監(jiān)測(cè)網(wǎng)絡(luò)運(yùn)行狀況得到的,在實(shí)際應(yīng)用中,一般是對(duì)系統(tǒng)在某一歷史階段節(jié)點(diǎn)間流量進(jìn)行統(tǒng)