ij是C。在網(wǎng)絡(luò)中的出現(xiàn)概率:
[0162]通信代價(jià)為I的節(jié)點(diǎn)對(duì),通信代價(jià)的修正值為:
[0163]l*l/4+CE*(l_l/4) = 2.875
[0164]通信代價(jià)為3的節(jié)點(diǎn)對(duì),通信代價(jià)的修正值為:
[0165]3*l/4+CE*(l-l/4) = 3.375
[0166]通信代價(jià)為5的節(jié)點(diǎn)對(duì),通信代價(jià)的修正值為:
[0167]5*l/2+CE* (1-1/2) = 4.25
[0168]進(jìn)而可以得到如圖5所示的修正后的通信代價(jià)矩陣。
[0169]流量統(tǒng)計(jì)值獲得模塊130,用于獲得兩個(gè)虛擬機(jī)節(jié)點(diǎn)i和j之間在預(yù)設(shè)歷史時(shí)段的流量統(tǒng)計(jì)值Dij;
[0170]Dij為節(jié)點(diǎn)i和節(jié)點(diǎn)j之間的數(shù)據(jù)流量,該數(shù)據(jù)是通過監(jiān)測(cè)網(wǎng)絡(luò)運(yùn)行狀況得到的,在實(shí)際應(yīng)用中,一般是對(duì)系統(tǒng)在某一歷史階段節(jié)點(diǎn)間流量進(jìn)行統(tǒng)計(jì),并將統(tǒng)計(jì)結(jié)果作為下一階段虛擬機(jī)部署方案的調(diào)整依據(jù),典型的應(yīng)用場(chǎng)景例如:在每天的O點(diǎn),統(tǒng)計(jì)前I天的系統(tǒng)內(nèi)節(jié)點(diǎn)流量情況,然后根據(jù)前I天的流量情況確定當(dāng)天的虛擬機(jī)部署方案。
[0171]假設(shè)監(jiān)測(cè)到在某段歷史時(shí)期內(nèi),圖1所示的初始部署方案的流量情況如下:
[0172]節(jié)點(diǎn)I與節(jié)點(diǎn)2之間流量:D12= 2G ;
[0173]節(jié)點(diǎn)I與節(jié)點(diǎn)3之間流量:D13= 2G ;
[0174]節(jié)點(diǎn)I與節(jié)點(diǎn)4之間流量-D14= 2G ;
[0175]節(jié)點(diǎn)I與節(jié)點(diǎn)5之間流量:D15= IG ;
[0176]節(jié)點(diǎn)I與節(jié)點(diǎn)13之間流量:D113= 1G。
[0177]修正鄰接度計(jì)算模塊140,用于根據(jù)數(shù)據(jù)平滑模塊120得到的Ci/和流量統(tǒng)計(jì)值獲得模塊130獲得的Dij,計(jì)算兩個(gè)虛擬機(jī)節(jié)點(diǎn)i和j之間的修正鄰接度Ai/ ;
[0178]根據(jù)數(shù)據(jù)平滑模塊120得到的Ci/和流量統(tǒng)計(jì)值獲得模塊130獲得的Dij,利用Ai/ = Ci/和^可以計(jì)算得到,圖1所示的系統(tǒng)節(jié)點(diǎn)間修正鄰接度分別為:
[0179]節(jié)點(diǎn)I與節(jié)點(diǎn)2之間的修正鄰接度:A12’ = 2*2.875 = 5.75 ;
[0180]節(jié)點(diǎn)I與節(jié)點(diǎn)3之間的修正鄰接度:A13’ = 2*2.875 = 5.75 ;
[0181]節(jié)點(diǎn)I與節(jié)點(diǎn)4之間的修正鄰接度:A14’ = 2*2.875 = 5.75 ;
[0182]節(jié)點(diǎn)I與節(jié)點(diǎn)5之間的修正鄰接度:A15’ = 1*3.375 = 3.375 ;
[0183]節(jié)點(diǎn)I與節(jié)點(diǎn)13之間的修正鄰接度:A113’ = 1*4.25 = 4.25。
[0184]最小割計(jì)算模塊150,用于對(duì)網(wǎng)絡(luò)中的虛擬機(jī)節(jié)點(diǎn)構(gòu)成的修正鄰接度圖采用最小割算法,得到至少兩個(gè)集合,
[0185]這里的修正鄰接度圖是根據(jù)網(wǎng)絡(luò)中的虛擬機(jī)節(jié)點(diǎn)生成,對(duì)于任一修正鄰接度圖而言,圖中的不同的頂點(diǎn)分別對(duì)應(yīng)一個(gè)不同的虛擬機(jī)節(jié)點(diǎn)、且兩個(gè)虛擬機(jī)節(jié)點(diǎn)i和j所對(duì)應(yīng)的兩個(gè)頂點(diǎn)之間存在一條以Ai/為權(quán)重值的邊。
[0186]參見圖8所示,在本發(fā)明的一種【具體實(shí)施方式】中,最小割計(jì)算模塊150具體可以包括:
[0187]聚類子模塊151,用于根據(jù)預(yù)設(shè)的聚類規(guī)則,對(duì)N個(gè)虛擬機(jī)節(jié)點(diǎn)進(jìn)行聚類,得到至少一個(gè)類簇,在同一個(gè)類簇中,對(duì)于任意一個(gè)節(jié)點(diǎn)P,存在至少另一個(gè)節(jié)點(diǎn)P’,使得P’與P之間的修正鄰接度不小于預(yù)設(shè)的閾值;
[0188]分割子模塊152,用于根據(jù)預(yù)定義的物理鄰接域劃分規(guī)則,確定網(wǎng)絡(luò)中每個(gè)物理鄰接域所能容納的虛擬機(jī)節(jié)點(diǎn)數(shù)量M,對(duì)聚類子單元得到的各個(gè)類簇對(duì)應(yīng)的修正鄰接度圖分別迭代使用2階最小割算法,得到對(duì)應(yīng)于聚類子單元得到的各個(gè)類簇的分割結(jié)果;其中,每組分割結(jié)果中包含至少一個(gè)集合。
[0189]上述實(shí)施方式中,對(duì)虛擬機(jī)節(jié)點(diǎn)進(jìn)行聚類的目的是:將交互關(guān)系比較密切的虛擬機(jī)節(jié)點(diǎn)劃分到相同的類簇中,使得同一類簇中的節(jié)點(diǎn)能夠優(yōu)先被分配到物理連接較為緊密的位置。
[0190]相應(yīng)地,“物理鄰接域”可以按照實(shí)際需求靈活定義,例如,可以定義每臺(tái)物理服務(wù)器為一個(gè)物理鄰接域,也可以定義通信代價(jià)較小的多臺(tái)服務(wù)器為一個(gè)物理鄰接域。物理鄰接域劃分規(guī)則以預(yù)設(shè)信息的形式存儲(chǔ),該預(yù)設(shè)信息可以被在最小割計(jì)算過程中被讀取,從而確定最小割算法中需要使用的參數(shù)M。
[0191]根據(jù)修正鄰接度計(jì)算模塊140的計(jì)算結(jié)果,假設(shè)預(yù)設(shè)的修正鄰接度閾值為3,由于計(jì)算得到的6個(gè)修正鄰接度均大于該閾值,因此,確定節(jié)點(diǎn)1、2、3、4、5、13屬于同一類簇。進(jìn)而以節(jié)點(diǎn)1、2、3、4、5、13為頂點(diǎn)、修正鄰接度為邊權(quán)重值,生成節(jié)點(diǎn)一張修正鄰接度圖。
[0192]在本實(shí)施例中,定義每臺(tái)物理服務(wù)器為一個(gè)物理鄰接域,即:每個(gè)物理鄰接域所能容納的虛擬機(jī)數(shù)量為2 ;
[0193]對(duì)修正鄰接度圖迭代使用2階最小割算法,直至各個(gè)子集合中的節(jié)點(diǎn)個(gè)數(shù)不大于2,最后得到包含5個(gè)虛擬機(jī)節(jié)點(diǎn)子集合的分割結(jié)果:5,13,4,3,(1,2)??梢?,每個(gè)子集合中的節(jié)點(diǎn)數(shù)量均小于物理服務(wù)器所能容納的虛擬機(jī)數(shù)量2。另外,分割結(jié)果實(shí)際是一個(gè)子集合序列,各個(gè)子集合在序列中的相對(duì)位置,體現(xiàn)了在最小割迭代算法中分割子集合的先后順序:
[0194]第一次分割,根據(jù)修正鄰接度最小的A15’,將節(jié)點(diǎn)5分割為一個(gè)子集,
[0195]第二次分割,根據(jù)修正鄰接度次小的A113'將節(jié)點(diǎn)13分割為一個(gè)子集,
[0196]......
[0197]以此類推,得到最終的分割結(jié)果5,13,4,3,(I, 2)。
[0198]可以理解的是,最小割算法的目的是:從圖的所有割中,確定邊權(quán)值之和最小的害J,因此,劃分結(jié)果可能并不唯一,例如在上例的劃分結(jié)果中,節(jié)點(diǎn)2、3、4是可以彼此調(diào)換的。另外為描述方便,在本實(shí)施例中僅涉及了節(jié)點(diǎn)I與其他節(jié)點(diǎn)間的流量,并未涉及其他節(jié)點(diǎn)間(例如節(jié)點(diǎn)2和3之間)的流量,而最小割算法本身能夠適應(yīng)各種可能出現(xiàn)的情況,并不僅限于處理上述簡化情況。
[0199]在本發(fā)明的另一種【具體實(shí)施方式】中,最小割計(jì)算模塊150還可以對(duì)包含N個(gè)虛擬機(jī)節(jié)點(diǎn)的修正鄰接度圖使用K階最小割算法,得到K個(gè)虛擬機(jī)節(jié)點(diǎn)子集合。這里的K為預(yù)設(shè)的數(shù)值,K值可以根據(jù)實(shí)際需求設(shè)置,例如根據(jù)網(wǎng)絡(luò)中物理鄰接域數(shù)量設(shè)置,或者根據(jù)系統(tǒng)業(yè)務(wù)的邏輯分組數(shù)量設(shè)置,等等。
[0200]預(yù)先設(shè)置K值的目的是:按照實(shí)際需求,直接把虛擬機(jī)節(jié)點(diǎn)劃分到K個(gè)組中。例如,對(duì)于圖1所示系統(tǒng),假設(shè)預(yù)設(shè)的數(shù)值K = 5,則直接對(duì)節(jié)點(diǎn)1-16構(gòu)成的修正鄰接度圖進(jìn)行5階最小割運(yùn)算,得到5個(gè)虛擬機(jī)節(jié)點(diǎn)子集合。
[0201]調(diào)整模塊160,用于根據(jù)最小割計(jì)算模塊150得到的至少兩個(gè)集合,對(duì)網(wǎng)絡(luò)中的虛擬機(jī)節(jié)點(diǎn)的部署位置進(jìn)行調(diào)整。
[0202]可以理解的是,最小割算法僅是從數(shù)學(xué)的角度上,給出了對(duì)虛擬機(jī)部署方案的建議,但是該建議并不一定與系統(tǒng)的實(shí)際情況完全符合。因此在實(shí)際應(yīng)用中,可能需要進(jìn)一步結(jié)合系統(tǒng)的實(shí)際情況,對(duì)最小割算法的結(jié)果進(jìn)行優(yōu)化,總的優(yōu)化原則是:在調(diào)整后的虛擬機(jī)部署方案中,對(duì)于任意虛擬機(jī)節(jié)點(diǎn)X,若存在虛擬機(jī)節(jié)點(diǎn)y與X屬于相同的集合、虛擬機(jī)節(jié)點(diǎn)z與X屬于不同的集合,則X與y之間的通信代價(jià)不大于X與z之間的通信代價(jià)。具體的優(yōu)化策略可參考現(xiàn)有技術(shù)的實(shí)現(xiàn)方式,本發(fā)明實(shí)施例對(duì)此不做詳細(xì)介紹。
[0203]例如,在迭代使用最小割算法的情況下,根據(jù)迭代原理,各個(gè)子集合在序列中的相對(duì)位置,體現(xiàn)了迭代分割子集合的先后順序,而最先分割出的節(jié)點(diǎn)集,應(yīng)該部署到通信代價(jià)較小的位置。
[0204]調(diào)整模塊160根據(jù)最小割計(jì)算模塊150的分割結(jié)果5,13,4,3,(I, 2),確定最終的虛擬機(jī)部署方案,由控制器對(duì)虛擬機(jī)的部署位置進(jìn)行迀移,調(diào)整后的虛擬機(jī)部署方案如圖6所示??梢?,數(shù)據(jù)交互量較大的虛擬機(jī)I和2、虛擬機(jī)I和3或虛擬機(jī)I和4被調(diào)整到通信代價(jià)較小的位置,而數(shù)據(jù)交互量較小的虛擬機(jī)I和13、虛擬機(jī)I和5則被調(diào)整到通信代價(jià)較大的位置,該調(diào)整結(jié)果與實(shí)際期望的調(diào)整結(jié)果相符。
[0205]可見,本發(fā)明實(shí)施例所采用的方案,通過對(duì)節(jié)點(diǎn)間通信代價(jià)Cij進(jìn)行修正,使得修正后的節(jié)點(diǎn)間通信代價(jià)既能體現(xiàn)對(duì)虛擬機(jī)部署位置調(diào)整結(jié)果的影響,又使得通信流量在調(diào)整結(jié)果中起到主導(dǎo)影響作用,從而可以得到更為合理的虛擬機(jī)部署位置調(diào)整結(jié)果。
[0206]圖9是本發(fā)明實(shí)施例的虛擬機(jī)部署位置調(diào)整裝置的硬件結(jié)構(gòu)示意圖。如圖9所示,虛擬機(jī)部署位置調(diào)整裝置900包括處理器902、存儲(chǔ)器904、輸入/輸出接口 906、收發(fā)器908和總線910。其中,處理器902、存儲(chǔ)器904、輸入/輸出接口 906和收發(fā)器908通過總線910實(shí)現(xiàn)彼此之間的通信連接。
[0207]處理器902可以采用通用的中央處理器(Central Processing Unit,CPU),微處理器,應(yīng)用專用集成電路(Applicat1n Specific Integrated Circuit,ASIC),或者一個(gè)或多個(gè)集成電路,用于執(zhí)行相關(guān)程序,以實(shí)現(xiàn)本發(fā)明實(shí)施例所提供的技術(shù)方案。
[0208]存儲(chǔ)器904可以是只讀存儲(chǔ)器(Read Only Memory,ROM),靜態(tài)存儲(chǔ)設(shè)備,動(dòng)態(tài)存儲(chǔ)設(shè)備或者隨機(jī)存取存儲(chǔ)器(Random Access Memory,RAM)。存儲(chǔ)器904可以存儲(chǔ)操作系統(tǒng)和其他應(yīng)用程序。在通過軟件或者固件來實(shí)現(xiàn)本發(fā)明實(shí)施例提供的技術(shù)方案時(shí),用于實(shí)現(xiàn)本發(fā)明實(shí)施例提供的技術(shù)方案的程序代碼保存在存儲(chǔ)器904中,并由處理器902來執(zhí)行。
[0209]輸入/輸出接口 906用于接收輸入的數(shù)據(jù)和信息,輸出操作結(jié)果等數(shù)據(jù)。
[0210]收發(fā)器908使用例如但不限于收發(fā)器一類的收發(fā)裝置,來實(shí)現(xiàn)虛擬機(jī)部署位置調(diào)整裝置與其他設(shè)備或通信網(wǎng)絡(luò)之間的通信。
[0211]總線910可包括一通路,在虛擬機(jī)部署位置調(diào)整裝置各個(gè)部件(例如處理器902、存儲(chǔ)器904、輸入/輸出接口 906和收發(fā)器908之間傳送信息。
[0212]應(yīng)注意,盡管圖9所示的虛擬機(jī)部署位置調(diào)整裝置僅僅示出了處理器902、存儲(chǔ)器904、輸入/輸出接口 906、收發(fā)器908以及總線910,但是在具體實(shí)現(xiàn)過程中,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)明白,虛擬機(jī)部署位置調(diào)整裝置還包含實(shí)現(xiàn)正常運(yùn)行所必須的其他器件。同時(shí),根據(jù)具體需要,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)明白,虛擬機(jī)部署位置調(diào)整裝置還可包含實(shí)現(xiàn)其他附加功能的硬件器件。此外,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)明白,虛擬機(jī)部署位置調(diào)整裝置也